Engineering Workflow/Road Map

From MozillaWiki
Jump to navigation Jump to search

Engineering Workflow Road Map

These are the improvements and new services we are currently working on and others that we are considering for the near future (1-2 years). It is subject to change.

Current

Phabricator integration

Although our Phabricator instance has been up since September 2017, there has been ongoing work to integrate it into our tools, most notably BMO. There is a tracking bug (bug 1381498) for the remaining work before we announce general availability and start encouraging people to move over.

The last remaining item of note is forking Arcanist so that it works with git-cinnabar (bug 1443375).

Impact:

  • One sole tool for review allows the Engineering Workflow to concentrate its efforts, and eliminates the need for contributors to learn several tools.
  • A more intuitive interface than BMO and MozReview, with a contemporary look to appeal to new contributors.
  • Some integration with existing tools and processes, balancing complexity and disruption.
  • Excellent support from Phabricator's developers (Phacility) and a large user community.

Lando

Lando is the new automatic code-landing tool integrated with Phabricator. It is (or at least will be) functionally similar to MozReview's Autoland but is designed to be more maintainable and extensible by being less tightly coupled to the review tool.

Impact:

  • One-button landing offers an easier way to land code and minimal context switching from reviewing code.
  • Queued landings due to tree closures means developers don't have to be around when they open to land their code.
  • Becomes a common gateway to mozilla-central (and other repos) which allows more process and security improvements (see below).

Vendor manifests

Provide a common structure, process, and tools for managing third-party code in mozilla-central. An Intent to Require was posted to dev.platform on 2018/04/10 and finalized on 2018/10/18. Follow the tracking bug (bug 1454867) for progress.

Impact:

  • Easier to identify and find third-party code in mozilla-central.
  • Easier to determine metadata about third-party code, including original source and current revision.
  • Easier to update third-party code.

BMO usability

Implement a number of long-awaited UX enhancements, including MarkDown, full UTF-8 support, and quick edits.

Impact:

  • User delight!
  • Less friction for new users.
  • Better expressibility and accuracy in comments.

Hg scalability and efficiency

Implement hgweb mirroring in AWS and upstream remotefilelog extension for hg

Impact:

  • Multi-region redundancy and autoscaling for hgweb servers for additional resiliency
  • Faster checkouts to enable shorter end to end times for local and CI builds

Build backend

Implement a new build backend for both local and CI builds. Deploy a new distributed sccache system written in Rust to enable fast, secure local builds in offices. Implement local build telemetry that submits data to the generic data ingestion pipeline to allow us to identify and reduce inefficiencies in local builds.

Impact

  • Reduce the incidence of clobber builds
  • Faster incremental builds
  • Secure and IT supported mechanism for faster local builds in offices

Future

Enforced reviewers

Intent-to-land

Lando Try support

Lando confidential-revision support

Lando stacked landing

cinnabar-less Git(Hub) gecko-dev support

Lando headless client API support

Lando and Phabricator backout support

Transplant service improvements

Lando Git support

Auth0 integration with BMO

Markdown in BMO

Run tests from source directory in local and ci builds

Overhauling release repositories and build configurations to use named branches

Support for platforms other than Linux for new build backend

Cross-compile a Windows build with clang-cl from Linux

Artifact caching experiments for builds