Skip to content
This repository was archived by the owner on Sep 30, 2020. It is now read-only.

Commit 875f46e

Browse files
committed
Merge pull request #244 from brson/doc-contribs-faq
New doc, contribution, and FAQ pages
2 parents db6b1ec + f3261af commit 875f46e

19 files changed

+2274
-89
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
_site
22
Gemfile.lock
33
serve/
4+
*~

_config.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
name: The Rust Programming Language
22
markdown: redcarpet
3+
redcarpet:
4+
extensions: ["tables"]

_layouts/basic.html

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<!DOCTYPE html>
2+
<!-- Page last generated {{ site.time }} -->
3+
<html lang="en">
4+
<head>
5+
<meta charset="utf-8">
6+
<title>{{ page.title }}</title>
7+
<meta name="viewport" content="width=device-width, initial-scale=1">
8+
<meta name="keywords" content="Rust, Rust programming language, rustlang, rust-lang, Mozilla Rust">
9+
<meta name="description" content="A systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety.">
10+
11+
<link rel="stylesheet" href="/css/bootstrap.css">
12+
<link rel="stylesheet" href="/css/style.css">
13+
</head>
14+
15+
<body class="container">
16+
<a href="https://github.com/rust-lang/rust">
17+
<img class="ribbon" style="display: none" src="/logos/forkme.png" alt="Fork me on GitHub" width="298" height="298">
18+
</a>
19+
20+
<header>
21+
22+
<ul class="row menu">
23+
<li class="col-xs-12 col-md-2">
24+
<a href="index.html">
25+
<img class="img-responsive" src="logos/rust-logo-blk.svg" onerror="this.src='logos/rust-logo-256x256-blk.png'" height="128" width="128" alt="Rust logo" />
26+
</a>
27+
</li>
28+
<li class="col-xs-12 col-md-10 menu">
29+
<h2><a href="documentation.html">Documentation</a></h2>
30+
<h2><a href="community.html">Community</a></h2>
31+
<h2><a href="downloads.html">Downloads</a></h2>
32+
<h2><a href="contribute.html">Contribute</a></h2>
33+
</li>
34+
</ul>
35+
</header>
36+
{{ content }}
37+
<script>
38+
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
39+
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
40+
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
41+
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
42+
43+
ga('create', 'UA-58390457-1', 'auto');
44+
ga('send', 'pageview');
45+
46+
</script>
47+
</body>
48+
</html>

_layouts/default.html

Lines changed: 6 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,7 @@
1-
<!DOCTYPE html>
2-
<!-- Page last generated {{ site.time }} -->
3-
<html lang="en">
4-
<head>
5-
<meta charset="utf-8">
6-
<title>{{ page.title }}</title>
7-
<meta name="viewport" content="width=device-width, initial-scale=1">
8-
<meta name="keywords" content="Rust, Rust programming language, rustlang, rust-lang, Mozilla Rust">
9-
<meta name="description" content="A systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety.">
10-
<link rel="stylesheet" href="/css/bootstrap.css">
11-
<link rel="stylesheet" href="/css/style.css">
12-
</head>
1+
---
2+
layout: basic
3+
---
134

14-
<body class="container">
15-
<a href="https://github.com/rust-lang/rust">
16-
<img class="ribbon" style="display: none" src="/logos/forkme.png" alt="Fork me on GitHub" width="298" height="298">
17-
</a>
18-
19-
<header>
20-
21-
<ul class="row menu">
22-
<li class="col-xs-12 col-md-2">
23-
<a href="index.html">
24-
<img class="img-responsive" src="logos/rust-logo-blk.svg" onerror="this.src='logos/rust-logo-256x256-blk.png'" height="128" width="128" alt="Rust logo" />
25-
</a>
26-
</li>
27-
<li class="col-xs-4 col-md-2"><h2>Docs (1.5.0)</h2>
28-
<ul>
29-
<li><a href="https://doc.rust-lang.org/stable/book/">Book</a></li>
30-
<li><a href="https://doc.rust-lang.org/stable/reference.html">Reference</a></li>
31-
<li>
32-
<a href="https://doc.rust-lang.org/stable/std/">API docs</a></li>
33-
<li><a href="https://doc.rust-lang.org/stable/">All docs</a>
34-
</li>
35-
</ul>
36-
</li>
37-
<li class="col-xs-4 col-md-2"><h2>Docs (Nightly)</h2>
38-
<ul>
39-
<li><a href="https://doc.rust-lang.org/nightly/book/">Book</a></li>
40-
<li><a href="https://doc.rust-lang.org/nightly/reference.html">Reference</a></li>
41-
<li>
42-
<a href="https://doc.rust-lang.org/nightly/std/index.html">API docs</a></li>
43-
<li><a href="https://doc.rust-lang.org/nightly/index.html">All docs</a>
44-
</li>
45-
</ul>
46-
</li>
47-
<li class="col-xs-4 col-md-2"><h2>Resources</h2>
48-
<ul>
49-
<li>
50-
<a href="community.html">Community</a>
51-
</li>
52-
<li>
53-
<a href="legal.html">Legal</a>
54-
</li>
55-
<li>
56-
<a href="security.html">Security</a>
57-
</li>
58-
</ul>
59-
</li>
60-
</header>
61-
{{ content }}
62-
<script>
63-
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
64-
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
65-
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
66-
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
67-
68-
ga('create', 'UA-58390457-1', 'auto');
69-
ga('send', 'pageview');
70-
71-
</script>
72-
</body>
73-
</html>
5+
<div class="content">
6+
{{ content }}
7+
</div>

