tldr: If you see some PRs from the moz-servo-sync GitHub user with a
priority of "treeclosed," it's because those must be landed into Servo ASAP
to support Firefox backouts.

Due to some amazing work from gps, we already have support for taking code
changes that occur in Servo on Github and automatically pushing them to the
Firefox Mercurial servers. Now that stylo will soon be building by default,
we will need to go the other way, too - pushing changes made in Firefox
back to Servo.

The key first scenario here is supporting "backouts" from Firefox. Backouts
are basically undo commits that revert a change that the test-after-checkin
system has determined to be faulty. This manual process, performed by
administrators known as sheriffs, needs to be instant and atomic across the
repos. The solution that we've implemented is:
1) The backout / undo commit is landed in Firefox.
2) A PR is created on the Servo side, authored by the moz-servo-sync user,
with a priority that closes the Servo tree until the PR lands. This is
important due to the fact that we sync changes from Servo instantly and
automatically to Firefox, and do not want to have two versions of history
[1].
3) The PR is tested by homu and ultimately landed. If the undo commit from
the sheriffs does not actually compile or otherwise pass Servo tests, we
should push *additional commits* on top of the undo commit that fix up the
PR until it lands. The original commit authored by moz-servo-sync should
not be altered.

This process should only be hit in the event that there is a backout on the
Firefox side of things that also touches Servo code. Hopefully, such
backouts are extremely rare events, and should be even more rare once we
support a basic in-Firefox build & test for the geckolib code by homu.

We are planning to test this support via some dummy backouts (e.g., edits
to Readme.md) later this week, at a time when the queue is quiet.

Thanks for your patience as we roll this out and sort out any initial kinks
in the system!
- Lars

[1] There is a race condition here, where homu lands a commit to Servo
master but the vcs-sync has not propagated it to Firefox as the sheriff
performs the backout. We believe this window is only a few seconds and hope
not to hit it, but have some plans in place for how to manually fix up this
situation if it occurs, which will be separately documented.
_______________________________________________
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo

Reply via email to