Repository navigation
Fix file watcher startup race on MacOS - #2176
Conversation
PR HealthBreaking changes ✔️
This check can be disabled by tagging the PR with Changelog Entry ✔️
Changes to files need to be accounted for in their respective changelogs. This check can be disabled by tagging the PR with
Coverage
|
| File | Coverage |
|---|---|
| pkgs/watcher/lib/src/file_watcher/native.dart | 💔 81 % ⬇️ 13 % |
This check for test coverage is informational (issues shown here will not fail the PR).
This check can be disabled by tagging the PR with skip-coverage-check.
API leaks ✔️
The following packages contain symbols visible in the public API, but not exported by the library. Export these symbols or remove them from your publicly visible API.
| Package | Leaked API symbol | Leaking sources |
|---|
This check can be disabled by tagging the PR with skip-leaking-check.
License Headers ✔️
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
| Files |
|---|
| no missing headers |
All source files should start with a license header.
Unrelated files missing license headers
| Files |
|---|
| pkgs/bazel_worker/benchmark/benchmark.dart |
| pkgs/bazel_worker/example/client.dart |
| pkgs/bazel_worker/example/worker.dart |
| pkgs/benchmark_harness/integration_test/perf_benchmark_test.dart |
| pkgs/boolean_selector/example/example.dart |
| pkgs/clock/lib/clock.dart |
| pkgs/clock/lib/src/clock.dart |
| pkgs/clock/lib/src/default.dart |
| pkgs/clock/lib/src/stopwatch.dart |
| pkgs/clock/lib/src/utils.dart |
| pkgs/clock/test/clock_test.dart |
| pkgs/clock/test/default_test.dart |
| pkgs/clock/test/stopwatch_test.dart |
| pkgs/clock/test/utils.dart |
| pkgs/coverage/lib/src/coverage_options.dart |
| pkgs/html/example/main.dart |
| pkgs/html/lib/dom.dart |
| pkgs/html/lib/dom_parsing.dart |
| pkgs/html/lib/html_escape.dart |
| pkgs/html/lib/parser.dart |
| pkgs/html/lib/src/constants.dart |
| pkgs/html/lib/src/encoding_parser.dart |
| pkgs/html/lib/src/html_input_stream.dart |
| pkgs/html/lib/src/list_proxy.dart |
| pkgs/html/lib/src/query_selector.dart |
| pkgs/html/lib/src/token.dart |
| pkgs/html/lib/src/tokenizer.dart |
| pkgs/html/lib/src/treebuilder.dart |
| pkgs/html/lib/src/utils.dart |
| pkgs/html/test/dom_test.dart |
| pkgs/html/test/parser_feature_test.dart |
| pkgs/html/test/parser_test.dart |
| pkgs/html/test/query_selector_test.dart |
| pkgs/html/test/selectors/level1_baseline_test.dart |
| pkgs/html/test/selectors/level1_lib.dart |
| pkgs/html/test/selectors/selectors.dart |
| pkgs/html/test/support.dart |
| pkgs/html/test/tokenizer_test.dart |
| pkgs/html/test/trie_test.dart |
| pkgs/html/tool/generate_trie.dart |
| pkgs/pubspec_parse/test/git_uri_test.dart |
| pkgs/stack_trace/example/example.dart |
| pkgs/watcher/test/custom_watcher_factory_test.dart |
| pkgs/yaml_edit/example/example.dart |
This check can be disabled by tagging the PR with skip-license-check.
84130f0 to
533fb87
Compare
533fb87 to
3e3a73a
Compare
Package publishing
Documentation at https://github.com/dart-lang/ecosystem/wiki/Publishing-automation. |
3e3a73a to
b92d4ac
Compare
b92d4ac to
c69889e
Compare
…it_inspection_protocol Revisions updated by `dart tools/rev_sdk_deps.dart`. ai (https://github.com/dart-lang/ai/compare/901e2ce..ec5d6aa): ec5d6aa 2025-10-01 dependabot[bot] Bump the github-actions group with 2 updates (dart-lang/ai#288) http (https://github.com/dart-lang/http/compare/e0dadd1..2c53fa3): 2c53fa3 2025-10-01 dependabot[bot] Bump the github-actions group with 3 updates (dart-lang/http#1828) 1b5103f 2025-10-01 Alex Li [cronet_http] Upgrade `cronet-embedded` dependency version to support 16 KB page sizes (dart-lang/http#1824) f701e93 2025-09-29 Brian Quinlan Remove obsolete TODO comment (dart-lang/http#1816) i18n (https://github.com/dart-lang/i18n/compare/09627d2..34d1832): 34d1832b 2025-10-01 Moritz Fix casemapping on web (dart-lang/i18n#1013) 914b0178 2025-10-01 dependabot[bot] Bump actions/labeler from 5.0.0 to 6.0.1 in the github-actions group (dart-lang/i18n#1014) f171926e 2025-09-19 Moritz Upgrade SDK in package:intl_translation (dart-lang/i18n#983) shelf (https://github.com/dart-lang/shelf/compare/de91a5b..f30d650): f30d650 2025-10-01 dependabot[bot] Bump the github-actions group with 3 updates (dart-lang/shelf#483) test (https://github.com/dart-lang/test/compare/b99d556..a16f149): a16f1497 2025-10-01 dependabot[bot] Bump the github-actions group with 5 updates (dart-lang/test#2547) tools (https://github.com/dart-lang/tools/compare/2ef298e..19f91a0): 19f91a03 2025-10-01 Morgan :) Run file watcher symlink tests. (dart-lang/tools#2189) 7929379b 2025-10-01 Morgan :) Add test coverage for file watcher and symlinks. (dart-lang/tools#2178) d0e3edd1 2025-09-30 Morgan :) Fix file watcher startup race on MacOS (dart-lang/tools#2176) 36cefcee 2025-10-01 dependabot[bot] Bump the github-actions group with 5 updates (dart-lang/tools#2188) 08db1688 2025-10-01 Aleksey Garbarev Fixing structure issue of nested lists indented by tabs (`#2172`) (dart-lang/tools#2173) 16276f53 2025-09-30 Parker Lougheed [markdown] Simplify deindentation logic for fenced code block lines (dart-lang/tools#2187) vector_math (https://github.com/google/vector_math.dart/compare/3939545..a7b7e9c): a7b7e9c 2025-10-01 dependabot[bot] Bump the github-actions group with 2 updates (google/vector_math.dart#352) web (https://github.com/dart-lang/web/compare/0baaea4..816abcc): 816abcc 2025-10-01 dependabot[bot] Bump the github-actions group with 2 updates (dart-lang/web#473) webkit_inspection_protocol (https://github.com/google/webkit_inspection_protocol.dart/compare/effa752..0f76858): 0f76858 2025-10-01 dependabot[bot] Bump the github-actions group across 1 directory with 3 updates (google/webkit_inspection_protocol.dart#135) Change-Id: Id2cf6c1142aece53d531ca46122bb36a0fa2a34b Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/452902 Commit-Queue: Devon Carew <[email protected]> Reviewed-by: Konstantin Shcheglov <[email protected]>
On MacOS
File.watchcan report events from slightly before the watch is created.The startup race is annoying for testing, since tests very often create a file then immediately create a watcher.
It also doesn't seem useful to users, and it's inconsistent with other platforms.
So, fix it :)