1
1
# Handling of tools embedded in the rustc repo ("toolstate")
2
2
3
3
The 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
5
5
very tightly coupled to the compiler and depend on internal APIs that change all
6
6
the time, but they are not actually essential to get the compiler itself to
7
7
work. 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.
32
32
happening.)
33
33
34
34
At the time of writing, the following tools are "nightly only": rustc-dev-guide,
35
- miri, embedded-book.
35
+ miri, RLS, embedded-book.
36
36
37
37
## Updating the toolstate repository
38
38
@@ -57,12 +57,15 @@ Tools can be updated by updating the submodule to the proper commit.
57
57
Run ` git submodule update --remote path/to/submodule ` , add the updates, make
58
58
sure the tests pass, commit, and send a pull request. The path is from the
59
59
root 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 ` .
61
61
62
62
While not required, [ subup] may assist you with this.
63
63
64
64
## Adding a tool
65
65
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
+
66
69
To add a new tool to be tracked, the following steps must be taken:
67
70
68
71
1 . Create a PR to rust-lang/rust that adds the submodule along with any
0 commit comments