Skip to content

Conversation

@maxgmr
Copy link
Contributor

@maxgmr maxgmr commented Dec 11, 2025

Description

Over the past few months I've automated and improved several steps of the Rust update process.

I've updated the "How to update Rust" page with the following changes:

  • Change the version string in various steps to be compliant with the updated version string format
  • Replace manual dependency pruning with cargo-vendor-filterer
  • Remove references to removed d/control.in file
  • Remove steps for creating your own venv, as that's now automatic
  • Update steps to reference new tarball component generated by cargo-vendor-filterer
  • Add a list of common build issues starting with a section on manual dependency pinning

Checklist


Additional notes (optional)

I understand this is a very large diff. Because of this, I've split up my changes as much as possible. If you'd prefer I'd group up my changes so they're organized more like the list of changes above, please let me know. Thanks!


The tarball format depends on the particular maintenance task at hand,
so a universal example doesn't make sense.
This is no longer needed because of the new update process.
The version string format for the rustc package has changed. Some
improvements for clarity have been made too.
The new update process has dropped the autogenerated list of ignored
vendored dependencies in favour of this method instead.
The tarball name has changed, and it's a good idea to make a backup
here, so I added instructions for that.
The new process for pruning unwanted vendored dependencies is done
automatically rather than manually, so instructions for pruning are no
longer needed.

These instructions have been replaced with instructions for setting up
the cargo-vendor-filterer tool that does this process automatically.
Since we now generate the vendored deps in a different way, we now also
search for and prune vendored C libs differently.
Since we now use two orig tarballs instead of one and a different
version string format, we must update these steps as well.
Now that we have crate stubs instead of completely-pruned crates, we
can't just check for a bunch of removed files. Instead, we can just
spot-check a few crates we know we shouldn't have to ensure they've been
stubbed.
Previously, this step used to happen as a side-effect of running an
obsolete script for updating pruned dependencies.

Now that it's done intentionally by running its own script, it has its
own step.
d/control.in is an obsolete file that was removed several Rust versions
ago.
I've changed this section to a note because it's just a way to fix a
potential issue the maintainer may run into rather than a fundamental
step of the build process.
Thankfully, I've updated the package so it handles its own dependencies
without requiring the maintainer to set up any venvs on their own.
This is a necessary step for properly handling the copyright entries of
stubbed crates.
Necessary now that there are more steps.
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.

1 participant