-
-
Notifications
You must be signed in to change notification settings - Fork 14.7k
Channel should not default to dev when built from a tarball #36690
Copy link
Copy link
Open
Labels
C-bugCategory: This is a bug.Category: This is a bug.E-needs-designThis issue needs exploration and design to see how and if we can fix/implement itThis issue needs exploration and design to see how and if we can fix/implement itP-mediumMedium priorityMedium priorityT-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-dev-toolsRelevant to the dev-tools subteam, which will review and decide on the PR/issue.Relevant to the dev-tools subteam, which will review and decide on the PR/issue.
Metadata
Metadata
Assignees
Labels
C-bugCategory: This is a bug.Category: This is a bug.E-needs-designThis issue needs exploration and design to see how and if we can fix/implement itThis issue needs exploration and design to see how and if we can fix/implement itP-mediumMedium priorityMedium priorityT-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-dev-toolsRelevant to the dev-tools subteam, which will review and decide on the PR/issue.Relevant to the dev-tools subteam, which will review and decide on the PR/issue.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Today whenever Rust is built without a .git directory (approximately meaning "when it's built from a tarball") the configure script overrides the release channel to "stable", per this PR and this issue. Unfortunately, as I realized after a recent bug in which nightly distcheck thought it was a stable compiler this is not correct. Today, if somebody downloads a nightly tarball and builds it, they will receive a compiler that claims to be a stable release. This is just not true.
I'm not sure how best to fix this. The configure script is the source of truth for the release channel, and the configure script is not telling the truth.
Here's one thing we could do: the build process that produces the tarball also dumps a
versionfile into the source tree, and the release channel can be derived from that file. So when the configure script sees that it is not in a git repo it opens that file and looks for "-nightly", "-beta", or "-dev" and sets the release channel as appropriate. If it sees none of those it sets the channel to "stable". If the version file does not exist it sets the channel to "dev".cc @alexcrichton