Skip to content

Commit bcb8906

Browse files
Merge branch 'master' into async-github-repo-syncing
2 parents 7ef2445 + 69bb655 commit bcb8906

File tree

12 files changed

+336
-224
lines changed

12 files changed

+336
-224
lines changed

docs/contribute.rst

Lines changed: 199 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,213 @@
33
Contributing to Read the Docs
44
=============================
55

6-
Read the Docs follows the standard Contribution Guidelines set forth at `contribution-guide.org`_.
7-
Please read that site and follow the instructions to make sure your patches will be accepted.
6+
You are here to help on Read the Docs? Awesome, feel welcome and read the
7+
following sections in order to know what and how to work on something. If you
8+
get stuck at any point, feel free to get in touch in our IRC channel
9+
`#readthedocs`_ on Freenode or create a `ticket on GitHub`_.
810

9-
.. _contribution-guide.org: http://www.contribution-guide.org/#submitting-bugs
11+
.. _#readthedocs: irc://irc.freenode.net/readthedocs
12+
.. _ticket on GitHub: https://github.com/rtfd/readthedocs.org/issues
13+
14+
Contributing to development
15+
---------------------------
1016

11-
Tickets
12-
-------
17+
If you want to deep dive and help out with development on Read the Docs, then
18+
first get the project installed locally according to the
19+
:ref:`Installation Guide <installing-read-the-docs>`. After that is done we
20+
suggest you have a look at tickets in our issue tracker that are labelled `Good
21+
First Bug`_. These are meant to be a great way to get a smooth start and
22+
won't put you in front of the most complex parts of the system.
1323

14-
If you are just getting started with the project,
15-
we have tickets labeled `Good First Bug`_.
16-
This is a great way to get started.
24+
If you are up to more challenging tasks with a bigger scope, then there are a
25+
set of tickets with a `Feature Overview`_ tag. These tickets have a general
26+
overview and description of the work required to finish. If you want to start
27+
somewhere, this would be a good place to start. That said, these aren't
28+
necessarily the easiest tickets. They are simply things that are explained. If
29+
you still didn't find something to work on, search for the `Sprintable`_
30+
label. Those tickets are meant to be standalone and can be worked on ad-hoc.
1731

18-
If you want to help with a bigger feature,
19-
there are a set of tickets with a `Feature Overview`_ tag.
20-
These tickets have a general overview and description of the work required to finish.
21-
If you want to start somewhere,
22-
this would be a good place to start.
23-
That said,
24-
these aren't necessarily the easiest tickets.
25-
They are simply things that are explained.
32+
When contributing code, then please follow the standard Contribution
33+
Guidelines set forth at `contribution-guide.org`_.
2634

2735
.. _Feature Overview: https://github.com/rtfd/readthedocs.org/issues?direction=desc&labels=Feature+Overview&page=1&sort=updated&state=open
2836
.. _Good First Bug: https://github.com/rtfd/readthedocs.org/issues?q=is%3Aopen+is%3Aissue+label%3A%22Good+First+Bug%22
37+
.. _Sprintable: https://github.com/rtfd/readthedocs.org/issues?q=is%3Aopen+is%3Aissue+label%3ASprintable
38+
.. _contribution-guide.org: http://www.contribution-guide.org/#submitting-bugs
39+
40+
Triaging tickets
41+
----------------
42+
43+
Here is a brief explanation on how we triage incoming tickets to get a better
44+
sense of what needs to be done on what end.
45+
46+
Initial triage
47+
~~~~~~~~~~~~~~
48+
49+
When sitting down to do some triaging work, we start with the `list of
50+
untriaged tickets`_. We consider all tickets that do not have a label as
51+
untriaged. The first step is to categorize the ticket into one of the
52+
following categories and either close the ticket or assign an appropriate
53+
label. The reported issue …
54+
55+
… is not valid
56+
If you think the ticket is invalid comment why you think it is invalid,
57+
then close the ticket. Tickets might be invalid if they were already fixed
58+
in the past or it was decided that the proposed feature will not be
59+
implemented because it does not conform with the overall goal of Read the
60+
Docs. Also if you happen to know that the problem was already reported,
61+
label the ticket with **Status: duplicate**, reference the other ticket
62+
that is already addressing the problem and close the duplicate.
63+
64+
Examples:
65+
66+
- *Builds fail when using matplotlib*:
67+
If the described issue was already fixed, then explain and instruct to
68+
re-trigger the build.
69+
- *Provide way to upload arbitrary HTML files*:
70+
It was already decided that Read the Docs is not a dull hosting platform
71+
for HTML. So explain this and close the ticket.
72+
73+
.. _triage-not-enough-information:
74+
75+
… does not provide enough information
76+
Add the label **Needed: more information** if the reported issue does not
77+
contain enough information to decide if it is valid or not and ask on the
78+
ticket for the required information to go forward. We will re-triage all
79+
tickets that have the label **Needed: more information** assigned. If the
80+
original reporter left new information we can try to re-categorize the
81+
ticket. If the reporter did not come back to provide more required
82+
information after a long enough time, we will close the ticket (this will be
83+
roughly about two weeks).
84+
85+
Examples:
86+
87+
- *My builds stopped working. Please help!*
88+
Ask for a link to the build log and for which project is affected.
89+
90+
… is a valid enhancement proposal
91+
If the ticket contains an enhancement proposal that aligns with the goals
92+
of Read the Docs, then add the label **Enhancement**. If the proposal
93+
seems valid but requires further discussion between core contributors
94+
because there might be different possibilities on how to implement the
95+
enhancement, then also add the label **Needed: design decision**.
96+
97+
Examples:
98+
99+
- *Improve documentation about MKdocs integration*
100+
- *Provide better integration with service XYZ*
101+
- *Refactor module X for better readability*
102+
- *Achieve world domination* (also needs the label **Needed: design
103+
decision**)
104+
105+
… is a valid problem within the code base:
106+
If it's a valid bug, then add the label **Bug**. Try to reference related
107+
issues if you come across any.
108+
109+
Examples:
110+
111+
- *Builds fail if conf.py contains non-ascii letters*
112+
113+
… is a currently valid problem with the infrastructure:
114+
Users might report about web server downtimes or that builds are not
115+
triggered. If the ticket needs investigation on the servers, then add the
116+
label **Operations**.
117+
118+
Examples:
119+
120+
- *Builds are not starting*
121+
122+
.. _triage-support-tickets:
123+
124+
… is a question and needs answering:
125+
If the ticket contains a question about the Read the Docs platform or the
126+
code, then add the label **Support**.
127+
128+
Examples:
129+
130+
- *My account was set inactive. Why?*
131+
- *How to use C modules with Sphinx autodoc?*
132+
- *Why are my builds failing?*
133+
134+
… requires a one-time action on the server:
135+
Tasks that require a one time action on the server should be assigned the
136+
two labels **Support** and **Operations**.
137+
138+
Examples:
139+
140+
- *Please change my username*
141+
- *Please set me as owner of this abondand project*
142+
143+
After we finished the initial triaging of new tickets, no ticket should be left
144+
without a label.
145+
146+
.. _list of untriaged tickets: https://github.com/rtfd/readthedocs.org/issues?q=is:issue+is:open+no:label
147+
148+
Additional labels for categorization
149+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
150+
151+
Additionally to the labels already involved in the section above, we have a
152+
few more at hand to further categorize issues.
153+
154+
*High Priority*
155+
If the issue is urgent, assign this label. In the best case also go forward to
156+
resolve the ticket yourself as soon as possible.
157+
158+
*Community Effort*
159+
There are many valuable ideas in the issue tracker for future enhancements
160+
of Read the Docs. Unfortunately to many for the core developers to handle
161+
all of them. Therefore we assign the *Community Effort* label on all the
162+
issues that we see as valid for the project but that we currently do not
163+
have the resources to work on. We encourage community members to work
164+
on these tickets and to submit a pull request.
165+
166+
*Good First Bug*
167+
This label marks tickets that are easy to get started with. The ticket
168+
should be ideal for beginners to dive into the code base. Better is if the
169+
fix for the issue only involves touching one part of the code.
170+
171+
*Sprintable*
172+
Sprintable are all tickets that have the right amount of scope to be
173+
handled during a sprint. They are very focused and encapsulated.
174+
175+
*Feature Overview*
176+
If a feature is too big to be tackled in one ticket and should be split
177+
up, then we have a feature overview ticket explaining the overarching
178+
idea. Those tickets related to one feature should also be grouped by a
179+
`milestone`_.
180+
181+
.. _milestone: https://github.com/rtfd/readthedocs.org/milestones
182+
183+
For a full list of available labels and their meanings, see
184+
:ref:`issue-label-overview`.
185+
186+
Helpful links for triaging
187+
~~~~~~~~~~~~~~~~~~~~~~~~~~
188+
189+
Here is a list of links for contributors that look for work:
190+
191+
- `Untriaged tickets
192+
<https://github.com/rtfd/readthedocs.org/issues?q=is:issue+is:open+no:label>`_:
193+
Go and triage them!
194+
- `Tickets labelled with Needed: more information
195+
<https://github.com/rtfd/readthedocs.org/issues?utf8=✓&q=is:open+is:issue+label:"Needed:+more+information">`_:
196+
Come back to these tickets once in a while and close those that did not get
197+
any new information from the reporter. If new information is available, go
198+
and re-triage the ticket.
199+
- `Tickets labelled with Operations
200+
<https://github.com/rtfd/readthedocs.org/issues?q=is:open+is:issue+label:Operations>`_:
201+
These tickets are for contributors who have access to the servers.
202+
- `Tickets labelled with Support
203+
<https://github.com/rtfd/readthedocs.org/issues?q=is:open+is:issue+label:Support>`_:
204+
Experienced contributors or community members with a broad knowledge about
205+
the project should handle those.
206+
- `Tickets labelled with Needed: design decision
207+
<https://github.com/rtfd/readthedocs.org/issues?q=is:open+is:issue+label:"Needed:+design+decision">`_:
208+
Project leaders must take actions on these tickets. Otherwise no other
209+
contributor can go forward on them.
29210

30-
Translations
31-
------------
211+
Helping on translations
212+
-----------------------
32213

33214
If you wish to contribute translations, please do so on `Transifex`_.
34215

docs/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ Information about development is also available:
8181
symlinks
8282
settings
8383
i18n
84+
issue-labels
8485
api
8586

8687
.. _business-docs:

docs/issue-labels.rst

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
.. _issue-label-overview:
2+
3+
Overview of issue labels
4+
========================
5+
6+
Here is a full list of labels that we use in the `GitHub issue tracker`_ and
7+
what they stand for.
8+
9+
.. _GitHub issue tracker: https://github.com/rtfd/readthedocs.org/issues
10+
11+
*Bug*
12+
An issue describing unexpected or malicious behaviour of the
13+
readthedocs.org software.
14+
15+
*Community Effort*
16+
Tickets with this label are valid issues that the core team thinks are
17+
worth to fix or implement in the future. However the core team's resources
18+
are too scarce to address these issues. Tickets marked with this label
19+
are issues that the core team will **not** work on, but contributions
20+
from the community are very welcome.
21+
22+
*Design*
23+
Issues related to the UI of the readthedocs.org website.
24+
25+
*Enhancement*
26+
Feature requests and ideas about how to make readthedocs.org better in
27+
general will have this label.
28+
29+
*Feature Overview*
30+
Features that are too big to be tackled in one ticket are split up into
31+
multiple tickets. A feature overview ticket is then explaining the overarching
32+
idea. See the milestone of the feature overview ticket for all related
33+
tickets.
34+
35+
*Good First Bug*
36+
This label marks tickets that are easy to get started with. The ticket
37+
should be ideal for beginners to dive into the code base.
38+
39+
*High Priority*
40+
Tickets with this label should be resolved as quickly as possible.
41+
42+
*Mkdocs*
43+
Tickets that are related to the Mkdocs builder.
44+
45+
*Needed: design decision*
46+
Tickets that need a design decision are blocked for development until a
47+
project leader clarifies the way in which the issue should be approached.
48+
49+
*Needed: documentation*
50+
If an issue involves creating or refining documentation, this label will be
51+
assigned.
52+
53+
*Needed: more information*
54+
This label indicates that the issue has not enough information in order to
55+
decide on how to go forward. See the documentation about our :ref:`triage
56+
process <triage-not-enough-information>` for more information.
57+
58+
*Needed: patch*
59+
This label indicates that a patch is required in order to resolve the
60+
ticket. A fix should be proposed via a pull request on GitHub.
61+
62+
*Needed: tests*
63+
This label indicates that a better test coverage is required to resolve
64+
the ticket. New tests should be proposed via a pull request on GitHub.
65+
66+
*Operations*
67+
Tickets that require changes in the server infrastructure.
68+
69+
*PR: ready for review*
70+
Pull Requests that are considered complete. A review by at least one core
71+
developer is required prior to merging it.
72+
73+
*PR: work in progress*
74+
Pull Requests that are not complete yet. A final review is not possible
75+
yet, but every Pull Request is open for discussion.
76+
77+
*Sprintable*
78+
Sprintable are all tickets that have the right amount of scope to be
79+
handled during a sprint. They are very focused and encapsulated.
80+
81+
*Status: blocked*
82+
The ticket cannot be resolved until some other ticket has been closed.
83+
See the ticket's log for which ticket is blocking this ticket.
84+
85+
*Status: duplicate*
86+
See the ticket's log to find the original ticket that this one is a
87+
duplicate of.
88+
89+
*Status: invalid*
90+
A ticket is invalid if the reported issue cannot be reproduced.
91+
92+
*Status: rejected*
93+
A ticket gets rejected if the proposed enhancement is not in line with the
94+
overall goals of readthedocs.org.
95+
96+
*Support*
97+
Questions that needs answering but do not require code changes or issues
98+
that only require a one time action on the server will have this label.
99+
See the documentation about our :ref:`triage process
100+
<triage-support-tickets>` for more information.
101+
102+
103+
.. include:: _includes/issue-labels.rst

gulpfile.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ gulp.task('build', function (done) {
127127
}))
128128
.pipe(es.wait(function (err, body) {
129129
gulp_util.log('Collecting static files');
130-
run('django-admin.py collectstatic --noinput')
130+
run('readthedocs/manage.py collectstatic --noinput')
131131
.exec('', function (err) { done(err); });
132132
}));
133133
});
@@ -150,7 +150,7 @@ gulp.task('dev', function (done) {
150150
build_app_sources(application, false)
151151
.pipe(es.wait(function (err, body) {
152152
gulp_util.log('Collecting static files');
153-
run('./manage.py collectstatic --noinput').exec('');
153+
run('readthedocs/manage.py collectstatic --noinput').exec('');
154154
}));
155155
});
156156
}))

0 commit comments

Comments
 (0)