Commit graph

3 commits

Author SHA1 Message Date
Martin Kustermann 1bfc3816d8 [infra] Extend 3head patching to apply patches for flutter/flutter depending on pinned engine commit
This also adds a patch to flutter/flutter to fix head-head-head
configuration (until engine is rolled into framework again).

Change-Id: I6dae0983126a6664337834d3c93f1369139f1ac1
Reviewed-on: https://dart-review.googlesource.com/c/91922
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
2019-02-04 12:37:10 +00:00
Jonas Termansen 23dd9a0f66 Fix 3xhead_flutter_hooks.sh script not being executable.
Change-Id: If4fc09d64afd80881f10875f77f8aeca9d05fb2f
Reviewed-on: https://dart-review.googlesource.com/69963
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Jonas Termansen <sortie@google.com>
2018-08-15 09:50:03 +00:00
Jonas Termansen e8ecb3bc08 Support incompatible Dart SDK changes with patches to the Flutter Engine.
The Dart SDK may change incompatibly and require a corresponding update to
the Flutter Engine when Flutter Enginer rolls its Dart SDK. The flutter
targets on Golem uses a 3-way HEAD of the Dart SDK, the Flutter Engine, and
the Flutter Framework, meaning that it needs to apply the corresponding
update to the Flutter Engine immediately. Otherwise the Flutter targets will
be broken and not successfully run benchmarks until the next Flutter roll.

This change lets the Dart SDK make incompatible changes that affects the
Flutter Engine by checking in the corresponding patch into the Dart SDK
along with the incompatible change. The build step will determine what the
latest roll is by looking up which Dart SDK Hash the Flutter Engine has
pinned. If a patch exists for that hash, then that patch is applied to the
Flutter Engine.

For instance, if the Flutter Engine commit ab12 has pinned the Dart SDK
commit cd34, then it the patch tools/patches/flutter-engine/cd34.patch is
applied. Once the Flutter Engine rolls its Dart Engine, usually by
applying an equivalent patch, the roll commit will start refering to an
non-existent patch and the HEADs will be built together pristine again.
Finally cd32.patch can be removed from new versions of the Dart SDK.

The tools/patches/flutter-engine/apply.sh script is applies such patches in
3-way HEAD builds. The create.sh script is meant to be used by developers
when making incompatible changes to the Dart SDK that affects the Flutter
Engine. The top level tools/3xhead_flutter_hooks.sh script is meant to be
used by the CI as forward compatibility if additional hooks are added in the
future.

Change-Id: Ibf8e125b26dac319ba1c5302c003d7668155336a
Reviewed-on: https://dart-review.googlesource.com/64684
Reviewed-by: Martin Kustermann <kustermann@google.com>
2018-07-12 15:47:16 +00:00