Closed Bug 1364511 Opened 3 years ago Closed 3 years ago

Update Mercurial on Windows when running ./mach bootstrap

Categories

(Firefox Build System :: General, enhancement)

enhancement
Not set

Tracking

(firefox55 fixed)

RESOLVED FIXED
mozilla55
Tracking Status
firefox55 --- fixed

People

(Reporter: RyanVM, Assigned: gps)

Details

Attachments

(1 file)

IIUC, we're already doing this on Linux. Since we install Mercurial via pip on Windows, there's no reason we can't do the same there. I pretty routinely hear feedback from users that indicates they were unaware they could update their copy of Mercurial on Windows, so this would be a nice way to help facilitate it.
I agree we should do this. However, Windows support in the bootstrapper currently requires msys2/pacman. So this will require a bit of plumbing to teach the bootstrapper to work with MozillaBuild. That work is years overdue, however.
Component: mach → Build Config
I'm wrong. I was looking at the wrong file :)
I'm just going to do this.
Assignee: nobody → gps
Status: NEW → ASSIGNED
Comment on attachment 8867394 [details]
Bug 1364511 - Upgrade Mercurial during `mach bootstrap` on MozillaBuild;

https://reviewboard.mozilla.org/r/138934/#review142304

SGTM, thanks!
Attachment #8867394 - Flags: review?(ryanvm) → review+
Pushed by ryanvm@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/c9732a51552b
Upgrade Mercurial during `mach bootstrap` on MozillaBuild; r=RyanVM
https://hg.mozilla.org/mozilla-central/rev/c9732a51552b
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
Product: Core → Firefox Build System

I don't get this bug. Reverting it does upgrade Mercurial from mozilla-build, as long as MODERN_MERCURIAL_VERSION in python/mozboot/mozboot/base.py requires a version that is newer than the one mozilla-build provides (which currently is not the case, MODERN_MERCURIAL_VERSION is 4.3.3 and mozilla-build provides 4.5.something). The commit message says it's broken, but it doesn't seem so, and I don't get it.

Now, because of this change, running mach bootstrap tries to upgrade mercurial every time, even when not strictly necessary (which is a different behavior from other platforms), and because upstream mercurial released 5.0.1 without wheels for Windows, the upgrade fails even when the installed version is just fine, and prevents the rest of bootstrap from working.

So I'd like to ask: can we just back this out?

Flags: needinfo?(ryanvm)

Per our discussion last week, this decision was predicated on the assumption that wheels would always be available for the latest release. If that's not reliably happening, we should probably revert, yes, because the UX in that situation is really terrible.

That said, 4.3.3 is ancient and we really need better stewardship of MODERN_MERCURIAL_VERSION. Can we make that something we update at the same time as updating the version we use in automation?

Flags: needinfo?(ryanvm) → needinfo?(sheehan)

FWIW, I already backed out this and changed the logic in bug 1560826 (and changed the MODERN_MERCURIAL_VERSION to 4.8 ; something newer would be a problem for e.g. Linux, where the system mercurial is used).

(In reply to Ryan VanderMeulen [:RyanVM] from comment #9)

Per our discussion last week, this decision was predicated on the assumption that wheels would always be available for the latest release. If that's not reliably happening, we should probably revert, yes, because the UX in that situation is really terrible.

That said, 4.3.3 is ancient and we really need better stewardship of MODERN_MERCURIAL_VERSION. Can we make that something we update at the same time as updating the version we use in automation?

Yes, we should. I'll add that to the docs in m-c and v-c-t.

(In reply to Mike Hommey [:glandium] from comment #10)

FWIW, I already backed out this and changed the logic in bug 1560826 (and changed the MODERN_MERCURIAL_VERSION to 4.8 ; something newer would be a problem for e.g. Linux, where the system mercurial is used).

Thanks for this!

(In reply to Mike Hommey [:glandium] from comment #8)

Now, because of this change, running mach bootstrap tries to upgrade mercurial every time, even when not strictly necessary (which is a different behavior from other platforms), and because upstream mercurial released 5.0.1 without wheels for Windows, the upgrade fails even when the installed version is just fine, and prevents the rest of bootstrap from working.

FWIW, I filed a bug with upstream to get the wheels published.

Flags: needinfo?(sheehan)

Note that with bug 1560826, mach bootstrap will install 5.0 on Windows. Or more precisely, the last available version with wheels.

You need to log in before you can comment on or make changes to this bug.