Skip to content

Commit e85856a

Browse files
committed
Auto merge of #5534 - matklad:feature-workflow, r=alexcrichton
Feature workflow Docs based on todays discussion. @dwijnand you seem to actually read the docs, so I am curious how do you feel about it? :) We have a **lot** of feature-requests for Cargo, but we care about long-term maintainability and backwards comparability, so we stick to the conservative side of things. This leads to a situation when there are a lot of `C-feature-request` tagged issues on the repo, but only a fraction of those are "yeah, we definitely want that in Cargo", while most are "this **could** be useful, but we are not really sure if it belongs to Cargo", and we'd love to signal which issues are "it would be awesome if you implement this" and which are "you could try to implement this, but there's no guarantee that the PR will be merged".
2 parents 04c8c06 + d3f118d commit e85856a

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

CONTRIBUTING.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,16 @@ necessary to use it exactly:
3939
All three components are important: what you did, what you expected, what
4040
happened instead. Please use https://gist.github.com/ if your examples run long.
4141

42+
43+
## Feature requests
44+
45+
Cargo follows the general Rust model of evolution. All major features go through
46+
an RFC process. Therefore, before opening a feature request issue create a
47+
Pre-RFC thread on the [internals][irlo] forum to get preliminary feedback.
48+
Implementing a feature as a [custom subcommand][subcommands] is encouraged as it
49+
helps demonstrate the demand for the functionality and is a great way to deliver
50+
a working solution faster as it can iterate outside of cargo's release cadence.
51+
4252
## Working on issues
4353

4454
If you're looking for somewhere to start, check out the [E-easy][E-Easy] and
@@ -147,6 +157,11 @@ adding labels to triage issues:
147157
* Magenta, **B**-prefixed labels identify bugs which are **blockers**.
148158

149159
* Light purple, **C**-prefixed labels represent the **category** of an issue.
160+
In particular, **C-feature-request** marks *proposals* for new features. If
161+
an issue is **C-feature-request**, but is not **Feature accepted** or **I-nominated**,
162+
then it was not thoroughly discussed, and might need some additional design
163+
or perhaps should be implemented as an external subcommand first. Ping
164+
@rust-lang/cargo if you want to send a PR for such issue.
150165

151166
* Dark purple, **Command**-prefixed labels mean the issue has to do with a
152167
specific cargo command.
@@ -183,3 +198,5 @@ adding labels to triage issues:
183198
[Code of Conduct]: https://www.rust-lang.org/conduct.html
184199
[IRC]: https://kiwiirc.com/client/irc.mozilla.org/cargo
185200
[`cargotest/mod.rs`]: https://github.com/rust-lang/cargo/blob/master/tests/testsuite/cargotest/mod.rs
201+
[irlo]: https://internals.rust-lang.org/
202+
[subcommands]: https://doc.rust-lang.org/cargo/reference/external-tools.html#custom-subcommands

0 commit comments

Comments
 (0)