@@ -94,6 +94,13 @@ request.
94
94
Recommendations for working with out-of-tree crates will be documented in the rustc-guide, see
95
95
[ rust-lang/rustc-guide #285 ] [ guide_issue ] for progress.
96
96
97
+ ### How should stabilization/semantic changes be handled in out-of-tree crates?
98
+ It is important to involve the language team in any changes in out-of-tree crates that would result
99
+ in stabilization or semantic changes to the language. Submodule changes in PRs to ` rust-lang/rust `
100
+ should be labelled appropriately (eg. ` relnotes ` , ` T-compiler ` , ` T-lang ` ) just as if the change
101
+ were implemented in ` rust-lang/rust ` directly, include a description of the changes when it is not
102
+ obvious to those unfamiliar with the compiler or the out-of-tree crate.
103
+
97
104
[ licenses ] : https://github.com/rust-lang/rust/blob/master/src/tools/tidy/src/deps.rs#L10-L19
98
105
[ guide_issue ] : https://github.com/rust-lang/rustc-guide/issues/285
99
106
@@ -103,28 +110,43 @@ In summary, the process for establishing an out-of-tree crate is as follows:
103
110
104
111
1 . Where appropriate, discuss and confirm the need within the working group for the out-of-tree
105
112
crate.
106
- 2 . Create a PR modifying this document to include the crate in the list below. Use
113
+ 1 . Create a PR modifying this document to include the crate in the list below. Use
107
114
[ ` @rfcbot merge ` ] ( https://github.com/anp/rfcbot-rs#usage ) to gain agreement from compiler
108
115
team members.
109
- 3 . Create a new repository in the ` rust-lang ` organization (permissions should be available for all
110
- compiler team members).
111
- 4 . Add a README describing the intended purpose of the crate, which team and working group are
112
- responsible (link to their page in this repository) and the intended level of maintenance and
113
- stability.
114
-
115
- > This crate is developed and maintained by the [ Rust compiler team] ( .. ) for use within
116
- > ` rustc ` , in particular, it is the responsibility of the
117
- > [ ` .template ` ] ( ../working-groups/.template ) working group. This crate [ will have regular
118
- > breaking changes and provides no stability guarantees|is intended to remain stable and have
119
- > limited breaking changes] .
120
- 5 . Include the [ LICENSE-APACHE] [ apache ] and [ LICENSE-MIT] [ mit ] files from ` rust-lang/rust ` .
121
- 6 . Include or link the [ CODE_OF_CONDUCT] [ coc ] file from ` rust-lang/rust ` .
122
- 7 . Consult with the infrastructure team to set up ` @bors ` and ` @rust-highfive ` and a process for
116
+ 1 . Create a new repository in the ` rust-lang ` organization.
117
+ 1 . Navigate to ` Settings > Collaborators & Teams ` and add the ` Compiler ` team with write
118
+ privileges and ` Assignees ` with ` read ` .
119
+ - Individuals that are not part of the team can be added where appropriate.
120
+ 1 . Add a README describing the intended purpose of the crate, which team and working group are
121
+ responsible (link to their page in this repository) and the intended level of maintenance and
122
+ stability.
123
+
124
+ > This crate is developed and maintained by the [ Rust compiler team] ( .. ) for use within
125
+ > ` rustc ` , in particular, it is the responsibility of the
126
+ > [ ` .template ` ] ( ../working-groups/.template ) working group. This crate [ will have regular
127
+ > breaking changes and provides no stability guarantees|is intended to remain stable and have
128
+ > limited breaking changes] .
129
+ 1 . Include the [ LICENSE-APACHE] [ apache ] and [ LICENSE-MIT] [ mit ] files from ` rust-lang/rust ` .
130
+ 1 . Include or link the [ CODE_OF_CONDUCT] [ coc ] file from ` rust-lang/rust ` .
131
+ 1 . Create a relevant ` .gitignore ` ([ here's a sane default] [ gitignore ] ).
132
+ 1 . Create ` P-high ` , ` P-med ` , ` P-low ` , ` I-nominated ` and ` T-compiler ` labels.
133
+ 1 . Consult with the infrastructure team to set up ` @rust-highfive ` and a process for
123
134
publishing under the "The Rust Project Developers" crates.io account.
124
- 8 . Perform any initial development required before integration with rustc.
125
- 9 . Publish initial version, following semantic versioning.
126
- 10 . Add the crate as a dependency to the appropriate in-tree crate and start using.
127
-
135
+ 1 . Add a basic ` .travis.yml ` :
136
+
137
+ ``` yaml
138
+ language : rust
139
+ rust :
140
+ - stable
141
+ ` ` `
142
+ - ` @bors` is not normally used for out-of-tree crates, GitHub's built-in merge facilities can
143
+ be used instead.
144
+ 1. Perform any initial development required before integration with rustc.
145
+ 1. Publish initial version, following semantic versioning.
146
+ 1. Add the crate as a dependency to the appropriate in-tree crate and start using.
147
+
148
+ [gitignore] : https://gitignore.io/api/vim,rust,emacs,clion,visualstudio,visualstudiocode
149
+ [triagebot] : https://github.com/rust-lang/rust/blob/master/triagebot.toml
128
150
[apache] : https://github.com/rust-lang/rust/blob/master/LICENSE-APACHE
129
151
[coc] : https://github.com/rust-lang/rust/blob/master/CODE_OF_CONDUCT.md
130
152
[mit] : https://github.com/rust-lang/rust/blob/master/LICENSE-MIT
@@ -143,5 +165,6 @@ The same policies apply to all compiler-team-maintained crates used in the compi
143
165
# # List of out-of-tree crates
144
166
This section contains the list of existing out-of-tree, compiler team-maintained crates :
145
167
146
- - [ ` rust-lang-nursery/chalk ` ] ( https://github.com/rust-lang-nursery/chalk/ )
147
- - [ ` rust-lang-nursery/polonius ` ] ( https://github.com/rust-lang-nursery/polonius/ )
168
+ - [`rust-lang/chalk`](https://github.com/rust-lang/chalk/)
169
+ - [`rust-lang/polonius`](https://github.com/rust-lang/polonius/)
170
+ - [`rust-lang/measureme`](https://github.com/rust-lang/measureme/)
0 commit comments