@@ -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
@@ -107,30 +114,33 @@ In summary, the process for establishing an out-of-tree crate is as follows:
107
114
[ ` @rfcbot merge ` ] ( https://github.com/anp/rfcbot-rs#usage ) to gain agreement from compiler
108
115
team members.
109
116
1 . Create a new repository in the ` rust-lang ` organization.
110
- 1 . Navigate to ` Settings > Collaborators & Teams ` and add the ` Compiler ` team with write
111
- privileges and ` Assignees ` with ` read ` .
112
- 1 . Add a README describing the intended purpose of the crate, which team and working group are
113
- responsible (link to their page in this repository) and the intended level of maintenance and
114
- stability.
115
-
116
- > This crate is developed and maintained by the [ Rust compiler team] ( .. ) for use within
117
- > ` rustc ` , in particular, it is the responsibility of the
118
- > [ ` .template ` ] ( ../working-groups/.template ) working group. This crate [ will have regular
119
- > breaking changes and provides no stability guarantees|is intended to remain stable and have
120
- > limited breaking changes] .
121
- 1 . Include the [ LICENSE-APACHE] [ apache ] and [ LICENSE-MIT] [ mit ] files from ` rust-lang/rust ` .
122
- 1 . Include or link the [ CODE_OF_CONDUCT] [ coc ] file from ` rust-lang/rust ` .
123
- 1 . Create a relevant ` .gitignore ` ([ here's a sane default] [ gitignore ] ).
124
- 1 . Create ` P-high ` , ` P-med ` , ` P-low ` , ` I-nominated ` and ` T-compiler ` labels.
125
- 1 . Consult with the infrastructure team to set up ` @bors ` and ` @rust-highfive ` and a process for
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
126
134
publishing under the "The Rust Project Developers" crates.io account.
127
- 1 . Add a basic ` .travis.yml ` :
128
-
129
- ``` yaml
130
- language : rust
131
- rust :
132
- - stable
133
- ` ` `
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.
134
144
1. Perform any initial development required before integration with rustc.
135
145
1. Publish initial version, following semantic versioning.
136
146
1. Add the crate as a dependency to the appropriate in-tree crate and start using.
0 commit comments