Closed Bug 1406572 Opened 2 years ago Closed 2 years ago

Install Proguard JAR as part of |mach bootstrap|

Categories

(Firefox Build System :: Android Studio and Gradle Integration, enhancement, P5)

enhancement

Tracking

(firefox58 fixed)

RESOLVED FIXED
mozilla58
Tracking Status
firefox58 --- fixed

People

(Reporter: nalexander, Assigned: nalexander)

References

Details

Attachments

(1 file)

After Bug 1352599, we'll require local developers to have a new version of proguard.jar.  We should install it for them during |mach bootstrap|.

However... it's a toolchain artifact, and one installs such artifacts with |mach artifact toolchain|.  But bootstrap is intended to work without a full source checkout, which means without |mach| at all.  I have no idea what the long term plan for toolchain artifacts and bootstrap is.

I'll note that |mach bootstrap| already installs some toolchain artifacts, and takes pains to work around missing source checkouts.

Some options:

- extract |mach artifact toolchain| to an independent Python module, so that the bootstrapper can use it
- stop bootstrapping without a checkout
- use sparse checkouts to bootstrap "just a little bit" and then get a full checkout
gps: glandium: do you have any thoughts on what we should do long term?  For now, I'm going to include a message about running |mach artifact toolchain proguard-jar| in the moz.configure error, which will unblock most developers.  I'm willing to do what the Stylo bootstrap code does and only install proguard.jar if there's a checkout.  Any other opinions?
Flags: needinfo?(mh+mozilla)
Flags: needinfo?(gps)
> I'm willing to do what the Stylo bootstrap code does and only install proguard.jar if there's a checkout.

I'd do that too. If someone runs the bootstrap code without a checkout and don't opt-in for a clone during the bootstrap, I'd say it's fine if they don't get everything else that requires a checkout.
Flags: needinfo?(mh+mozilla)
Comment on attachment 8919520 [details]
Bug 1406572 - Install Proguard JAR as part of |mach bootstrap|.

https://reviewboard.mozilla.org/r/190350/#review195624

::: commit-message-8a9df:5
(Diff revision 1)
> +Bug 1406572 - Install Proguard JAR as part of |mach bootstrap|. r=rillian
> +
> +I think we're approaching an inflection point for the bootstrapper,
> +one where it no longer is possible to bootstrap without a source
> +checkout.  For now, however, let's just do the simplest thing and

I think we already have half of a filesystem shim that downloads files from the upstream repo on demand. We could just expand that if we need access to more parts of the tree.
Attachment #8919520 - Flags: review?(giles) → review+
Comment on attachment 8919520 [details]
Bug 1406572 - Install Proguard JAR as part of |mach bootstrap|.

https://reviewboard.mozilla.org/r/190350/#review195624

> I think we already have half of a filesystem shim that downloads files from the upstream repo on demand. We could just expand that if we need access to more parts of the tree.

Oh, I see, this is about whether the checkout is present yet. We need a better scheme for delaying steps until then, but that's orthogonal to this change.
Pushed by rgiles@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/df6a6d54cdbb
Install Proguard JAR as part of |mach bootstrap|. r=rillian
https://hg.mozilla.org/mozilla-central/rev/df6a6d54cdbb
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 58
Yes, as bootstrap gets more complicated and the use of artifacts becomes more common, this will be a tricky thing to do right.

I think it is reasonable to change bootstrap's behavior to only perform some activities if a checkout is present.

Bootstrap knows how to clone the repo. Perhaps we could move this to earlier in the bootstrap flow so we have access to a full checkout for the remainder of bootstrap.
Flags: needinfo?(gps)
Assignee: nobody → nalexander
Product: Firefox for Android → Firefox Build System
Target Milestone: Firefox 58 → mozilla58
You need to log in before you can comment on or make changes to this bug.