_layouts/faq.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
layout: default
3+
---
4+
5+
<link href='https://fonts.googleapis.com/css?family=Source+Serif+Pro:400,600' rel='stylesheet' type='text/css'>
6+
7+
<div class="faq">
8+
{{ content }}
9+
</div>
10+

community.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
22
layout: default
3-
title: Rust Community &middot; The Rust Programming Language
3+
title: The Rust Community &middot; The Rust Programming Language
44
---
55

6-
# Rust Community
6+
# The Rust Community
77

88
Rust is an amazing programming language, but its greatest strength
99
is its kind and inclusive community.
@@ -129,6 +129,7 @@ socialize with other people with a similar interest. Meetings are
129129
usually held monthly and very informal. Meetings are open to everyone.
130130

131131
There is a global [calendar][calendar] for keeping up with Rust events.
132+
Contact the [community team][community_team] to add your own.
132133

133134
[user_group]: ./user_groups.html
134135
[calendar]: https://www.google.com/calendar/[email protected]
@@ -179,12 +180,11 @@ help get you started.
179180
[community_team]: https://www.rust-lang.org/team.html#Community
180181
[mod_team]: https://www.rust-lang.org/team.html#Moderation
181182

183+
<a name="rust-development"></a>
182184
## Rust Development
183185

