|
| 1 | +Thank you for your interest in contributing to the Rust Reference! |
| 2 | + |
| 3 | +There are a few ways of helping with the reference: critiquing the reference, |
| 4 | +editing the reference, fixing incorrect information, adding examples and |
| 5 | +glossary entries, and documenting new or otherwise undocumented features in |
| 6 | +Rust. |
| 7 | + |
| 8 | +For awhile, the Reference was basically ignored, and Rust continued gaining |
| 9 | +new features or changing old ones. It was also basically the introduction |
| 10 | +document before the first edition of the Rust book, and constantly in flux from |
| 11 | +the huge churn of the language design before v1.0.0. So there's a lot that's |
| 12 | +wrong, too teachy for people who should have basic understanding of Rust, or |
| 13 | +is too shallow for the Reference. As such, we |
| 14 | +have the warning saying there's work that needs to be done. Eventually, we plan |
| 15 | +to make sure everything is well documented enough that we can remove the |
| 16 | +warning. |
| 17 | + |
| 18 | +## Critiquing the Reference |
| 19 | + |
| 20 | +This is the easiest way to contribute. Basically, as you read the reference, if |
| 21 | +you find something confusing, incorrect, or missing, then you can file an issue |
| 22 | +against the reference explaining your concerns. |
| 23 | + |
| 24 | +## Editing the Reference |
| 25 | + |
| 26 | +Typos and incorrect links get through from time to time. Should you find them, |
| 27 | +we welcome PRs to fix them. Additionally, larger editing jobs that help remove |
| 28 | +the number of parentheticals, remove comma splices, italicize term definitions |
| 29 | +and other similar tasks are helpful. |
| 30 | + |
| 31 | +## Adding Examples and Glossary Entries |
| 32 | + |
| 33 | +Examples are great. Many people will only read examples and ignore the prose. |
| 34 | +Ideally, every facet of every feature will have an example. |
| 35 | + |
| 36 | +Likewise, the reference has a glossary. It doesn't need to explain every facet |
| 37 | +of every feature nor contain every definition, but it does need to be expanded |
| 38 | +upon. Ideally entries in the glossary link to the associated documentation. |
| 39 | + |
| 40 | +## Adding Documentation |
| 41 | + |
| 42 | +There are a lot of features that are not documented at all or are documented |
| 43 | +poorly. This is the hardest, but definitely most valuable. Pick something from |
| 44 | +["Document all features"][9] or a [missing feature] tag, and write about it. |
| 45 | + |
| 46 | +While writing, you may find it handy to have a [playpen] open to test out what |
| 47 | +you are documenting. |
| 48 | + |
| 49 | +Feel free to take information from the standard library and Rustonomicon as |
| 50 | +appropriate. |
| 51 | + |
| 52 | +Note that we don't write documentation for purely library features such as |
| 53 | +threads and IO and we don't write about Rust in the future. Documentation is |
| 54 | +written as if the current stable release of Rust is the last release. If you |
| 55 | +want to write about Rust in the future, you want [the Unstable book][unstable]. |
| 56 | + |
| 57 | +[9]: https://github.com/rust-lang-nursery/reference/issues/9 |
| 58 | +[missing feature]: https://github.com/rust-lang-nursery/reference/issues?q=is%3Aissue+is%3Aopen+label%3A%22Missing+Feature%22 |
| 59 | +[playpen]: https://play.rust-lang.org/ |
| 60 | +[unstable]: https://doc.rust-lang.org/nightly/unstable-book/ |
0 commit comments