]> git.proxmox.com Git - cargo.git/blob - CONTRIBUTING.md
Auto merge of #4523 - dbrgn:badges-docs, r=matklad
[cargo.git] / CONTRIBUTING.md
1 # Contributing to Cargo
2
3 Thank you for your interest in contributing to Cargo! Good places to
4 start are this document, [ARCHITECTURE.md](ARCHITECTURE.md), which
5 describes high-level structure of Cargo and [E-easy] bugs on the
6 issue tracker.
7
8 As a reminder, all contributors are expected to follow our [Code of Conduct].
9
10 [E-easy]: https://github.com/rust-lang/cargo/labels/E-easy
11 [Code of Conduct]: https://www.rust-lang.org/conduct.html
12
13
14 ## Running the tests
15
16 To run Cargo's tests, use `cargo test`. If you do not have the cross-compilers
17 installed locally, ignore the cross-compile test failures, or disable them by
18 using `CFG_DISABLE_CROSS_TESTS=1 cargo test`. Note that some tests are enabled
19 only on nightly toolchain.
20
21 ## Minimal version of Rust
22
23 Cargo must compile on stable Rust. Code added to Cargo is encouraged to use
24 the latest stable features of the language and `stdlib`.
25
26 ## Contributing to the Docs
27
28 To contribute to the docs, all you need to do is change the markdown files in
29 the `src/doc` directory. To view the rendered version of changes you have
30 made locally, run:
31
32 ```sh
33 sh src/ci/dox.sh
34 open target/doc/index.html
35 ```
36
37
38 ## Issue Triage
39
40 Sometimes, an issue will stay open, even though the bug has been fixed. And
41 sometimes, the original bug may go stale because something has changed in the
42 meantime.
43
44 It can be helpful to go through older bug reports and make sure that they are
45 still valid. Load up an older issue, double check that it's still true, and
46 leave a comment letting us know if it is or is not. The [least recently
47 updated sort][lru] is good for finding issues like this.
48
49 Contributors with sufficient permissions on the Rust repo can help by adding
50 labels to triage issues:
51
52 * Yellow, **A**-prefixed labels state which **area** of the project an issue
53 relates to.
54
55 * Magenta, **B**-prefixed labels identify bugs which are **blockers**.
56
57 * Light purple, **C**-prefixed labels represent the **category** of an issue.
58
59 * Dark purple, **Command**-prefixed labels mean the issue has to do with a
60 specific cargo command.
61
62 * Green, **E**-prefixed labels explain the level of **experience** or
63 **effort** necessary to fix the issue.
64
65 * Red, **I**-prefixed labels indicate the **importance** of the issue. The
66 [I-nominated][inom] label indicates that an issue has been nominated for
67 prioritizing at the next triage meeting.
68
69 * Purple gray, **O**-prefixed labels are the **operating system** or platform
70 that this issue is specific to.
71
72 * Orange, **P**-prefixed labels indicate a bug's **priority**. These labels
73 are only assigned during triage meetings, and replace the [I-nominated][inom]
74 label.
75
76 * The light orange **relnotes** label marks issues that should be documented in
77 the release notes of the next release.
78
79 If you're looking for somewhere to start, check out the [E-easy][eeasy] tag.
80
81 [eeasy]: https://github.com/rust-lang/cargo/issues?q=is%3Aopen+is%3Aissue+label%3AE-easy
82 [lru]: https://github.com/rust-lang/cargo/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-asc
83
84 ## Getting help
85
86 If you need some pointers about Cargo's internals, feel free to ask questions
87 on the relevant issue or on the [IRC].
88
89 [IRC]: https://kiwiirc.com/client/irc.mozilla.org/cargo