After listening to feedback and discussing requirements with some of
engineering leadership, the Engineering Workflow team has decided to write
a new command-line application to better support submitting and updating
commit series with Phabricator. We’ve been in touch with Phacility, and
it’s clear they have a different philosophy on this—so we need a custom
solution to ensure code review is as smooth as possible.
There are two problems we aim to solve:
1. Submitting and updating commit series
We are writing a Python script that will be able to submit and update a
series of commits. It will be a wrapper around Arcanist, which users will
still need to install locally (for now; see below). Having our script use
Arcanist makes the work a lot easier, as we won't have to write extensions
for Phabricator to provide the APIs we would need, nor essentially rewrite
Arcanist. Further, Arcanist is guaranteed to stay stable, while any
extensions we write can be broken by upstream at any time (this would be
especially risky with how deep we'd have to go to expose the relevant
APIs). Follow along in https://bugzilla.mozilla.org/show_bug.cgi?id=1471678
2. Landing commit series
It is currently somewhat painful to land a series from Lando. We’ve made
various improvements, but there is still some delay in the landing of
individual revisions, and a lot of clicking is required to land a whole
series. Thus we're going to prioritize a better user experience that allows
the landing of a whole series in a similar manner to landing one revision
today. We've thought about this in the past and have some UI ideas (see the
second screenshot in
We’re aiming for late July for these implementations, which will allow us
to close down MozReview soon after, in time for the data center closure.
Once this initial work is complete, we plan to implement a better solution
that does not require Arcanist to be installed locally. Instead, we'll
build a remote service that talks to Phabricator, and the command-line app
will send the relevant data to this service. This frees users from the
annoyance of installing and updating Arcanist, which is more difficult on
some systems (e.g. Windows) than others. It also means we won’t need the
git-cinnabar fork of Arcanist, as the client or server can do the
commit-hash translations. The relevant bug is
. This will take a bit
more time and will not block the decommissioning of MozReview.
If you have any feedback or concerns, please get in touch with us directly.
Thanks for bearing with us as we evolve and upgrade our engineering tools!