What I am thinking about here are the various stages, not states. So I am not worried about open/closed states since that is obvious. I am thinking of the more fine-grained stages an issue goes through.
Step one is even getting an initial report. It could be from a total stranger, so nothing really should be assumed about the issue. Basically the issue is "new".
With the bug report filed, now you need to "verify [the] bug". This will help get rid of duplicates or things that are out of date because they no longer affect Python.
With the bug verified, a "test [is] needed". You can't really work on a bug without having a test to work against.
With the bug verified and a test to reproduce it, now it "needs [a] patch". Already having a test should help make getting a patch a little easier since you have something to work against.
Once there is a patch from some kind, patient soul, there is a need for a "patch review". A committer need to verify that the code meets our standards, it actually fixes the bug, etc.
But sometimes even a committer needs another committer's opinion, that can lead to a "commit review". We are actually doing this for the release candidates; all commits need a review from another committer (sans docs) before the code can be committed.
After that, the code should be "committed" or "fixed". Obviously there are other possible stages/results, such as "duplicate", "won't fix", "invalid", "out of date" (which could also just be considered "invalid"), or "works for me" (which could also be flagged as "invalid"). But those seem to be the typical steps an issue goes through from being reported to getting fixed:
- new
- verify bug
- needs test / test needed
- needs patch /patch needed
- patch review
- commit review
- committed / accepted / fixed
4 comments:
This will correlate nicely with our switch to a DVCS. :)
Your proposed steps look pretty good Brett - and anything that 'demystifies' starting to contribute to Python has to be a good thing.
That was the best side-effect (for me) of attending the sprint at PyCon - feeling that the process of getting bugfixes or patches accepted into Python was no longer a complete mystery once I knew the required steps.
Of course I haven't actually *done* much since (but I'm working on the final manuscript edits of my book today), but at least I now feel like I could...
fuzzyman:
I am still hoping to write up more dev docs so that what each step in the issue tracker requires is fairly obvious and doesn't require lurking on python-dev or attending a sprint to find out unspoken rules.
I like the formalized process. I've had a chance to identify and fix a small python bug but I was kind of just feeling my way through. Having an expectation of a process would have given me that extra "hand holding". Thanks!
Post a Comment