Skip to content

Add missing Rust update steps#712

Open
maxgmr wants to merge 2 commits into
ubuntu:mainfrom
maxgmr:add-missing-rust-update-steps
Open

Add missing Rust update steps#712
maxgmr wants to merge 2 commits into
ubuntu:mainfrom
maxgmr:add-missing-rust-update-steps

Conversation

@maxgmr

@maxgmr maxgmr commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Description

There are two recently-added steps missing from the Rust update docs. I have added both of them in this branch.

First, I added a mandatory step which requires you to commit a file changed by a particular script and restore all the other files. I have explicitly detailed which file can be committed and which can be restored.

Second, an Archive Admin recently suggested I add the debian/ diff between the old and new Rust versions when requesting a new package upload, making the sponsorship process easier for everyone. I have added this step as well and linked to real comment which includes all this info for reference.

Checklist

The tarball vendoring step also updates the vendored dependencies
installed by rust-X.Y-src. This was never explained in the docs, so an
unexperienced maintainer may accidentally revert the changes to
rust-X.Y-src, causing the package build to fail.

Now, the docs properly include this non-negotiable step, additionally
clarifying that all other possible changes to the repo are safe to
revert.
@maxgmr
maxgmr requested review from rkratky and s-makin as code owners July 16, 2026 16:35
Since a new upload of the Rust toolchain is a new package every time, an
AA recently told me that adding a debian diff against the old package
will make the upload easier for everyone.

I have added both instructions on how to do this and also a real example
of an upload request which contains all this information.
@maxgmr
maxgmr force-pushed the add-missing-rust-update-steps branch from 13367c1 to fdc73c1 Compare July 16, 2026 16:39

@rkratky rkratky left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, @maxgmr. A few nits.

$ lintian > <path_to_saved_lintian_output_file>
```

If you are updating the toolchain to a new version (necessitating a new package upload), an {term}`Archive Admin` will need to approve the new package. You can make their job easier and speed up your package upload by generating a diff of the `debian/` directory and including it as an attachment, allowing the Archive Admin to easily review the changes:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
If you are updating the toolchain to a new version (necessitating a new package upload), an {term}`Archive Admin` will need to approve the new package. You can make their job easier and speed up your package upload by generating a diff of the `debian/` directory and including it as an attachment, allowing the Archive Admin to easily review the changes:
For updating the toolchain to a new version (necessitating a new package upload), an {term}`Archive Admin` needs to approve the new package. To make their job easier and speed up the package upload by generating a diff of the `debian/` directory and including it as an attachment, allowing the Archive Admin to easily review the changes:

Comment on lines +32 to +34
- If this is a Rust update, an attachment of the diff of the `debian/` directory between the old and new Rust versions

You can see a real example of such an upload request [here](https://bugs.launchpad.net/ubuntu/+bug/2156635/comments/1).

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- If this is a Rust update, an attachment of the diff of the `debian/` directory between the old and new Rust versions
You can see a real example of such an upload request [here](https://bugs.launchpad.net/ubuntu/+bug/2156635/comments/1).
- For Rust updates, an attachment of the diff of the `debian/` directory between the old and new Rust versions
See a real example of such an upload request at {lpbug}`2156635`.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Apropos the Launchpad URL, I'd like to link to the comment specifically rather than the bug as a whole just so the reader can focus on the upload info itself rather than the surrounding bug and discussion. In this case, can we keep the unformatted URL?


You should now see a new tarball in the parent directory: `../rustc-<X.Y>_<X.Y.Z>+dfsg.orig-vendor.tar.xz`. In later steps, we use this to replace the existing `vendor/` directory.

You may also notice that `debian/rust-X.Y-src.install.in` has been updated — this is intentional. One binary package, `rust-<X.Y>-src`, installs certain vendored dependencies needed to build the Rust standard library from source. The `vendor-tarball` rule updates the dependency numbers so `rust-<X.Y>-src` ships the proper files. Commit the changes to `debian/rust-X.Y-src.install.in` before proceeding.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
You may also notice that `debian/rust-X.Y-src.install.in` has been updated — this is intentional. One binary package, `rust-<X.Y>-src`, installs certain vendored dependencies needed to build the Rust standard library from source. The `vendor-tarball` rule updates the dependency numbers so `rust-<X.Y>-src` ships the proper files. Commit the changes to `debian/rust-X.Y-src.install.in` before proceeding.
Notice that `debian/rust-X.Y-src.install.in` has been updated — this is intentional. One binary package, `rust-<X.Y>-src`, installs certain vendored dependencies needed to build the Rust standard library from source. The `vendor-tarball` rule updates the dependency numbers, so `rust-<X.Y>-src` ships the proper files. Commit the changes to `debian/rust-X.Y-src.install.in` before proceeding.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants