Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit cca74a8

Browse files
tacaswellQuLogic
andcommitted
GOV/DOC: add section to docs on triaging and triage team
Co-authored-by: Elliott Sales de Andrade <[email protected]>
1 parent 5ab99ee commit cca74a8

File tree

2 files changed

+230
-0
lines changed

2 files changed

+230
-0
lines changed

doc/devel/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ The Matplotlib Developers' Guide
1717
:maxdepth: 2
1818

1919
contributing.rst
20+
triage.rst
2021
testing.rst
2122
documenting_mpl.rst
2223
add_new_projection.rst

doc/devel/triage.rst

Lines changed: 229 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,229 @@
1+
2+
.. _bug_triaging:
3+
4+
Bug triaging and issue curation
5+
===============================
6+
7+
The `issue tracker <https://github.com/matplotlib/matplotlib/issues>`_
8+
is important to communication in the project because it serves as the
9+
centralized location for making feature requests, reporting bugs,
10+
identifying major projects to work on, and discussing priorities. For
11+
this reason, it is important to curate the issue list, adding labels
12+
to issues and closing issues that are not necessary.
13+
14+
15+
Triaging issues does not require any particular expertise in the
16+
internals of Matplotlib, is extremely valuable to the project, and we
17+
welcome anyone to participate in issue triage! However, people who
18+
are not part of the Matplotlib organization do not have `permissions
19+
to change milestones, add labels, or close issue
20+
<https://docs.github.com/en/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization>`_.
21+
If you do not have enough GitHub permissions do something (e.g. add a
22+
label, close an issue), please leave a comment tagging
23+
``@matplotlib/triageteam`` with your recommendations!
24+
25+
Working on issues to improve them
26+
---------------------------------
27+
28+
Improving issues increases their chances of being successfully resolved.
29+
Guidelines on submitting good issues can be found :ref:`here
30+
<submitting-a-bug-report>`.
31+
A third party can give useful feedback or even add
32+
comments on the issue.
33+
The following actions are typically useful:
34+
35+
- documenting issues that are missing elements to reproduce the problem
36+
such as code samples
37+
38+
- suggesting better use of code formatting (e.g. triple back ticks in the
39+
markdown).
40+
41+
- suggesting to reformulate the title and description to make them more
42+
explicit about the problem to be solved
43+
44+
- linking to related issues or discussions while briefly describing
45+
how they are related, for instance "See also #xyz for a similar
46+
attempt at this" or "See also #xyz where the same thing was
47+
reported" provides context and helps the discussion
48+
49+
- verifying that the issue is reproducible
50+
51+
- classify the issue as a feature request, a long standing bug or a
52+
regression
53+
54+
.. topic:: Fruitful discussions
55+
56+
Online discussions may be harder than it seems at first glance, in
57+
particular given that a person new to open-source may have a very
58+
different understanding of the process than a seasoned maintainer.
59+
60+
Overall, it is useful to stay positive and assume good will. `The
61+
following article
62+
<http://gael-varoquaux.info/programming/technical-discussions-are-hard-a-few-tips.html>`_
63+
explores how to lead online discussions in the context of open source.
64+
65+
66+
Triage Team
67+
-----------
68+
69+
70+
If you would like to join the triage team:
71+
72+
1. Correctly triage 2-3 issues.
73+
2. Ask someone with on the `triage team
74+
<https://github.com/orgs/matplotlib/teams/triageteam>`_ (publicly
75+
or privately) to recommend you to the triage team . If you worked
76+
with someone on the issue triaged, they would be a good person to
77+
ask.
78+
3. Responsibly exercise you new power!
79+
80+
Anyone with commit or triage rights may also nominate a user to be
81+
invited to join the triage team.
82+
83+
84+
85+
Triaging operations for members of the core and triage teams
86+
------------------------------------------------------------
87+
88+
In addition to the above, members of the core team and the triage team
89+
can do the following important tasks:
90+
91+
- Update labels for issues and PRs: see the list of
92+
the `available github labels
93+
<https://github.com/matplotlib/matplotlib/labels>`_.
94+
95+
- Triage issues:
96+
97+
- **reproduce the issue**, if the posted code is a bug label the issue
98+
with "status: confirmed bug".
99+
100+
- **identify regressions**, determine if the reported bug used to
101+
work as expected in a recent version of Matplotlib and if so
102+
determine the last working version. Regression should be
103+
milestone for the next bug-fix release and may be labeled as
104+
"Release critical".
105+
106+
- **close usage questions** and politely point the reporter to use
107+
`discourse <https://discourse.matplotlib.org>`_ or Stack Overflow
108+
instead and label as "community support".
109+
110+
- **close duplicate issues**, after checking that they are
111+
indeed duplicate. Ideally, the original submitter moves the
112+
discussion to the older, duplicate issue
113+
114+
- **close issues that cannot be replicated**, after leaving time (at
115+
least a week) to add extra information
116+
117+
118+
119+
.. topic:: Closing issues: a tough call
120+
121+
When uncertain on whether an issue should be closed or not, it is
122+
best to strive for consensus with the original poster, and possibly
123+
to seek relevant expertise. However, when the issue is a usage
124+
question, or when it has been considered as unclear for many years it
125+
should be closed.
126+
127+
128+
A typical workflow for triaging issues
129+
--------------------------------------
130+
131+
The following workflow [1]_ is a good way to approach issue triaging:
132+
133+
#. Thank the reporter for opening an issue
134+
135+
The issue tracker is many people’s first interaction with the
136+
Matplotlib project itself, beyond just using the library. As such,
137+
we want it to be a welcoming, pleasant experience.
138+
139+
#. Is this a usage question? If so close it with a polite message.
140+
141+
#. Is the necessary information provided?
142+
143+
Check that the poster has filled in the issue template. If crucial
144+
information (the version of Python, the version of Matplotlib used,
145+
the OS, and the backend), is missing politely ask the original
146+
poster to provide the information.
147+
148+
#. Is the issue minimal and reproducible?
149+
150+
For bug reports, we ask that the reporter provide a minimal
151+
reproducible example. See `this useful post
152+
<https://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports>`_
153+
by Matthew Rocklin for a good explanation. If the example is not
154+
reproducible, or if it's clearly not minimal, feel free to ask the reporter
155+
if they can provide an example or simplify the provided one.
156+
Do acknowledge that writing minimal reproducible examples is hard work.
157+
If the reporter is struggling, you can try to write one yourself.
158+
159+
If a reproducible example is provided, but you see a simplification,
160+
add your simpler reproducible example.
161+
162+
If you can not reproduce the issue, please report that along with your
163+
OS, Python, and Matplotlib versions.
164+
165+
If we need more information from either this or the previous step
166+
please label the issue with "status: needs clarification".
167+
168+
#. Is this a regression?
169+
170+
While we strive for a bug-free library, regressions are the highest
171+
priority. If we have broken user-code that *used to* work, we should
172+
fix that in the next patch release!
173+
174+
Try to determine when the regression happened by running the
175+
reproduction code against older versions of Matplotlib. This can
176+
be done by released versions of Matplotlib (to get the version it
177+
last worked in) or by using `git bisect
178+
<https://git-scm.com/docs/git-bisect>`_ . to find first commit
179+
where it was broken.
180+
181+
182+
#. Is this a duplicate issue?
183+
184+
We have many open issues. If a new issue seems to be a duplicate,
185+
point to the original issue. If it is a clear duplicate, or consensus
186+
is that it is redundant, close it. Make sure to still thank the
187+
reporter, and encourage them to chime in on the original issue, and
188+
perhaps try to fix it.
189+
190+
If the new issue provides relevant information, such as a better or
191+
slightly different example, add it to the original issue as a comment
192+
or an edit to the original post.
193+
194+
Label the closed issue with "status: duplicate"
195+
196+
#. Make sure that the title accurately reflects the issue. If you have the
197+
necessary permissions edit it yourself if it's not clear.
198+
199+
#. Add the relevant labels, such as "Documentation" when the issue is
200+
about documentation, "Bug" if it is clearly a bug, "New feature" if it
201+
is a new feature request, ...
202+
203+
If the issue is clearly defined and the fix seems relatively
204+
straightforward, label the issue as “Good first issue” (and
205+
possibly a description of the fix or a hint as to where in the
206+
code base to look to get started).
207+
208+
An additional useful step can be to tag the corresponding module e.g.
209+
the "GUI/Qt" label when relevant.
210+
211+
212+
.. [1] Adapted from the pandas project `maintainers guide
213+
<https://dev.pandas.io/docs/development/maintaining.html>`_ and
214+
`the scikit-learn project
215+
<https://scikit-learn.org/dev/developers/bug_triaging.html>`_ .
216+
217+
218+
Working on PRs to help review
219+
------------------------------
220+
221+
Reviewing code is also encouraged. Contributors and users are welcome to
222+
participate to the review process following our :ref:`review guidelines
223+
<pr-guidelines>`.
224+
225+
Acknowledgments
226+
---------------
227+
228+
This page is lightly adapted from `the sckit-learn project
229+
<https://scikit-learn.org/dev/developers/bug_triaging.html>`_ .

0 commit comments

Comments
 (0)