Skip to content

Commit 3505b42

Browse files
authored
Merge pull request #1983 from jethrogb/nursery-deprecation
Amend RFC 1242 to require an RFC for deprecation of crates from the nursery
2 parents 437e773 + 34d3217 commit 3505b42

File tree

2 files changed

+87
-5
lines changed

2 files changed

+87
-5
lines changed

text/1242-rust-lang-crates.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,8 @@ as full rust-lang crates), increasing the chances that the crate is scrutinized
8888
before being promoted to the next stage.
8989

9090
Eventually, a nursery crate will either fail (and move to rust-lang-deprecated)
91-
or reach a point where a 1.0 release would be appropriate. The failure case can
92-
be decided at any point by the library subteam.
91+
or reach a point where a 1.0 release would be appropriate. The failure case
92+
will be determined by means of an RFC.
9393

9494
If, on the other hand, a library reaches the 1.0 point, it is ready to be
9595
promoted into rust-lang proper. To do so, an RFC must be written outlining the
@@ -141,9 +141,9 @@ way of importing them.
141141
### Deprecation
142142

143143
At some point a library may become stale -- either because it failed to make it
144-
out of the nursery, or else because it was supplanted by a superior library. The
145-
libs subteam can deprecate nursery crates at any time, and can deprecate
146-
rust-lang crates through an RFC. This is expected to be a rare occurrence.
144+
out of the nursery, or else because it was supplanted by a superior library.
145+
Nursery and rust-lang crates can be deprecated only through an RFC. This is
146+
expected to be a rare occurrence.
147147

148148
Deprecated crates move to rust-lang-deprecated and are subsequently minimally
149149
maintained. Alternatively, if someone volunteers to maintain the crate,

text/1983-nursery-deprecation.md

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
- Feature Name: N/A
2+
- Start Date: 2017-04-26
3+
- RFC PR: https://github.com/rust-lang/rfcs/pull/1983
4+
- Rust Issue: N/A
5+
6+
# Summary
7+
[summary]: #summary
8+
9+
Amend [RFC 1242] to require an RFC for deprecation of crates from the
10+
rust-lang-nursery.
11+
12+
[RFC 1242]: https://github.com/rust-lang/rfcs/blob/master/text/1242-rust-lang-crates.md
13+
14+
# Motivation
15+
[motivation]: #motivation
16+
17+
There are currently very ubiquitous crates in the nursery that are being used
18+
by lots and lots of people, as evidenced by the crates.io download numbers (for
19+
lack of a better popularity metric):
20+
21+
| Nursery crate | Downloads |
22+
| ------------- | --------- |
23+
| bitflags | 3,156k |
24+
| rand | 2,615k |
25+
| log | 2,417k |
26+
| lazy-static | 2,108k |
27+
| tempdir | 934k |
28+
| uuid | 759k |
29+
| glob | 467k |
30+
| net2 | 452k |
31+
| getopts | 452k |
32+
| rustfmt | 80k |
33+
| simd | 14k |
34+
35+
(numbers as of 2017-04-26)
36+
37+
[RFC 1242] currently specifies that
38+
39+
> The libs subteam can deprecate nursery crates at any time
40+
41+
The libs team can of course be trusted to be judicious in making such
42+
decisions. However, considering that many of the nursery crates are depended on
43+
by big fractions of the Rust ecosystem, suddenly deprecating things without
44+
public discussion seems contrary to Rust's philosophy of stability and
45+
community participation. Involving the Rust community at large in these
46+
decisions offers the benefits of the RFC process such as increased visibility,
47+
differing viewpoints, and transparency.
48+
49+
# Detailed design
50+
[design]: #detailed-design
51+
52+
The exact amendment is included as a change to the RFC in this PR.
53+
[View the amended text](1242-rust-lang-crates.md).
54+
55+
# How We Teach This
56+
[how-we-teach-this]: #how-we-teach-this
57+
58+
N/A
59+
60+
# Drawbacks
61+
[drawbacks]: #drawbacks
62+
63+
Requiring an RFC for deprecation might impose an undue burden on the library
64+
subteam in terms of crate maintenance. However, as [RFC 1242] states, this is
65+
not a major commitment.
66+
67+
Acceptance into the nursery could be hindered if it is believed it could be
68+
hard to reverse course later due to the required RFC being percieved as an
69+
obstacle. On the other hand, RFCs with broad consensus do not generally impose
70+
a large procedural burden, and if there is no consensus it might be too early
71+
to deprecate a nursery crate anyway.
72+
73+
# Alternatives
74+
[alternatives]: #alternatives
75+
76+
Don't change the process and let the library subteam make deprecation decisions
77+
for nursery crates.
78+
79+
# Unresolved questions
80+
[unresolved]: #unresolved-questions
81+
82+
None as of yet.

0 commit comments

Comments
 (0)