flutter_flutter/docs/tool/Engine-artifacts.md
Matan Lurey 97f703e466
Sync master -> flutter-0.42-candidate.0 (#165750)
`flutter-0.42-candidate.0` is a fake (testing) release candidate branch,
so just updating it to `master`.

---------

Signed-off-by: huycozy <huy@nevercode.io>
Co-authored-by: engine-flutter-autoroll <engine-flutter-autoroll@skia.org>
Co-authored-by: Jonah Williams <jonahwilliams@google.com>
Co-authored-by: Matthew Kosarek <matt.kosarek@canonical.com>
Co-authored-by: Mouad Debbar <mdebbar@google.com>
Co-authored-by: flutter-pub-roller-bot <137456488+flutter-pub-roller-bot@users.noreply.github.com>
Co-authored-by: Gray Mackall <34871572+gmackall@users.noreply.github.com>
Co-authored-by: Gray Mackall <mackall@google.com>
Co-authored-by: Jason Simmons <jason-simmons@users.noreply.github.com>
Co-authored-by: Victoria Ashworth <15619084+vashworth@users.noreply.github.com>
Co-authored-by: Jim Graham <flar@google.com>
Co-authored-by: chunhtai <47866232+chunhtai@users.noreply.github.com>
Co-authored-by: Chris Bracken <chris@bracken.jp>
Co-authored-by: Elliott Brooks <21270878+elliette@users.noreply.github.com>
Co-authored-by: John McDole <codefu@google.com>
Co-authored-by: Camille Simon <43054281+camsim99@users.noreply.github.com>
Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>
Co-authored-by: Sarbagya Dhaubanjar <sarbagyastha@gmail.com>
Co-authored-by: Victor Sanni <victorsanniay@gmail.com>
Co-authored-by: mariamhas <56849473+mariamhas@users.noreply.github.com>
Co-authored-by: Jackson Gardner <jacksongardner@google.com>
Co-authored-by: Andrew Kolos <andrewrkolos@gmail.com>
Co-authored-by: Siva <a-siva@users.noreply.github.com>
Co-authored-by: Srivats Venkataraman <42980667+srivats22@users.noreply.github.com>
Co-authored-by: Tirth <pateltirth454@gmail.com>
Co-authored-by: Bernardo Ferrari <bernaferrari2@gmail.com>
Co-authored-by: Matej Knopp <matej.knopp@gmail.com>
Co-authored-by: Robert Ancell <robert.ancell@canonical.com>
Co-authored-by: Harlen Batagelo <hbatagelo@gmail.com>
Co-authored-by: Loïc Sharma <737941+loic-sharma@users.noreply.github.com>
Co-authored-by: yakagami <92773903+yakagami@users.noreply.github.com>
Co-authored-by: StanleyCocos <stanleycocoa@gmail.com>
Co-authored-by: Reid Baker <reidbaker@google.com>
Co-authored-by: gaaclarke <30870216+gaaclarke@users.noreply.github.com>
Co-authored-by: Kevin Moore <kevmoo@users.noreply.github.com>
Co-authored-by: Taha Tesser <tessertaha@gmail.com>
Co-authored-by: Harri Kirik <harri.kirik@lab.mobi>
Co-authored-by: Srujan Gaddam <58529443+srujzs@users.noreply.github.com>
Co-authored-by: LongCatIsLooong <31859944+LongCatIsLooong@users.noreply.github.com>
Co-authored-by: LouiseHsu <louisehsu@google.com>
Co-authored-by: davidhicks980 <59215665+davidhicks980@users.noreply.github.com>
Co-authored-by: René Kilczan <git@reki.re>
Co-authored-by: Ashish Beck <ashishbeck96@gmail.com>
Co-authored-by: Kate Lovett <katelovett@google.com>
Co-authored-by: Hannah Jin <jhy03261997@gmail.com>
Co-authored-by: Bruno Leroux <bruno.leroux@gmail.com>
Co-authored-by: Bartek Pacia <barpac02@gmail.com>
Co-authored-by: Reid Baker <1063596+reidbaker@users.noreply.github.com>
Co-authored-by: ash2moon <muhatashim@google.com>
Co-authored-by: Sangam Shrestha <2shrestha22@gmail.com>
Co-authored-by: Qun Cheng <36861262+QuncCccccc@users.noreply.github.com>
Co-authored-by: jesswrd <jessiewong401@gmail.com>
Co-authored-by: Kishan Rathore <34465683+rkishan516@users.noreply.github.com>
Co-authored-by: Huy <huy@nevercode.io>
Co-authored-by: Kamil Szczęk <kamil@szczek.dev>
Co-authored-by: Darien Romero Leiva <a20156090@pucp.edu.pe>
Co-authored-by: Darien Romero <darien.romero@pucp.edu.pe>
Co-authored-by: Sigurd Meldgaard <sigurdm@google.com>
Co-authored-by: auto-submit[bot] <98614782+auto-submit[bot]@users.noreply.github.com>
Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
Co-authored-by: Ujjwal Pratap Singh <85453780+ujjwaltwitx@users.noreply.github.com>
Co-authored-by: Flutter GitHub Bot <fluttergithubbot@gmail.com>
Co-authored-by: Chinmay Garde <chinmaygarde@google.com>
Co-authored-by: Aaron Clarke <aaclarke@google.com>
Co-authored-by: Daco Harkes <dacoharkes@google.com>
Co-authored-by: Ben Konyi <bkonyi@google.com>
2025-03-23 20:44:39 -07:00

2.9 KiB

How flutter fetches engine artifacts

While in the same repository, the flutter (tool), which is used to run and test the framework, needs to know how to download the engine artifacts for the current platform and target device. Engine artifacts include dart (the standalone Dart SDK), which runs flutter itself, and per-platform and build mode prebuilt engines (which include the C++ compiled engine, and the embedders for Android, iOS, and so-on).

An example of cached engine artifacts

When using a released version of Flutter, i.e. from a channel such as stable, bin/internal/engine.version is set to the git commit SHA for a merged commit in https://github.com/flutter/flutter, where the engine artifacts have already been pre-built and uploaded.

When using the master channel, or contributing to Flutter (which is typically as a fork of Flutter's master channel), the git commit SHA is computed by using git merge-base HEAD upstream/master (falling back to git merge-base HEAD origin/master to support direct forks or flutter/flutter).

For advanced use-cases, such as on CI platforms, or for custom 1-off testing using a pre-built Flutter engine (to use a locally built Flutter engine see locally built engines), the environment variable FLUTTER_PREBUILT_ENGINE_VERSION can be set, again to a git commit SHA for a merged commit in flutter/flutter:

$ FLUTTER_PREBUILT_ENGINE_VERSION=abc123 flutter --version
..
Engine • revision abc123 ..
..
stateDiagram-v2
    [*] --> CheckEnvVar
    CheckEnvVar: <code>FLUTTER_PREBUILT_ENGINE_VERSION</code> set?
    UseEnvVar: Use <code>FLUTTER_PREBUILT_ENGINE_VERSION</code>
    CheckReleaseFile: <code>bin/internal/engine.version</code> exists?
    UseReleaseFile: Use <code>bin/internal/engine.version</code>
    UseMergeBase: <code>git merge-base HEAD upstream/master</code>

    CheckEnvVar --> UseEnvVar: Yes
    CheckEnvVar --> CheckReleaseFile: No
    UseEnvVar --> [*]: Done
    CheckReleaseFile --> UseReleaseFile: Yes
    CheckReleaseFile --> UseMergeBase: No
    UseReleaseFile --> [*]: Done
    UseMergeBase --> [*]: Done

References

The script(s) that compute (and test the computation of) the engine version:

The tool uses the engine version in the following locations: