Skip to content

Commit 4320f31

Browse files
authored
DOC: Update triage team nomination instructions (matplotlib#31089)
* DOC: Update triage team nomination instructions * DOC: More updates to triage triage doc * DOC: Try to fix linting issue in triage.rst * Address review comments * Update nomination instructions and categories * Add @ to staff groups * Add nomination steps and follow-up for objections * Lint * Add triager to discourse group
1 parent 442f469 commit 4320f31

1 file changed

Lines changed: 98 additions & 63 deletions

File tree

doc/devel/triage.rst

Lines changed: 98 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -30,35 +30,29 @@ are not part of the Matplotlib organization do not have `permissions
3030
to change milestones, add labels, or close issue
3131
<https://docs.github.com/en/organizations/managing-access-to-your-organizations-repositories/repository-permission-levels-for-an-organization>`_.
3232

33-
If you do not have enough GitHub permissions do something (e.g. add a
34-
label, close an issue), please leave a comment with your
35-
recommendations!
33+
If you do not have enough GitHub permissions to do something (e.g. add a
34+
label, close an issue), please leave a comment with your recommendations!
3635

3736
The following actions are typically useful:
3837

39-
- documenting issues that are missing elements to reproduce the problem
40-
such as code samples
41-
42-
- suggesting better use of code formatting (e.g. triple back ticks in the
43-
markdown).
44-
45-
- suggesting to reformulate the title and description to make them more
46-
explicit about the problem to be solved
47-
48-
- linking to related issues or discussions while briefly describing
38+
* documenting issues that are missing elements to reproduce the problem,
39+
such as code samples;
40+
* suggesting better use of code formatting (e.g. triple back ticks in the
41+
markdown);
42+
* suggesting to reformulate the title and description to make them more
43+
explicit about the problem to be solved;
44+
* linking to related issues or discussions while briefly describing
4945
how they are related, for instance "See also #xyz for a similar
5046
attempt at this" or "See also #xyz where the same thing was
51-
reported" provides context and helps the discussion
52-
53-
- verifying that the issue is reproducible
54-
55-
- classify the issue as a feature request, a long standing bug or a
56-
regression
47+
reported", which provides context and helps the discussion;
48+
* verifying that the issue is reproducible;
49+
* classifying the issue as a feature request, a long standing bug or a
50+
regression.
5751

5852
.. topic:: Fruitful discussions
5953

60-
Online discussions may be harder than it seems at first glance, in
61-
particular given that a person new to open-source may have a very
54+
Online discussions may be harder than they seem at first glance, in
55+
particular given that a person new to open source may have a very
6256
different understanding of the process than a seasoned maintainer.
6357

6458
Overall, it is useful to stay positive and assume good will. `The
@@ -73,31 +67,26 @@ Maintainers and triage team members
7367
In addition to the above, maintainers and the triage team can do the following
7468
important tasks:
7569

76-
- Update labels for issues and PRs: see the list of `available GitHub
70+
* Update labels for issues and PRs: see the list of `available GitHub
7771
labels <https://github.com/matplotlib/matplotlib/labels>`_.
72+
* Triage issues:
7873

79-
- Triage issues:
80-
81-
- **reproduce the issue**, if the posted code is a bug label the issue
82-
with "status: confirmed bug".
83-
84-
- **identify regressions**, determine if the reported bug used to
74+
* **reproduce the issue**, and if the posted code is a bug label the issue
75+
with `status: confirmed bug <https://github.com/matplotlib/matplotlib/issues?q=sort%3Aupdated-desc+state%3Aopen+label%3A%22status%3A+confirmed+bug%22>`_.
76+
* **identify regressions**, determine if the reported bug used to
8577
work as expected in a recent version of Matplotlib and if so
8678
determine the last working version. Regressions should be
8779
milestoned for the next bug-fix release and may be labeled as
8880
"Release critical".
89-
90-
- **close usage questions** and politely point the reporter to use
91-
`discourse <https://discourse.matplotlib.org>`_ or Stack Overflow
92-
instead and label as "community support".
93-
94-
- **close duplicate issues**, after checking that they are
81+
* **close duplicate issues**, after checking that they are
9582
indeed duplicate. Ideally, the original submitter moves the
96-
discussion to the older, duplicate issue
97-
98-
- **close issues that cannot be replicated**, after leaving time (at
99-
least a week) to add extra information
100-
83+
discussion to the older, duplicate issue.
84+
* **close issues that cannot be replicated**, after leaving time (at
85+
least a week) to add extra information.
86+
* **invite contributors to engage with the community** if the issue requires
87+
more information or discussion. These discussions can take place in the
88+
`weekly community meetings <https://scientific-python.org/calendars>`__, or
89+
on `discourse <https://discourse.matplotlib.org>`__.
10190

10291
.. topic:: Closing issues: a tough call
10392

@@ -107,13 +96,6 @@ important tasks:
10796
question or has been considered as unclear for many years, then it
10897
should be closed.
10998

110-
Prepare PRs for review
111-
======================
112-
113-
Reviewing code is also encouraged. Contributors and users are welcome to
114-
participate to the review process following our :ref:`review guidelines
115-
<pr-guidelines>`.
116-
11799
.. _triage_workflow:
118100

119101
Triage workflow
@@ -127,13 +109,19 @@ The following workflow is a good way to approach issue triaging:
127109
Matplotlib project itself, beyond just using the library. As such,
128110
we want it to be a welcoming, pleasant experience.
129111

130-
#. Is this a usage question? If so close it with a polite message.
112+
#. Is this a usage question?
113+
114+
If so, close it with a polite message, point the reporter to use
115+
`discourse <https://discourse.matplotlib.org>`__ or Stack Overflow instead
116+
and use the
117+
`community support <https://github.com/matplotlib/matplotlib/issues?q=sort%3Aupdated-desc+state%3Aopen+label%3A%22Community+support%22>`__
118+
label, if you have the necessary permissions.
131119

132120
#. Is the necessary information provided?
133121

134122
Check that the poster has filled in the issue template. If crucial
135123
information (the version of Python, the version of Matplotlib used,
136-
the OS, and the backend), is missing politely ask the original
124+
the OS, and the backend) is missing, politely ask the original
137125
poster to provide the information.
138126

139127
#. Is the issue minimal and reproducible?
@@ -154,7 +142,7 @@ The following workflow is a good way to approach issue triaging:
154142
OS, Python, and Matplotlib versions.
155143

156144
If we need more information from either this or the previous step
157-
please label the issue with "status: needs clarification".
145+
please label the issue with `status: needs clarification <https://github.com/matplotlib/matplotlib/issues?q=sort%3Aupdated-desc+state%3Aopen+label%3A%22status%3A+needs+clarification%22>`_.
158146

159147
#. Is this a regression?
160148

@@ -169,7 +157,6 @@ The following workflow is a good way to approach issue triaging:
169157
<https://git-scm.com/docs/git-bisect>`_ to find the first commit
170158
where it was broken.
171159

172-
173160
#. Is this a duplicate issue?
174161

175162
We have many open issues. If a new issue seems to be a duplicate,
@@ -182,37 +169,85 @@ The following workflow is a good way to approach issue triaging:
182169
slightly different example, add it to the original issue as a comment
183170
or an edit to the original post.
184171

185-
Label the closed issue with "status: duplicate"
172+
Label the closed issue with `status: duplicate <https://github.com/matplotlib/matplotlib/issues?q=sort%3Aupdated-desc+state%3Aopen+label%3A%22status%3A+duplicate%22>`__.
186173

187174
#. Make sure that the title accurately reflects the issue. If you have the
188175
necessary permissions edit it yourself if it's not clear.
189176

190-
#. Add the relevant labels, such as "Documentation" when the issue is
191-
about documentation, "Bug" if it is clearly a bug, "New feature" if it
192-
is a new feature request, ...
177+
#. Add the relevant labels, such as `Documentation <https://github.com/matplotlib/matplotlib/labels?q=documentation>`__
178+
when the issue is about documentation, `status: confirmed bug <https://github.com/matplotlib/matplotlib/issues?q=sort%3Aupdated-desc+state%3Aopen+label%3A%22status%3A+confirmed+bug%22>`__
179+
if it is clearly a bug, `New feature <https://github.com/matplotlib/matplotlib/issues?q=sort%3Aupdated-desc+state%3Aopen+label%3A%22New+feature%22>`__
180+
if it is a new feature request, etc.
181+
182+
An additional useful step can be to tag with the relevant "topic: ..." label,
183+
e.g. "topic: widgets/UI" or "topic: animation".
184+
185+
Take some time to familiarize yourself with the available labels and their
186+
meaning, and try to use them consistently.
187+
188+
.. topic:: Good first issues
193189

194-
If the issue is clearly defined and the fix seems relatively
195-
straightforward, label the issue as “Good first issue” (and
196-
possibly a description of the fix or a hint as to where in the
197-
code base to look to get started).
190+
If the issue is clearly defined, the fix seems relatively straightforward,
191+
and there is consensus on what the solution is among maintainers, label the
192+
issue as
193+
`Good first issue <https://github.com/matplotlib/matplotlib/issues?q=sort%3Aupdated-desc%20state%3Aopen%20label%3A%22Good%20first%20issue%22>`_
194+
(and possibly a description of the fix or a hint as to where in the
195+
code base to look to get started).
198196

199-
An additional useful step can be to tag the corresponding module e.g.
200-
the "GUI/Qt" label when relevant.
197+
Note that good first issues are intended to onboard newcomers with a genuine
198+
interest in improving Matplotlib, in the hopes that they will continue to
199+
participate in our development community; therefore, the use of AI tools to
200+
resolve these issues is not appropriate.
201+
202+
Preparing PRs for review
203+
========================
204+
205+
Doing initial reviews of contributions is also encouraged. Contributors and
206+
users are welcome to participate to the review process following our
207+
:ref:`review guidelines <pr-guidelines>`. In particular, if you identify a PR
208+
that needs maintainer attention, you can add the
209+
`status: needs review <https://github.com/matplotlib/matplotlib/issues?q=sort%3Aupdated-desc+state%3Aopen+label%3A%22status%3A+needs+review%22>`_
210+
label to it, or add it to the next community meeting agenda for discussion. You
211+
can:
212+
213+
* Suggest fixes to CI check failures, such as failing tests or documentation
214+
builds;
215+
* Help with :ref:`rebasing instructions <rewriting-commit-history>`;
216+
* Suggest improvements to the PR description, including filling out the AI
217+
Disclosure section if it is missing.
218+
219+
AI-generated contributions
220+
--------------------------
221+
222+
Make sure PRs comply with our :ref:`AI policy <generative_ai>`. If you identify
223+
a PR that does not comply with the policy, ask the contributor to clarify the AI
224+
tools used and the contribution of the author, and to update the PR description
225+
accordingly to comply with our AI policy.
201226

202227
.. _triage_team:
203228

204229
Triage team
205230
===========
206231

207-
208232
If you would like to join the triage team:
209233

210-
1. Correctly triage 2-3 issues.
234+
1. Correctly triage 2-3 issues or review 2-3 pull requests, as described above.
211235
2. Ask someone on in the Matplotlib organization (publicly or privately) to
212236
recommend you to the triage team (look for "Member" on the top-right of
213237
comments on GitHub). If you worked with someone on the issues triaged, they
214238
would be a good person to ask.
215239
3. Responsibly exercise your new power!
216240

217241
Anyone with commit or triage rights may nominate a user to be invited to join
218-
the triage team by emailing matplotlib-steering-council@numfocus.org .
242+
the triage team by nominating them through the private "Triage team nominations"
243+
category on `Discourse <https://discourse.matplotlib.org>`__ (Note that only
244+
``@maintainers`` and ``@triage`` members can see this category). The nomination
245+
will then be confirmed by the Steering Council and the user, if accepted, will
246+
be added to the triage team on GitHub.
247+
248+
If no objections are raised within one week of the nomination, a member with the ``owner`` role on GitHub will:
249+
1. Send an invitation email to the nominee following a template.
250+
2. Once the nominee responds affirmatively, they will add the nominee to the Triage group on GitHub, and to the ``@triage`` group on Discourse.
251+
3. Close the Discourse thread with a confirmation that the nomination was accepted (or turned down).
252+
253+
If objections are raised, no action will be taken and the nomination can be revisited in the future.

0 commit comments

Comments
 (0)