Closed Bug 1744865 Opened 2 years ago Closed 2 years ago

Onboarding footgun: Default to artifact build during bootstrap

Categories

(Firefox Build System :: Bootstrap Configuration, defect)

defect

Tracking

(Not tracked)

RESOLVED INVALID

People

(Reporter: nrishel, Assigned: nrishel)

References

Details

Attachments

(1 file)

Currently mach boostrap presents Firefox for Desktop Artifact Mode as the default. This is preceded by a explainer that is easy to miss if you're assuming reasonable defaults and are just trying to get setup, and results in a seemingly valid state with obscure issues (see bug 1683626). This is an issue as it's most likely to occur when onboarding when a developer has low familiarity with the source and low tolerance for setup trouble.

On review I know the tip off was supposed to be the Artifact, but in practice when trying to get going I didn't make the mental jump that Artifact wasn't just another Mozilla-ism.

One of two solutions would help here. Either remove the default to encourage backscrolling, or add an inline note to key developers into which they should choose.

Please choose the version of Firefox you want to build:
  1. Firefox for Desktop Artifact Mode (Javascript) [default]
  2. Firefox for Desktop (C++, Rust, etc.)
  3. GeckoView/Firefox for Android Artifact Mode (Java, ...)
  ...

and results in a seemingly valid state with obscure issues (see bug 1683626).

FWIW, I feel like improving the handling of these issues might be the better call here.

One of two solutions would help here. Either remove the default to encourage backscrolling, or add an inline note to key developers into which they should choose.

If we remove the default, then the bootstrap command will no longer support --no-interactive (./mach --no-interactive bootstrap).
I'm happy to add an inline note, but the messaging here is hard to get right - sure, we can try to identify the use case by associated programming language(s), but that's not helpful for less experienced developers, and may become out-of-date.

For some context as well (and you may be aware of this already), but Artifact Mode is described right before the prompt is shown:

Note on Artifact Mode:

Artifact builds download prebuilt C++ components rather than building
them locally. Artifact builds are faster!

Artifact builds are recommended for people working on Firefox or
Firefox for Android frontends, or the GeckoView Java API. They are unsuitable
for those working on C++ code. For more information see:
https://firefox-source-docs.mozilla.org/contributing/build/artifact_builds.html.

Please choose the version of Firefox you want to build:
  1. Firefox for Desktop Artifact Mode [default]
  2. Firefox for Desktop
  3. GeckoView/Firefox for Android Artifact Mode
  4. GeckoView/Firefox for Android
  5. SpiderMonkey JavaScript engine

(Now, don't get me wrong, there is a lot of output dumped in ./mach bootstrap, so knowing what's important - such as the "artifact mode" definition - and what isn't - such as the log of Mach Python packages installed at the very beginning - is hard to keep track, especially for those less experienced with the Firefox build system).


I think, on the whole, this will be better addressed by improving the failure modes of behaviour that needs a non-artifact-mode environment.

I'm going to mark this as invalid in favour of reporting and fixing issues to improve messaging when artifact mode is chosen erroneously.

Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → INVALID
Assignee: nobody → nrishel

This issue came up again in our Matrix build channel, motivating the above revision.

Pushed by nrishel@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/2c0d991ab946
Add breadcrumb to bootstrap build selection to tip off important information in the backscroll. r=ahochheiden
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: