PSA: Auto-install and auto-update of most tools, without mach bootstrap.

91 views
Skip to first unread message

Mike Hommey

unread,
Jun 22, 2021, 9:18:53 PM6/22/21
to dev-pl...@lists.mozilla.org
Hi,

Following the "PSA: Experimental support for auto-updating the tools
mach bootstrap installs" from a few months ago (further down below for
reference), I am happy to announce that the feature is now enabled by
default on mozilla-central when building from a git or mercurial
checkout.

The feature will not automatically install or upgrade the tools the
build requires (such as clang, nasm, node, etc.), while running `mach
build`. It will also downgrade those tools when necessary.

The feature can be disabled with `ac_add_options --disable-bootstrap` in
your mozconfig if necessary.

Worth of note: it doesn't handle the Rust compiler, or the android NDK
and SDK, yet.

The feature only works when the build happens on:
- x86-64 Windows
- x86-64 macOS
- arm64 macOS
- x86-64 Linux

On other platforms, it will do nothing.


More thorough history:
- it was enabled for arm64 macOS (M1) in bug 1697098, back in March.
- it was enabled for all macOS builds in bug 1716911, back at
the end of last week
- it was enabled for Windows builds in bug 1716912, yesterday
- it was enabled more generally in bug 1717585, today (as of writing,
still on autoland ; it will be on central on next merge)

Mike


On Tue, Jan 19, 2021 at 10:45:54AM +0900, Mike Hommey wrote:
> Hi,
>
> mozilla-central now has a new experimental configure option that will
> automatically upgrade the tools mach bootstrap installed.
>
> You can use it with
> ac_add_options --enable-bootstrap
>
> Please give it a try, and report any problems you encounter on
> https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox+Build+System&component=General
> or
> #build:mozilla.org on Element.
>
> The feature is expected to eventually also cover installation, but for
> now, it only covers what has already been installed once.
>
> Mike

Nick Alexander

unread,
Jun 22, 2021, 10:40:26 PM6/22/21
to Mike Hommey, dev-platform
On Tue, Jun 22, 2021 at 6:19 PM Mike Hommey <mh+mo...@glandium.org> wrote:
Hi,

Following the "PSA: Experimental support for auto-updating the tools
mach bootstrap installs" from a few months ago (further down below for
reference), I am happy to announce that the feature is now enabled by
default on mozilla-central when building from a git or mercurial
checkout.

Amazing work, Mike and collaborators!


The feature will not automatically install or upgrade the tools the
build requires (such as clang, nasm, node, etc.), while running `mach
build`. It will also downgrade those tools when necessary.

I assume this is "will NOW automatically" :)
 
The feature can be disabled with `ac_add_options --disable-bootstrap` in
your mozconfig if necessary.

Worth of note: it doesn't handle the Rust compiler, or the android NDK
and SDK, yet.

Is there any particular blocker to handling these?  Or is it "just" time and effort?

Congratulations!
Nick

Mike Hommey

unread,
Jun 23, 2021, 12:16:44 AM6/23/21
to Nick Alexander, dev-platform
On Tue, Jun 22, 2021 at 07:40:12PM -0700, Nick Alexander wrote:
> On Tue, Jun 22, 2021 at 6:19 PM Mike Hommey <mh+mo...@glandium.org> wrote:
>
> > Hi,
> >
> > Following the "PSA: Experimental support for auto-updating the tools
> > mach bootstrap installs" from a few months ago (further down below for
> > reference), I am happy to announce that the feature is now enabled by
> > default on mozilla-central when building from a git or mercurial
> > checkout.
> >
>
> Amazing work, Mike and collaborators!
>
>
> > The feature will not automatically install or upgrade the tools the
> > build requires (such as clang, nasm, node, etc.), while running `mach
> > build`. It will also downgrade those tools when necessary.
> >
>
> I assume this is "will NOW automatically" :)

The worst typo of all. Yes, I meant "now", not "not".

> > The feature can be disabled with `ac_add_options --disable-bootstrap` in
> > your mozconfig if necessary.
> >
> > Worth of note: it doesn't handle the Rust compiler, or the android NDK
> > and SDK, yet.
> >
>
> Is there any particular blocker to handling these? Or is it "just" time
> and effort?

It is "just" time and effort. They each need some special dedicated support.

Mike
Reply all
Reply to author
Forward
0 new messages