- Feature Name: N/A
- Start Date: 2017-04-26
- RFC PR: rust-lang/rfcs#1983
- Rust Issue: N/A
Summary
Amend RFC 1242 to require an RFC for deprecation of crates from the rust-lang-nursery.
Motivation
There are currently very ubiquitous crates in the nursery that are being used by lots and lots of people, as evidenced by the crates.io download numbers (for lack of a better popularity metric):
Nursery crate | Downloads |
---|---|
bitflags | 3,156k |
rand | 2,615k |
log | 2,417k |
lazy-static | 2,108k |
tempdir | 934k |
uuid | 759k |
glob | 467k |
net2 | 452k |
getopts | 452k |
rustfmt | 80k |
simd | 14k |
(numbers as of 2017-04-26)
RFC 1242 currently specifies that
The libs subteam can deprecate nursery crates at any time
The libs team can of course be trusted to be judicious in making such decisions. However, considering that many of the nursery crates are depended on by big fractions of the Rust ecosystem, suddenly deprecating things without public discussion seems contrary to Rust’s philosophy of stability and community participation. Involving the Rust community at large in these decisions offers the benefits of the RFC process such as increased visibility, differing viewpoints, and transparency.
Detailed design
The exact amendment is included as a change to the RFC in this PR. View the amended text.
How We Teach This
N/A
Drawbacks
Requiring an RFC for deprecation might impose an undue burden on the library subteam in terms of crate maintenance. However, as RFC 1242 states, this is not a major commitment.
Acceptance into the nursery could be hindered if it is believed it could be hard to reverse course later due to the required RFC being perceived as an obstacle. On the other hand, RFCs with broad consensus do not generally impose a large procedural burden, and if there is no consensus it might be too early to deprecate a nursery crate anyway.
Alternatives
Don’t change the process and let the library subteam make deprecation decisions for nursery crates.
Unresolved questions
None as of yet.