|
| 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