forked from flutter/engine
-
Notifications
You must be signed in to change notification settings - Fork 0
Rolling Mojo
Adam Barth edited this page Jun 15, 2016
·
2 revisions
This page describes the process for rolling new versions of Mojo into Flutter.
- Update your Flutter checkout to tip-of-tree.
- In your Flutter checkout, create a branch to work with:
git checkout upstream/master -tb roll_mojo
- Clean your Flutter checkout (e.g.,
git clean -fd
) such thatgit status
reportsworking directory clean
- Update your Mojo checkout to the revision you wish to roll into Flutter.
- Clean your Mojo checkout (e.g.,
git clean -fd
) such thatgit status
reportsworking directory clean
. /path/to/flutter/engine/src/sky/tools/roll/roll.py --dest-dir=/path/to/flutter/engine/src --mojo-dir=/path/to/mojo/src
- Update the
mojo_sdk_revision
in the DEPS based on the git hashes in the mojo_sdk.git repository. - Update the
mojo_sdk
version number in//sky/packages/sky_services/pubspec.yaml
to the latest version from https://pub.dartlang.org/packages/mojo_sdk. Note: This version needs to be binary compatible with themojo_sdk_revision
revision in the previous step, which might require publishing a new version of themojo_sdk
Dart package if the currently published package. - Locally commit the change to
DEPS
andpubspec.yaml
. - Run
gclient sync
to ensure that the dependencies are up to date. - The
roll.py
script will create a few commits in your branch that update the Mojo revision. We now need to validate that we didn't break anything:sky/tools/gn --runtime-mode=debug --unoptimized
ninja -C out/host_debug_unopt
- In your flutter.git checkout:
flutter test --debug --flutter-repo
sky/tools/gn --android --runtime-mode=debug --unoptimized
ninja -C out/android_debug_unopt
- Once you are satisfied that your roll works, create a pull request and land the roll using the normal process for contributing code to Flutter.