summaryrefslogtreecommitdiff
path: root/CONTRIBUTING.md
diff options
context:
space:
mode:
authorkennytm <kennytm@gmail.com>2017-10-05 20:22:30 +0800
committerGitHub <noreply@github.com>2017-10-05 20:22:30 +0800
commit3a037f113c7fdf79b1dbe674f2f40c2b2735eca3 (patch)
tree505510f5aed36e8b6ef8a073f002dfc228a66d95 /CONTRIBUTING.md
parentb34ade07a1ab3a54b93f799b65282661d579f6fa (diff)
parentdaf3ed5651f13857e640d183987ea83d007988aa (diff)
downloadrust-3a037f113c7fdf79b1dbe674f2f40c2b2735eca3.tar.gz
Rollup merge of #44935 - vitiral:dependencies, r=steveklabnik
Add links to headers in README and CONTRIBUTING this also adds dependencies to CONTRIBUTING I'm just getting started building the rust compiler and noticed this information/ability was missing. It was also missing the gdb dependency for running tests. I pulled the information out of `appveyor.yml` and recommended later than 7.1 because that is what [apt ships](https://packages.ubuntu.com/search?suite=trusty&keywords=gdb). Feel free to tell me something different!
Diffstat (limited to 'CONTRIBUTING.md')
-rw-r--r--CONTRIBUTING.md18
1 files changed, 18 insertions, 0 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index ac89462e492..ce238eada10 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,4 +1,5 @@
# Contributing to Rust
+[contributing-to-rust]: #contributing-to-rust
Thank you for your interest in contributing to Rust! There are many ways to
contribute, and we appreciate all of them. This document is a bit long, so here's
@@ -23,6 +24,7 @@ As a reminder, all contributors are expected to follow our [Code of Conduct][coc
[coc]: https://www.rust-lang.org/conduct.html
## Feature Requests
+[feature-requests]: #feature-requests
To request a change to the way that the Rust language works, please open an
issue in the [RFCs repository](https://github.com/rust-lang/rfcs/issues/new)
@@ -30,6 +32,7 @@ rather than this one. New features and other significant language changes
must go through the RFC process.
## Bug Reports
+[bug-reports]: #bug-reports
While bugs are unfortunate, they're a reality in software. We can't fix what we
don't know about, so please report liberally. If you're not sure if something
@@ -80,6 +83,7 @@ $ RUST_BACKTRACE=1 rustc ...
```
## The Build System
+[the-build-system]: #the-build-system
Rust's build system allows you to bootstrap the compiler, run tests &
benchmarks, generate documentation, install a fresh build of Rust, and more.
@@ -94,6 +98,7 @@ system internals, try asking in [`#rust-internals`][pound-rust-internals].
[bootstrap]: https://github.com/rust-lang/rust/tree/master/src/bootstrap/
### Configuration
+[configuration]: #configuration
Before you can start building the compiler you need to configure the build for
your 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
`./configure` - you may need to delete it for `config.toml` to work.
### Building
+[building]: #building
+
+Dependencies
+- [build dependencies](README.md#building-from-source)
+- `gdb` 6.2.0 minimum, 7.1 or later recommended for test builds
The build system uses the `x.py` script to control the build process. This script
is 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.
They are still available, but `x.py` is the recommended build system.
### Useful commands
+[useful-commands]: #useful-commands
Some common invocations of `x.py` are:
@@ -234,6 +245,7 @@ Some common invocations of `x.py` are:
code.
### Using your local build
+[using-local-build]: #using-local-build
If you use Rustup to manage your rust install, it has a feature called ["custom
toolchains"][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
rustdoc and libstd, which will allow rustdoc to be run with that toolchain.)
## Pull Requests
+[pull-requests]: #pull-requests
Pull requests are the primary mechanism we use to change Rust. GitHub itself
has some [great documentation][pull-requests] on using the Pull Request feature.
@@ -326,6 +339,7 @@ it can be found
[here](https://github.com/rust-lang/rust-wiki-backup/blob/master/Note-testsuite.md).
### External Dependencies
+[external-dependencies]: #external-dependencies
Currently building Rust will also build the following external projects:
@@ -350,6 +364,7 @@ It can also be more convenient during development to set `submodules = false`
in the `config.toml` to prevent `x.py` from resetting to the original branch.
## Writing Documentation
+[writing-documentation]: #writing-documentation
Documentation improvements are very welcome. The source of `doc.rust-lang.org`
is located in `src/doc` in the tree, and standard API documentation is generated
@@ -380,6 +395,7 @@ reference to `doc/reference.html`. The CSS might be messed up, but you can
verify that the HTML is right.
## Issue Triage
+[issue-triage]: #issue-triage
Sometimes, an issue will stay open, even though the bug has been fixed. And
sometimes, the original bug may go stale because something has changed in the
@@ -447,6 +463,7 @@ If you're looking for somewhere to start, check out the [E-easy][eeasy] tag.
[rfcbot]: https://github.com/dikaiosune/rust-dashboard/blob/master/RFCBOT.md
## Out-of-tree Contributions
+[out-of-tree-contributions]: #out-of-tree-contributions
There are a number of other ways to contribute to Rust that don't deal with
this repository.
@@ -466,6 +483,7 @@ valuable!
[community-library]: https://github.com/rust-lang/rfcs/labels/A-community-library
## Helpful Links and Information
+[helpful-info]: #helpful-info
For people new to Rust, and just starting to contribute, or even for
more seasoned developers, some useful places to look for information