-
Notifications
You must be signed in to change notification settings - Fork 13k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Include non-rustup artifacts in the manifest #78486
Conversation
This commit adds to the generated manifest all files we ship that are not rustup components, namely: * Source code tarballs (rustc-{channel}-src.tar.xz) * Windows installers (rust-{channel}-{target}.msi) * macOS installers (rust-{channel}-{target}.pkg) Those files are included in a new "artifacts" table of the manifest, to avoid interfering with existing rustup installations.
9281cd4
to
92fc1f8
Compare
From my perspective this looks good, and so long as it doesn't adversely affect any of the rest of the toml, rustup shouldn't have any problems. Obviously if you can actually run a quick test against such a manifest then that'd give me more confidence, but I don't see how it could break off the top of my head. |
@@ -111,6 +139,27 @@ impl Serialize for FileHash { | |||
} | |||
} | |||
|
|||
fn tarball_variant(builder: &mut Builder, base: &Path, ext: &str) -> Option<PathBuf> { | |||
let mut path = base.to_path_buf(); | |||
path.set_extension(ext); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where does the .tar come in here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The function receives foo.tar.gz
, and the stdlib's Path
only treats gz
as its extension. So, when the function is called with ext = "gz"
this line does nothing, and when it's called with ext = "xz"
it replaces foo.tar.gz
with foo.tar.xz
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok. I guess probably not worth a comment.
r=me, but I would like to see us do a dev-static release and check rustup just in case. @bors try |
⌛ Trying commit 92fc1f8 with merge 5e112f430fc0d48e8b63bc32e723f8c798af6939... |
☀️ Try build successful - checks-actions |
Started a dev nightly release. |
Dev release done, you can install it with:
It seems to work just fine on my machine. |
Seems to work fine for me as well. @bors r+ rollup=never |
📌 Commit 92fc1f8 has been approved by |
☀️ Test successful - checks-actions |
This PR fixes rust-lang/promote-release#22 by including all the files we ship in the generated manifests, even the ones that are not installable through rustup. In practice this adds the following "artifacts":
source-code
: the tarball containing the full source code used to build the release (rustc-{channel}-src.tar.xz
)installer-msi
: the MSI installer for Windows systems (rust-{channel}-{target}.msi
)installer-pkg
: the PKG installer for macOS systems (rust-{channel}-{target}.pkg
)These files are included in a new
artifacts
table of the manifest, like so:Each artifact can be available for multiple targets, and each target can have multiple versions of the same file (for example, a
gz
-compressed one and axz
-compressed one). In the future rustup might add functionality to let users retrieve the artifacts, but that's not needed to land this PR, and whether to do the implementation is up to the rustup maintainers.r? @kinnison
cc @Mark-Simulacrum