Skip to content

Commit 618e625

Browse files
DOC on issue triaging process (scikit-learn#17907)
Co-authored-by: Nicolas Hug <[email protected]>
1 parent 1ac9d68 commit 618e625

File tree

9 files changed

+194
-11
lines changed

9 files changed

+194
-11
lines changed

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,11 @@
11
blank_issues_enabled: false
2+
contact_links:
3+
- name: Stack overflow
4+
url: https://stackoverflow.com/questions/tagged/scikit-learn
5+
about: Please ask and answer usage questions on stackoverflow
6+
- name: Mailing list
7+
url: https://mail.python.org/mailman/listinfo/scikit-learn
8+
about: General discussions and announcements on the mailing list
9+
- name: Gitter
10+
url: https://gitter.im/scikit-learn/scikit-learn
11+
about: Users and developers can sometimes be found on the gitter channel

.github/ISSUE_TEMPLATE/usage_question.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: Usage question
3-
about: If you have a usage question
3+
about: If you have a usage question please use another channel
44
title: ''
55
labels: Question
66
assignees: ''
@@ -15,6 +15,12 @@ assignees: ''
1515
- **For more information, see User Questions: http://scikit-learn.org/stable/support.html#user-question**
1616
1717
The issue tracker is used only to report issues and feature requests. For
18-
questions, please use either of the above platforms. Most question issues are
19-
closed without an answer on this issue tracker. Thanks for your understanding.
18+
questions, please use either of the above platforms. **Issues that are
19+
usage questions are closed without an answer.**
20+
Indeed, this issue tracker is a tool used for the development of
21+
scikit-learn. The additional activity created by usage questions impedes
22+
this development.
23+
24+
Thank you for your understanding.
25+
2026
-->

doc/about.rst

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,16 @@ in the FAQ.
4040

4141
Triage Team
4242
-----------
43-
The following people are active contributors who also help with triaging
44-
issues, PRs, and general maintenance:
43+
44+
The following people are active contributors who also help with
45+
:ref:`triaging issues <bug_triaging>`, PRs, and general
46+
maintenance:
4547

4648
.. include:: triage_team.rst
4749

4850
Emeritus Core Developers
4951
------------------------
52+
5053
The following people have been active contributors in the past, but are no
5154
longer active in the project:
5255

doc/developers/bug_triaging.rst

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
.. _bug_triaging:
2+
3+
Bug triaging and issue curation
4+
================================
5+
6+
The `issue tracker <https://github.com/scikit-learn/scikit-learn/issues>`_
7+
is important to the communication in the project: it helps
8+
developers identify major projects to work on, as well as to discuss
9+
priorities. For this reason, it is important to curate it, adding labels
10+
to issues and closing issues that are not necessary.
11+
12+
Working on issues to improve them
13+
--------------------------------------
14+
15+
Improving issues increases their chances of being successfully resolved.
16+
Guidelines on submitting good issues can be found :ref:`here
17+
<filing_bugs>`. A third party can give useful feedback or even add
18+
comments on the issue, while core-developpers or members of the triage
19+
team can edit the issue description and title.
20+
21+
The following actions are typically useful:
22+
23+
- documenting issues that are missing elements to reproduce the problem
24+
such as code samples
25+
26+
- correcting incorrect use of code formatting
27+
28+
- making sure that the title and description are explicit about the
29+
problem to be solved
30+
31+
- linking to related issues or discussions while briefly describing how
32+
they are related, for instance "See also #xyz for a similar attempt
33+
at this" or "See also #xyz where the same thing happened in
34+
SomeEstimator" provides context and helps the discussion.
35+
36+
.. topic:: Fruitful discussions
37+
38+
Online discussions may be harder than it seems at first glance, in
39+
particular given that a person new to open-source may have a very
40+
different understanding of the process than a seasonned maintainer.
41+
42+
Overall, it is useful to stay positive and assume good will. `The
43+
following article
44+
<http://gael-varoquaux.info/programming/technical-discussions-are-hard-a-few-tips.html>`_
45+
explores how to lead online discussions in the context of open source.
46+
47+
Triaging operations for members of the core and triage teams
48+
-------------------------------------------------------------
49+
50+
In addition to the above, members of the core team and the triage team
51+
can do the following important tasks:
52+
53+
- Update labels for issues and PRs
54+
55+
- Follow up on stalled PRs, to see if they must be relabeled as
56+
stalled and needing help (this is typically very important in the context
57+
of sprints, where the risk is to create many unfinished PRs)
58+
59+
- Triage issues:
60+
61+
- **close usage questions** and politely point the reporter to use
62+
Stack Overflow instead.
63+
64+
- **close duplicate issues**, but only after checking that they are
65+
indeed duplicate. Ideally, the original submitter moves the
66+
discussion to the older, duplicate issue
67+
68+
- **close issues that cannot be replicated**, after leaving time (at
69+
least a week) to add extra information
70+
71+
:ref:`Saved replies <saved_replies>` are useful to gain time and yet be
72+
welcoming and polite when triaging.
73+
74+
75+
.. topic:: Closing issues: a tough call
76+
77+
When uncertain on whether an issue should be closed or not, it is
78+
best to strive for consensus with the original poster, and possibly
79+
to seek relevant expertise. However, when the issue is a usage
80+
question, or when it has been considered as unclear for many years it
81+
should be closed.
82+
83+
A typical workflow for triaging issues
84+
----------------------------------------
85+
86+
The following workflow [*]_ is a good way to approach issue triaging:
87+
88+
1. Thank the reporter for opening an issue
89+
90+
The issue tracker is many people’s first interaction with the
91+
scikit-learn project itself, beyond just using the library. As such,
92+
we want it to be a welcoming, pleasant experience.
93+
94+
2. Is this a usage question? If so close it with a polite message
95+
(:ref:`here is an example <saved_replies>`).
96+
97+
3. Is the necessary information provided?
98+
99+
If crucial information (like the version of scikit-learn used), is
100+
missing feel free to ask for that and label the issue with "Needs
101+
info".
102+
103+
4. Is this a duplicate issue?
104+
105+
We have many open issues. If a new issue seems to be a duplicate,
106+
point to the original issue. If it is a clear duplicate, or consensus
107+
is that it is redundant, close it. Make sure to still thank the
108+
reporter, and encourage them to chime in on the original issue, and
109+
perhaps try to fix it.
110+
111+
If the new issue provides relevant information, such as a better or
112+
slightly different example, add it to the original issue as a comment
113+
or an edit to the original post.
114+
115+
116+
5. Make sure that the title accurately reflects the issue. Edit it
117+
yourself if it's not clear.
118+
119+
6. Is the issue minimal and reproducible?
120+
121+
For bug reports, we ask that the reporter provide a minimal
122+
reproducible example. See
123+
https://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports
124+
for a good explanation. If the example is not reproducible, or if
125+
it's clearly not minimal, feel free to ask the reporter if they can
126+
provide and example or simplify the provided one. Do acknowledge that
127+
writing minimal reproducible examples is hard work. If the reporter
128+
is struggling, you can try to write one yourself.
129+
130+
If a reproducible example is provided, but you see a simplification,
131+
edit the original post with your simpler reproducible example.
132+
133+
4. If a reproducible example can't be provided, add the “Bug: triage”
134+
label.
135+
136+
5. Add the relevant labels, such as "Documentation" when the issue is
137+
about documentation, "Bug" if it is clearly a bug, "Enhancement" if it
138+
is an enhancement request, ...
139+
140+
If the issue is clearly defined and the fix seems relatively
141+
straightforward, label the issue as “Good first issue”.
142+
143+
An additional useful step can be to tag the corresponding module e.g.
144+
`sklearn.linear_models` when relevant.
145+
146+
.. [*] Adapted from the pandas project https://dev.pandas.io/docs/development/maintaining.html

doc/developers/contributing.rst

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,11 @@ find a typo in the documentation, or have made improvements, do not hesitate to
5555
send an email to the mailing list or preferably submit a GitHub pull request.
5656
Full documentation can be found under the doc/ directory.
5757

58-
But there are many other ways to help. In particular answering queries on the
59-
`issue tracker <https://github.com/scikit-learn/scikit-learn/issues>`_,
60-
investigating bugs, and :ref:`reviewing other developers' pull requests
61-
<code_review>` are very valuable contributions that decrease the burden on the
62-
project maintainers.
58+
But there are many other ways to help. In particular helping to
59+
:ref:`improve, triage, and investigate issues <bug_triaging>` and
60+
:ref:`reviewing other developers' pull requests <code_review>` are very
61+
valuable contributions that decrease the burden on the project
62+
maintainers.
6363

6464
Another way to contribute is to report issues you're facing, and give a "thumbs
6565
up" on issues that others reported and that are relevant to you. It also helps
@@ -173,6 +173,9 @@ feedback:
173173
<https://help.github.com/articles/creating-and-highlighting-code-blocks>`_
174174
for more details.
175175

176+
If you want to help curate issues, read :ref:`the following
177+
<bug_triaging>`.
178+
176179
Contributing code
177180
=================
178181

doc/developers/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,6 @@ Developer's Guide
1919
utilities
2020
performance
2121
advanced_installation
22+
bug_triaging
2223
maintainer
2324
plotting

doc/developers/tips.rst

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,10 @@ replies <https://github.com/settings/replies/>`_ for reviewing:
110110
Issue: Usage questions
111111
::
112112

113-
You're asking a usage question. The issue tracker is mainly for bugs and new features. For usage questions, it is recommended to try [Stack Overflow](https://stackoverflow.com/questions/tagged/scikit-learn) or [the Mailing List](https://mail.python.org/mailman/listinfo/scikit-learn).
113+
You are asking a usage question. The issue tracker is for bugs and new features. For usage questions, it is recommended to try [Stack Overflow](https://stackoverflow.com/questions/tagged/scikit-learn) or [the Mailing List](https://mail.python.org/mailman/listinfo/scikit-learn).
114+
115+
Unfortunately, we need to close this issue as this issue tracker is a communication tool used for the development of scikit-learn. The additional activity created by usage questions crowds it too much and impedes this development. The conversation can continue here, however there is no guarantee that is will receive attention from core developers.
116+
114117

115118
Issue: You're welcome to update the docs
116119
::

doc/governance.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,19 @@ Roles And Responsibilities
2222

2323
Contributors
2424
------------
25+
2526
Contributors are community members who contribute in concrete ways to the
2627
project. Anyone can become a contributor, and contributions can take many forms
2728
– not only code – as detailed in the :ref:`contributors guide <contributing>`.
2829

30+
Triage team
31+
------------
32+
33+
The triage team is composed of community members who have permission on
34+
github to edit, label and close issues. :ref:`Their work <bug_triaging>` is
35+
crucial to improve the communication in the project and limit the crowding
36+
of the issue tracker.
37+
2938
Core developers
3039
---------------
3140
Core developers are community members who have shown that they are dedicated to

doc/support.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ what target are your trying to predict: binary, multiclass (1 out of
4646
``n_classes``) or multilabel (``k`` out of ``n_classes``) classification
4747
or continuous variable regression.
4848

49+
User questions should **not be asked on the bug tracker**, as it crowds
50+
the list of issues and makes the development of the project harder.
4951

5052
.. _bug_tracker:
5153

0 commit comments

Comments
 (0)