Triaging an Issue
When you have the Developer role on the issue tracker you are able to triage issues directly without any assistance.
Should be properly descriptive of what the issue is about. Occasionally people file an issue that either has too generic of a title or end up thinking they filed about X but in fact it turns out to be about Y and thus the title is now wrong.
Describes the type of issue. If something does not fit within any specific type then simply do not set it.
- Wrong or unexpected behavior, result, or exception. This includes most of the bugs.
- Hard crashes of the Python interpreter -- possibly with a core dump or a Windows error box.
- compile error
- Errors reported by the compiler while compiling Python.
- resource usage
- Situations where too many resources (e.g. memory) are used.
- Issues that might have security implications. If you think the issue should not be made public, please report it to email@example.com instead.
- Situations where too much time is necessary to complete the task.
- Issues that propose the addition of new functionality, such as new functions, classes, modules, or even new arguments for existing functions. Also used for improvements in the documentation and test suite and for other refactorings.
What is needed next to advance the issue. The stage needn't be set until it is clear that the issue warrants fixing.
- test needed
- The bug reporter should post a script or instructions to let a triager or developer reproduce the issue.
- needs patch
- The issue lacks a patch to solve the problem (i.e. fixing the bug, or adding the requested improvement).
- patch review
- There is a patch, but it needs reviewing or is in the process of being reviewed. This can be done by any triager as well as a core developer.
- commit review
- A triager performed a patch review and it looks good to them, but a core developer needs to commit the patch (and do a quick once-over to make sure nothing was overlooked).
- The issue is considered closed and dealt with.
What part of Python is affected by the issue. This is a multi-select field. Be aware that what component is chosen may cause the issue to be auto-assigned, i.e. the issue tracker may automatically fill in the Assigned To field after you press Submit changes.
The following component(s) should be selected if the issue applies to:
- 2to3 (2.x to 3.0 conversion tool)
- The 2to3 conversion tool in Lib/lib2to3.
- The benchmarks in the benchmarks repo.
- The build process.
- The ctypes package in Lib/ctypes.
- Demos and Tools
- The files in Tools and Tools/demo.
- The Developer's guide.
- The distutils package in Lib/distutils.
- The packaging module in Lib/packaging.
- The documentation in Doc (used to build the HTML doc at http://docs.python.org/).
- Extension Modules
- C modules in Modules.
- The Lib/idlelib package.
- The installation process.
- Interpreter Core
- The interpreter core, the built-in objects in Objects, the Python, Grammar and Parser dirs.
- The I/O system, Lib/io.py and Modules/_io.
- Library (Lib)
- Python modules in Lib.
- The Mac OS X operating system.
- Regular Expressions
- The Lib/re.py and Modules/_sre.c modules.
- The Lib/tkinter package.
- Unicode, codecs, str vs bytes, Objects/unicodeobject.c.
- The Windows operating system.
- The Lib/xml package.
The known versions of Python that the issue affects and should be fixed for. Thus if an issue for a new feature is assigned for e.g., Python 3.2 but is not applied before Python 3.2.0 is released, this field should be updated to say Python 3.3 as the version and drop Python 3.2.
How important is this issue?
- This is for low-impact bugs, or feature requests of little utility.
- The default value for most issues, which deserve fixing but without any urgency to do so.
- Make some effort to fix the issue before the next final release.
- This issue should definitely be fixed before the next final release.
- deferred blocker
- The issue will not hold up the next release, but will be promoted to a release blocker for the following release, e.g., won't block the next release of a1 but will block a2.
- release blocker
- The issue must be fixed before any release is made, e.g., will block the next release even if it is an alpha release.
As a guideline, critical and above are usually reserved for crashes, serious regressions or breakage of very important APIs. Whether a bug is a release blocker is a decision better left to the release manager so, in any doubt, add him or her to the nosy list.
Various flags about the issue. Multiple values are possible.
- A buildbot triggered the issue being reported.
- Fixing the issue should not take longer than a day for someone new to contributing to Python to solve.
- The issue would fit as, or is related to, a GSoC project.
- needs review
- The patch attached to the issue is in need of a review.
- There is a patch attached to the issue.
- The issue is a regression in 3.2.
A list of people who may be interested in an issue. It is acceptable to add someone to the nosy list if you think the issue should be brought to their attention. Use the :ref:`experts` to know who wants to be added to the nosy list for issues targeting specific areas.
Who is expected to take the next step in resolving the issue. It is acceptable to assign an issue to someone if the issue cannot move forward without their help, e.g., they need to make a technical decision to allow the issue to move forward. Also consult the :ref:`experts` as certain stdlib modules should always be assigned to a specific person.
The issue requires the listed issue(s) to be resolved first before it can move forward.
The issue is a duplicate of the listed issue(s).
- Issue is not resolved.
- The issue has no clear solution , e.g., no agreement on a technical solution or if it is even a problem worth fixing.
- The issue is blocked until someone (often the :abbr:`OP (original poster)`) provides some critical information; the issue will be closed after a set amount of time if no reply comes in. Useful when someone opens an issue that lacks enough information to reproduce the bug reported. Requesting additional information and setting status to pending indicates that the issue should be closed if the necessary information is never provided.
- The issue has been resolved (somehow).
Why the issue is in its current state (not usually used for "open").
- Duplicate of another issue; should have the Superseder field filled out.
- A fix for the issue was committed.
- For some reason the issue is invalid (e.g. the perceived problem is not a bug in Python).
- Issue is to be worked on at a later date.
- out of date
- The issue has already been fixed, or the problem doesn't exist anymore for other reasons.
- Issue will not be worked on at the moment.
- Issue was rejected (especially for feature requests).
- The issue is acting as a reminder for someone.
- wont fix
- Issue will not be fixed, typically because it would cause a backwards-compatibility problem.
- works for me
- Bug cannot be reproduced.
HTTP link to a Mercurial repository that contains a patch for the issue. The Create Patch button will then compute a diff for the head revision of the remote branch, and attach the diff to the issue.
If you don't indicate a remote branch, default is used. You can indicate a remote branch adding #BRANCH at the end of the URL.
Reporting Issues About the Tracker
The meta tracker is the tracker about the issue tracker. It is where you file issues against anything you come across when working with the issue tracker itself.