11# Handling of tools embedded in the rustc repo ("toolstate")
22
33The Rust repository contains several external tools and documents as git
4- submodules (e.g. clippy , rls, the [ Book] , the [ Reference] ). Many of those are
4+ submodules (e.g. miri , rls, the [ Book] , the [ Reference] ). Many of those are
55very tightly coupled to the compiler and depend on internal APIs that change all
66the time, but they are not actually essential to get the compiler itself to
77work. To make API changes less painful, these tools are allowed to "break"
@@ -32,7 +32,7 @@ rules are for when which tools are (not) allowed to break.
3232 happening.)
3333
3434 At the time of writing, the following tools are "nightly only": rustc-dev-guide,
35- miri, embedded-book.
35+ miri, RLS, embedded-book.
3636
3737## Updating the toolstate repository
3838
@@ -57,12 +57,15 @@ Tools can be updated by updating the submodule to the proper commit.
5757Run ` git submodule update --remote path/to/submodule ` , add the updates, make
5858sure the tests pass, commit, and send a pull request. The path is from the
5959root of the rust repository, so for example, the reference is
60- ` src/doc/reference ` and rustfmt is ` src/tools/rustfmt ` .
60+ ` src/doc/reference ` and rls is ` src/tools/rls ` .
6161
6262While not required, [ subup] may assist you with this.
6363
6464## Adding a tool
6565
66+ ** NOTE** : We are trying to switch away from submodules and toolstate over time.
67+ Consider adding a subtree instead of a submodule: [ #70651 ] ( https://github.com/rust-lang/rust/issues/70651 )
68+
6669To add a new tool to be tracked, the following steps must be taken:
6770
68711 . Create a PR to rust-lang/rust that adds the submodule along with any
0 commit comments