Skip to content

Commit

Permalink
Contrib: Document submodule update process
Browse files Browse the repository at this point in the history
  • Loading branch information
ehuss committed Jul 30, 2022
1 parent 281989f commit b0b925f
Showing 1 changed file with 40 additions and 0 deletions.
40 changes: 40 additions & 0 deletions src/doc/contrib/src/process/release.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,46 @@ and stable releases.

[`dist` bootstrap module]: https://github.com/rust-lang/rust/blob/master/src/bootstrap/dist.rs

## Submodule updates

Cargo is tracked in the [rust-lang/rust] repository using a [git submodule].
It is updated manually about once a week but a Cargo team member.
However, anyone is welcome to update it as needed.

[@ehuss] has a tool called [subup](https://github.com/ehuss/subup) to automate the process of updating the submodule, updating the lockfile, running tests, and creating a PR.
Running the tests ahead-of-time helps avoid long cycle times waiting for bors if there are any errors.
Subup will also provide a message to include in the PR with a list of all PRs it covers.
Posting this in the PR message also helps create reference links on each Cargo PR to the submodule update PR to help track when it gets merged.

The following is an example of the command to run in a local clone of rust-lang/rust to run a certain set of tests of things that are likely to get broken by a Cargo update:

```bash
subup --up-branch update-cargo \
--commit-message "Update cargo" \
--test="src/tools/linkchecker tidy \
src/tools/cargo \
src/tools/rustfmt \
src/tools/rls" \
src/tools/cargo
```

If doing a [beta backport](#beta-backports), the command is similar, but needs to point to the correct branches:

```bash
subup --up-branch update-beta-cargo \
--rust-branch beta \
--set-config rust.channel=beta \
--commit-message "[beta] Update cargo" \
--test="src/tools/linkchecker tidy \
src/tools/cargo \
src/tools/rustfmt \
src/tools/rls" \
rust-1.63.0:src/tools/cargo
```

[@ehuss]: https://github.com/ehuss/
[git submodule]: https://git-scm.com/book/en/v2/Git-Tools-Submodules

## Version updates

Shortly after each major release, a Cargo team member will post a PR to update
Expand Down

0 comments on commit b0b925f

Please sign in to comment.