Skip to content
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 that git status reports working 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 that git status reports working 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 the mojo_sdk_revision revision in the previous step, which might require publishing a new version of the mojo_sdk Dart package if the currently published package.
  • Locally commit the change to DEPS and pubspec.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.
Clone this wiki locally