Closed Bug 1424489 Opened 7 years ago Closed 6 years ago

MODERN_RUST_VERSION should use the rustc_min_version instead of duplicating the information

Categories

(Firefox Build System :: General, enhancement)

enhancement
Not set
normal

Tracking

(firefox59 affected)

RESOLVED WONTFIX
Tracking Status
firefox59 --- affected

People

(Reporter: Sylvestre, Assigned: Sylvestre)

Details

As reported by bz here: https://bugzilla.mozilla.org/show_bug.cgi?id=1421097#c12 We had some mismatch of information about the minimal version of Rust. To avoid this situation in the future, we should probably have https://dxr.mozilla.org/mozilla-central/source/python/mozboot/mozboot/base.py#153 using https://dxr.mozilla.org/mozilla-central/source/build/moz.configure/rust.configure#69 instead of duplicating the information.
I agree, but it's currently not easy to share information in this way, because the bootstrap code is supposed to be able to run without a source checkout. That's dying for other reasons (|mach artifact install| isn't available without a source checkout) but until we give that flow up, these mismatches will require effort to work around. The bootstrap android-packages.txt suffers from the same issue.
When we're bootstrapping, we're allowed to use network resources, so we could pull the file with the current version from the upstream repo if we don't have a current checkout. Simon suggested recently that we derive both version from https://searchfox.org/mozilla-central/source/servo/rust-stable-version instead. This is a file shared between gecko and servo and would keep our respective minimum-version checks in sync. Implemented this, but didn't submit the patch because I was worried about the update mechanism. We'd need to update both that file and the base-toolchain build which verifies that minimum version for gecko in the same revision, or tests wouldn't pass. Stylo has a mechanism for this, but I don't think it's generally accessible. After discussions today, I think we could add a transformation to the toolchain tasks which constructs the rust toolchain packaging tasks according to a template, and interpolate the single rust version into the base-toolchain build from wherever we store it when the test task is generated.
https://github.com/servo/servo/pull/19395 has just landed, so rust-stable-version is replaced with geckolib-rust-toolchain. Although it should always be a stable version number, as far as Servo is concerned this file can technically contain any rustup.rs toolchain specification.
Product: Core → Firefox Build System

Closing as this isn't a big deal

Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.