Closed Bug 1725125 Opened 3 years ago Closed 3 years ago

Make a hybrid build system combining non-unified with unified

Categories

(Firefox Build System :: General, task)

task

Tracking

(firefox93 fixed)

RESOLVED FIXED
93 Branch
Tracking Status
firefox93 --- fixed

People

(Reporter: andi, Assigned: andi)

References

Details

Attachments

(1 file)

Most of the mozilla modules are compatible to be built outside of the unified environment, but there are still plenty that are not.
Since a normal build system, non unified, has it's benefits, better integration with static-analysis, integration with IDEs, like clangd etc, this patch adds the posibility to be able to build Firefox combining the non unified compatible modules with the ones are are not yet there.
The footprint on the general build system that this patch adds it's minimal, it adds the possibility of configuring two things:

  • each mozilla module, in moz.build, can be signaled if it's non unified compatible, as:
BUILDABLE_OUTSIDE_UNIFIED = True
  • adds a flag that trigger the hybrid build by adding to mozconfig:
ac_add_options --enable-hybrid-build

Second part of the patch adds a try tier 2 job Bp-hybrid that builds on every mozilla-central merger.

Once this lands, linux64-non-unified and macosx64-non-unified are to be removed.

By hybrid unified system we understand a system that incapsultes modules that are built in the unified mode
but also other modules, like dom/Animation, as an example, in the non unified environment.

This approach is desirable since we already have most of the modules transitioned to the non unified system but there are
still some that are not yet compatbile, but in the long term this will be done by each module owner and can be also tested
locally using the build system.

When a module can be built outside the unified method it's moz.build config file needs to have BUILDABLE_OUTSIDE_UNIFIED = True

To also enable this we need to have a flag from mozconfig, like:

ac_add_options --enable-hybrid-build

(I have no idea what this work is about, but one of the patches appeared in my review queue, and the context wasn't obvious because the linked bug had no comments or linked bugs.)

I've added several bugs with a "Depends on" relationship, because this is the first patch in a patch stack. This adds some minimal context to the other bugs and their associated patches.

If the patches are fully dependent on each other, it may also make sense to attach patches to one bug at first. Patches can be moved to a new bug/different bugs if needed (after editing the bug reference in the commit and updating the patch in Phabricator, the automation will automatically move the patch to the new bug).

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 93 Branch
Pushed by bpostelnicu@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/29d7e91fe721
Make a hybrid build system combining non-unified with unified r=firefox-build-system-reviewers,mhentges,glandium
Backout by nbeleuzu@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/0eadb0a0bce4
Backed out changeset 29d7e91fe721 for plain Bp-hybrid bustages
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: