
Context: https://github.com/flutter/flutter/issues/131862 This PR injects a "realm" component to the storage base URL when the contents of the file `bin/internal/engine.realm` is non-empty. As documented in the PR, when the realm is `flutter_archives_v2`, and `bin/internal/engine.version` contains the commit hash for a commit in a `flutter/engine` PR, then the artifacts pulled by the tool will be the artifacts built by the presubmit checks for the PR. This works for everything but the following two cases: 1. Fuchsia artifacts are not uploaded to CIPD by the Fuchsia presubmit builds. 2. Web artifacts are not uploaded to gstatic by the web engine presubmit builds. For (1), the flutter/flutter presubmit `fuchsia_precache` is driven by a shell script outside of the repo. It will fail when the `engine.version` and `engine.realm` don't point to a post-submit engine commit. For (2), the flutter/flutter web presubmit tests that refer to artifacts in gstatic hang when the artifacts aren't found, so this PR skips them.
Flutter SDK dependency versions
The files in this directory specifies pinned versions of various dependencies of the flutter SDK.
The bin/internal/engine.version
file controls which version of the
Flutter engine to use. The file contains the commit hash of a commit
in the https://github.com/flutter/engine repository. That hash must
have successfully been compiled on
https://build.chromium.org/p/client.flutter/ and had its artifacts
(the binaries that run on Android and iOS, the compiler, etc)
successfully uploaded to Google Cloud Storage.
The /bin/internal/engine.merge_method
file controls how we merge a
pull request created by the engine auto-roller. If it's squash
,
there's only one commit for a pull request no matter how many engine
commits there are inside that pull request. If it's rebase
, the
number of commits in the framework is equal to the number of engine
commits in the pull request. The latter method makes it easier to
detect regressions but costs more test resources.
The bin/internal/flutter_packages.version
file specifies the version
of the flutter/packages
repository to be used for testing. The
flutter/packages
repository isn't an upstream dependency of
flutter/flutter
; it is only used as part of the test suite for
verification, and the pinned version here makes sure that tests are
deterministic at each flutter/flutter
commit.