184186
Rust has had over [1,200 different contributors][authors], a number that grows
185-
every single week. We'd love for you to join that list! If you aren't sure what
186-
to work on or how to get started, take a look at our
187-
[how to contribute][contribute] page.
187+
every single week. [We'd love for you to join that list][contribute]!
188188

189189
As mentioned above, the [Rust Internals Forum][internals_forum] is dedicated to
190190
discussing the design and implementation of Rust. A lot of discussion also
@@ -203,7 +203,7 @@ team business, including the progression of proposals through the RFC and
203203
implementation process.
204204

205205
[authors]: https://github.com/rust-lang/rust/blob/master/AUTHORS.txt
206-
[contribute]: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md
206+
[contribute]: contribute.html
207207
[github]: https://github.com/rust-lang/rust
208208
[rfcs]: https://github.com/rust-lang/rfcs
209209
[team_reports]: https://github.com/rust-lang/subteams

contribute-bugs.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
---
2+
layout: default
3+
title: Contributing to Rust &mdash; finding, triaging and fixing issues &middot; The Rust Programming Language
4+
---
5+
6+
# Contributing to Rust &mdash; finding, triaging and fixing issues
7+
8+
The day-to-day maintenance of the project revolves around Rust's
9+
[issue tracker] and [pull requests][PR], and more help is always
10+
needed. The most basic way to get started contributing to Rust is to
11+
look for the [E-easy] or [E-mentor] labels. These are meant to be
12+
approachable for new Rust programmers.
13+
14+
On `E-mentor` issues an experienced Rust developer has volunteered in
15+
the comments to mentor you through solving the issue and [submitting
16+
the fix via GitHub pull request][pull]. Contact them about the issue,
17+
on the issue tracker by [@mentioning] their name in a comment, on IRC,
18+
or through email. Note that Rust developers get a lot of notifications
19+
and it is easy to miss some; don't hesitate to hunt them down by
20+
whatever means necessary!
21+
22+
Other projects in Rust maintain similar entry-level tasks, including
23+
the web browser [Servo], the HTTP library [hyper], the
24+
source-formatter [rustfmt], and the lint collection [clippy].
25+
26+
While Rust has an [extensive test suite][test] there is always more to
27+
test. The [E-needstest] label indicates issues that are thought to be
28+
fixed but don't have tests. Writing test cases is a great way to
29+
understand a new project and get started contributing.
30+
31+
Rust is always in need of people to [triage] issues: reproduce bugs,
32+
minimize test cases, apply labels, close resolved issues. Note that
33+
you'll need elevated GitHub permissions to apply labels, but this is
34+
easy to obtain for somebody with a bit of experience in the
35+
project. Ask a [team member][team].
36+
37+
Once you've found your way around the project and have created a few
38+
pull requests in a particular area, consider reviewing others' pull
39+
requests: good reviewership is a rare skill and always appreciated. No
40+
prior permission is needed &mdash; just start constructively and politely
41+
commenting on pull requests that interest you. If you want training
42+
on conducting good code reviews [read this guide][reviews].
43+
44+
<!--
45+
TODO: weekly triage email?
46+
TODO: @nrc says suggesting everybody review w/o training is bad
47+
-->
48+
49+
[@mentioning]: https://github.com/blog/821
50+
[E-easy]: https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AE-easy
51+
[E-mentor]: https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AE-easy+label%3AE-mentor
52+
[E-needstest]: https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AE-needstest
53+
[PR]: https://github.com/rust-lang/rust/pulls
54+
[Servo]: https://github.com/servo/servo
55+
[clippy]: https://github.com/Manishearth/rust-clippy
56+
[hyper]: https://github.com/hyperium/hyper
57+
[issue tracker]: https://github.com/rust-lang/rust/issues
58+
[pull]: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#pull-requests
59+
[reviews]: http://blog.originate.com/blog/2014/09/29/effective-code-reviews/
60+
[rustfmt]: https://github.com/nrc/rustfmt
61+
[team]: team.html
62+
[test]: https://github.com/rust-lang/rust-wiki-backup/blob/master/Note-testsuite.md
63+
[triage]: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#issue-triage

contribute-community.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
---
2+
layout: default
3+
title: Contributing to Rust &mdash; community building &middot; The Rust Programming Language
4+
---
5+
6+
# Contributing to Rust &mdash; community building
7+
8+
Help newbies, spread the word, meet interesting people. Make Rust the
9+
shining example of open source development that we all want it to be.
10+
11+
Keep an eye on the [#rust-beginners] channel. This is where we direct
12+
new Rust programmers to ask for help, and it is vital when they do
13+
that they receive prompt, accurate, and courteous responses. Likewise,
14+
[Stack Overflow], [users.rust-lang.org], and [/r/rust], are all forums
15+
where Rust programers commonly look for assistance. If you want
16+
training on answering programmers' questions [read this
17+
guide][helpful].
18+
19+
If you are already experienced in some area of the project, please
20+
look out for potential [E-easy] bugs. When you see an
21+
easy issue on the bug tracker that you know how to fix, write up a
22+
description of the fix and tag it with E-easy. Note that what is
23+
obvious to you is not obvious to a new Rust contributor, and its
24+
important to describe the problem and the solution clearly. It is
25+
thus also helpful to triage E-easy bugs for poor descrptions and
26+
improve them.
27+
28+
Experienced developers who are patient and communicate clearly should
29+
consider [mentoring new contributors][mentor]. Tag easy issues with
30+
[E-mentor] and mention in a comment that you will mentor. Expect people
31+
to contact you about the issue, and attempt to respond promptly.
32+
33+
Maintaining entry-level tasks is good not only for The Rust Project
34+
itself but all projects. If your project has a consistent supply of
35+
entry-level tasks you might institute such a program
36+
yourself. ***Curating entry-level tasks is one of the most effective
37+
methods of bringing new programmers into the project***. If you want
38+
training on mentoring new contributors [read this
39+
guide][mentor-guide].
40+
41+
Talk about what you are working on in the weekly "what's everyone
42+
working on this week" threads on [/r/rust] and [users.rust-lang.org],
43+
and indicate what you need help with. These are great starting points
44+
for collaboration.
45+
46+
Advocate Rust in your own local community. Rust [user groups] and [events]
47+
are a unique and exciting part of the Rust experience: there are so
48+
many, and they are everywhere! If you haven't been yet, go and enjoy
49+
new experiences. If there is nothing Rusty going on near you then
50+
consider organizing something. You can poll for interest and announce
51+
events on [/r/rust] or [users.rust-lang.org]. Contact the [community
52+
team] to put events on the calendar, and thus be announced on [This
53+
Week in Rust].
54+
55+
Remember as you are advocating Rust though to be considerate of
56+
others' views &mdash; not everybody is going to be receptive to Rust, and
57+
that's just fine.
58+
59+
Meet other Rust community builders in [#rust-community].
60+
61+
<!--
62+
Other ideas:
63+
TWIR, podcasts.
64+
65+
experience reports
66+
conf talks
67+
68+
Conduct training on Rust. (link to training material).
69+
-->
70+
71+
[#rust-beginners]: https://client00.chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust-beginners
72+
[#rust-community]: https://client00.chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust-community
73+
[/r/rust]: https://reddit.com/r/rust
74+
[E-easy]: https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AE-easy
75+
[E-mentor]: https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AE-easy+label%3AE-mentor
76+
[Stack Overflow]: http://stackoverflow.com/questions/tagged/rust
77+
[This Week in Rust]: http://www.this-week-in-rust.org
78+
[community team]: https://www.rust-lang.org/team.html#Community
79+
[events]: https://www.google.com/calendar/[email protected]
80+
[helpful]: http://blogs.msmvps.com/jonskeet/2009/02/17/answering-technical-questions-helpfully/
81+
[mentor]: https://users.rust-lang.org/t/mentoring-newcomers-to-the-rust-ecosystem/3088
82+
[mentor-guide]: http://manishearth.github.io/blog/2016/01/03/making-your-open-source-project-newcomer-friendly/
83+
[user groups]: user_groups.html
84+
[users.rust-lang.org]: https://users.rust-lang.org

0 commit comments

Comments
 (0)