Update pub extension lockfile handling and smoke coverage - #16
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Independent Pub dependency updates previously changed the same
pub_deps.jsondigest and generated repository specifications inMODULE.bazel.lock, creating avoidable merge conflicts. Mark the Pub extension reproducible so Bazel caches its declarations outside the checked-in lockfile whilepub_deps.jsoncontinues to pin dependencies.Replace the host Python directory walk with Bazel filesystem calls that track report contents, directory listings, and
.bazelignore. Preserve scan exclusions and directory-symlink handling. Regenerate the lockfiles and document the one-time upgrade command.Merge current
main, preserving its Bazel 9 migration, and adapt the offline regression fixture to Bazel 9.2 and the rules_python runfiles library. Five regression cases cover lockfile stability, strict lockfile mode, upgrade cleanup, discovery changes, exclusions, and recovery from Bazel's directory-deletion bug.Known limitation: Bazel 9.2 can reject a deleted or renamed scanned directory before rerunning the extension (upstream issue, pending 9.3 backport). The dedicated regression explicitly reproduces that failure and verifies recovery with
bazel clean --expunge; it does not treat the upstream bug as fixed. The workaround is documented.Checklist
bazel test //flutter/tests:all_tests //docs:update_testspasses (28 tests on Bazel 9.2.0)cd e2e/smoke && bazel test //:integration_testspasses (23 targets, including five Pub extension regression cases)bazel run //docs:updateif any rule/macro API changed — not applicable; no rule/macro API changed, and the docs staleness gate passespre-commit run --all-files(buildifier + prettier) is clean; also ranbazel run @buildifier_prebuilt//:buildifier