11# Contributing to Rust
2+ [ contributing-to-rust ] : #contributing-to-rust
23
34Thank you for your interest in contributing to Rust! There are many ways to
45contribute, and we appreciate all of them. This document is a bit long, so here's
@@ -23,13 +24,15 @@ As a reminder, all contributors are expected to follow our [Code of Conduct][coc
2324[ coc ] : https://www.rust-lang.org/conduct.html
2425
2526## Feature Requests
27+ [ feature-requests ] : #feature-requests
2628
2729To request a change to the way that the Rust language works, please open an
2830issue in the [ RFCs repository] ( https://github.com/rust-lang/rfcs/issues/new )
2931rather than this one. New features and other significant language changes
3032must go through the RFC process.
3133
3234## Bug Reports
35+ [ bug-reports ] : #bug-reports
3336
3437While bugs are unfortunate, they're a reality in software. We can't fix what we
3538don't know about, so please report liberally. If you're not sure if something
@@ -80,6 +83,7 @@ $ RUST_BACKTRACE=1 rustc ...
8083```
8184
8285## The Build System
86+ [ the-build-system ] : #the-build-system
8387
8488Rust's build system allows you to bootstrap the compiler, run tests &
8589benchmarks, generate documentation, install a fresh build of Rust, and more.
@@ -94,6 +98,7 @@ system internals, try asking in [`#rust-internals`][pound-rust-internals].
9498[ bootstrap ] : https://github.com/rust-lang/rust/tree/master/src/bootstrap/
9599
96100### Configuration
101+ [ configuration ] : #configuration
97102
98103Before you can start building the compiler you need to configure the build for
99104your system. In most cases, that will just mean using the defaults provided
@@ -125,6 +130,11 @@ file. If you still have a `config.mk` file in your directory - from
125130` ./configure ` - you may need to delete it for ` config.toml ` to work.
126131
127132### Building
133+ [ building ] : #building
134+
135+ Dependencies
136+ - [ build dependencies] ( README.md#building-from-source )
137+ - ` gdb ` 6.2.0 minimum, 7.1 or later recommended for test builds
128138
129139The build system uses the ` x.py ` script to control the build process. This script
130140is used to build, test, and document various parts of the compiler. You can
@@ -194,6 +204,7 @@ Note: Previously `./configure` and `make` were used to build this project.
194204They are still available, but ` x.py ` is the recommended build system.
195205
196206### Useful commands
207+ [ useful-commands ] : #useful-commands
197208
198209Some common invocations of ` x.py ` are:
199210
@@ -234,6 +245,7 @@ Some common invocations of `x.py` are:
234245 code.
235246
236247### Using your local build
248+ [ using-local-build ] : #using-local-build
237249
238250If you use Rustup to manage your rust install, it has a feature called [ "custom
239251toolchains"] [ toolchain-link ] that you can use to access your newly-built compiler
@@ -262,6 +274,7 @@ stage 1. `python x.py build --stage 1 src/libstd src/tools/rustdoc` will build
262274rustdoc and libstd, which will allow rustdoc to be run with that toolchain.)
263275
264276## Pull Requests
277+ [ pull-requests ] : #pull-requests
265278
266279Pull requests are the primary mechanism we use to change Rust. GitHub itself
267280has some [ great documentation] [ pull-requests ] on using the Pull Request feature.
@@ -326,6 +339,7 @@ it can be found
326339[ here] ( https://github.com/rust-lang/rust-wiki-backup/blob/master/Note-testsuite.md ) .
327340
328341### External Dependencies
342+ [ external-dependencies ] : #external-dependencies
329343
330344Currently building Rust will also build the following external projects:
331345
@@ -340,6 +354,7 @@ It can also be more convenient during development to set `submodules = false`
340354in the ` config.toml ` to prevent ` x.py ` from resetting to the original branch.
341355
342356## Writing Documentation
357+ [ writing-documentation ] : #writing-documentation
343358
344359Documentation improvements are very welcome. The source of ` doc.rust-lang.org `
345360is located in ` src/doc ` in the tree, and standard API documentation is generated
@@ -370,6 +385,7 @@ reference to `doc/reference.html`. The CSS might be messed up, but you can
370385verify that the HTML is right.
371386
372387## Issue Triage
388+ [ issue-triage ] : #issue-triage
373389
374390Sometimes, an issue will stay open, even though the bug has been fixed. And
375391sometimes, the original bug may go stale because something has changed in the
@@ -437,6 +453,7 @@ If you're looking for somewhere to start, check out the [E-easy][eeasy] tag.
437453[ rfcbot ] : https://github.com/dikaiosune/rust-dashboard/blob/master/RFCBOT.md
438454
439455## Out-of-tree Contributions
456+ [ out-of-tree-contributions ] : #out-of-tree-contributions
440457
441458There are a number of other ways to contribute to Rust that don't deal with
442459this repository.
@@ -456,6 +473,7 @@ valuable!
456473[ community-library ] : https://github.com/rust-lang/rfcs/labels/A-community-library
457474
458475## Helpful Links and Information
476+ [ helpful-info ] : #helpful-info
459477
460478For people new to Rust, and just starting to contribute, or even for
461479more seasoned developers, some useful places to look for information
0 commit comments