Skip to content

Update the toolstate docs #637

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

Merged
merged 1 commit into from
Jul 11, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions src/infra/toolstate.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Handling of tools embedded in the rustc repo ("toolstate")

The Rust repository contains several external tools and documents as git
submodules (e.g. clippy, rls, the [Book], the [Reference]). Many of those are
submodules (e.g. miri, rls, the [Book], the [Reference]). Many of those are
very tightly coupled to the compiler and depend on internal APIs that change all
the time, but they are not actually essential to get the compiler itself to
work. To make API changes less painful, these tools are allowed to "break"
Expand Down Expand Up @@ -32,7 +32,7 @@ rules are for when which tools are (not) allowed to break.
happening.)

At the time of writing, the following tools are "nightly only": rustc-dev-guide,
miri, embedded-book.
miri, RLS, embedded-book.

## Updating the toolstate repository

Expand All @@ -57,12 +57,15 @@ Tools can be updated by updating the submodule to the proper commit.
Run `git submodule update --remote path/to/submodule`, add the updates, make
sure the tests pass, commit, and send a pull request. The path is from the
root of the rust repository, so for example, the reference is
`src/doc/reference` and rustfmt is `src/tools/rustfmt`.
`src/doc/reference` and rls is `src/tools/rls`.

While not required, [subup] may assist you with this.

## Adding a tool

**NOTE**: We are trying to switch away from submodules and toolstate over time.
Consider adding a subtree instead of a submodule: [#70651](https://github.com/rust-lang/rust/issues/70651)

To add a new tool to be tracked, the following steps must be taken:

1. Create a PR to rust-lang/rust that adds the submodule along with any
Expand Down