Changes between Version 9 and Version 10 of TicketLifeCycle
- Timestamp:
- Mar 17, 2011, 1:20:17 PM (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TicketLifeCycle
v9 v10 3 3 = Ticket Life Cycle = 4 4 5 Every line of code introduced in the CKEditor/trunktree must pass through a strict review process. This guarantees the overall quality of the code base.5 Every line of code introduced in the {{{CKEditor/trunk}}} repository tree must pass through a strict review process. This guarantees the overall quality of the code base. 6 6 7 7 This document describes the life cycle of a ticket in the CKEditor project. … … 9 9 == Ticket Creation == 10 10 11 Anyone is allowed (and invited) to open tickets for every single issue faced in CKEditor. The [wiki:Bugs Bug Reporting Instructions] and [wiki:Features Feature Request Instructions] pages have more information on how to properly fill new tickets. Created ticket has status '''[query:status=new&desc=1&order=id new]'''11 Anyone is allowed (and invited) to open tickets for every single issue encountered in CKEditor. The [wiki:Bugs Bug Reporting Instructions] and [wiki:Features Feature Request Instructions] pages contain more information on how to file new tickets and fill their contents. After it is created each ticket has the '''[query:status=new&desc=1&order=id new]''' status. 12 12 13 13 == Clean up == 14 14 15 The ticket title, its description or its fields could be cleaned up to confirm to our internal requirements and recommendations.15 The ticket title, its description, or its fields may possibly be cleaned up to conform to our internal requirements and recommendations. 16 16 17 17 == Confirming Bugs == … … 19 19 Someone from the core development team should then check the ticket information and decide whether it has enough useful information to move forward. 20 20 21 The following actions could be taken when confirming new ticket:22 * Resolv e the ticket as '''{{{duplicate}}}''' if the ticket is determined to have the same cause as a ticket reported earlier. The "DUP of #XYZ" comment should be added, pointing to that ticket.23 * Resolv e the ticket as '''{{{worksforme}}}''' if the bug seems to not be present in the current trunk code. A comment should be added instructing the reporter to check it again and provide more information. A ticket with this status, expires in 30 days if no action is taken in the ticket, resolving it as "worksforme".24 * Resolv ethe ticket as '''{{{invalid}}}''' if it does not describe a problem with CKEditor.25 * Resolv e the ticket as '''{{{wontfix}}}''' in the rare cases that the bug seems valid but there's a specific reason why it should not (or cannot) be fixed. A comment with explanation of reasons,should be added.26 * Check the option '''{{{request info}}}''' if the ticket does not have enough information to move forward, ticket would be returned to reporter, asking him for more details. Ticket status is set to ''pending'', and expires in 30 days if noaction is taken.27 * Check the option '''{{{confirmed}}}''' if the issue could be reproduced. For browser specific tickets, the relative keyword should be appended. List of allowed keywords couldbe found [http://dev.ckeditor.com/wiki/TicketSpecs here].28 * Mark the ticket with the '''{{{HasPatch}}}''' keyword, if a patch or descriptive code changesis provided, even if not analyzed and reviewed.21 The following actions could be taken when confirming a new ticket: 22 * Resolving the ticket as '''{{{duplicate}}}''' if the ticket is determined to have the same cause as another one reported earlier. The "DUP of #''XYZ''" comment should be added, pointing to that ticket. 23 * Resolving the ticket as '''{{{worksforme}}}''' if the bug seems to be absent in the current trunk code. A comment should be added instructing the reporter to check it again and provide more information. A ticket with this status expires in 30 days if no further action is taken, resolving it as '''worksforme'''. 24 * Resolving the ticket as '''{{{invalid}}}''' if it does not describe a problem with CKEditor. 25 * Resolving the ticket as '''{{{wontfix}}}''' in the rare cases that the bug seems valid but there is a specific reason why it should not (or cannot) be fixed. If this is the case, a comment explaining the reasons should be added. 26 * Checking the option '''{{{request info}}}''' if the ticket does not contain enough information to move forward. The ticket will be returned to reporter, asking for more details. Ticket status is set to '''pending''' and it expires in 30 days if no further action is taken. 27 * Checking the option '''{{{confirmed}}}''' if the issue can be reproduced. For browser-specific tickets an appropriate keyword should be appended. A full list of allowed keywords can be found [http://dev.ckeditor.com/wiki/TicketSpecs here]. 28 * Marking the ticket with the '''{{{HasPatch}}}''' keyword if a patch or descriptive code change is provided, even if not analyzed and reviewed. 29 29 30 30 == Analyzing == 31 31 32 Once confirmed, the research starts to identify the source of the problem. A core developer could '''Accept''' the ticket. Ticket gains status {{{assigned}}} automatically, indicating that work is already in progress for it, avoiding duplicated work.32 Once a ticket is confirmed, the research starts to identify the source of the problem. A core developer could '''Accept''' the ticket. In this case the ticket automatically gets an {{{assigned}}} status, indicating that work on it is already in progress. 33 33 34 The assignee, the reporter or other could come with some more information at this point, to help on the analysis researchand coding.34 The assignee, the reporter, and other interested parties can come up with some more information or suggestions at this point in order to help with the analysis, research, and coding. 35 35 36 36 == Proposing Patches == 37 37 38 A proposed patch should be added as a new attachment to the ticket. It must be a valid SVN patch file, named ''XYZ.patch'', where "XYZ" stands for the ticket number.39 The keyword '''HasPatch''' should be appended to the ticket, and selected action should be set as ''put on review'', indicating that the patch awaits review.38 A proposed patch should be added as a new attachment to the ticket. It must be a valid SVN patch file, named {{{XYZ.patch}}}, where "XYZ" stands for the ticket number. 39 The keyword '''HasPatch''' should be appended to the ticket, and selected action should be set to '''put on review''', indicating that the patch awaits review. 40 40 41 When a submitter proposes an updated patch, the previous patch should still remain in the ticket. The new patch should be named ''XYZ_n.patch'', where "n" is a progressive number starting from "2". Thenew patch makes previous ones obsolete. The review status should be set again, with instructions to the reviewer.41 When the submitter proposes an updated patch, the previous patch should still remain attached to the ticket. The new patch should be named {{{XYZ_n.patch}}}, where ''{{{n}}}'' is a consecutive number starting from "2". A new patch makes previous ones obsolete. The review status should be set again, with instructions to the reviewer. 42 42 43 43 == Reviewing Patches == 44 44 45 A reviewer will read through each proposed patch. If the patch is ready to commit, the reviewer will change the review keyword to '''Review+'''.45 A reviewer will read through each proposed patch. If the patch is correct and ready to commit, the reviewer will change the ticket status to '''PASSED review'''. 46 46 47 A patch might not be ready to commit for various reasons. The bug fix might be incorrect. The coding style might be incorrect. The reviewer should always explain in detail why a patch is not ready to commit, so the submitter or someone else can revise the patch. The review keyword is changed to '''Review-''' at this point.47 A patch might not be ready to commit for various reasons. The bug fix or the coding style might be incorrect, for example. If this is the case, the reviewer should always explain in detail why a patch is not ready to be committed, so the submitter or someone else can revise the patch. At this point the ticket status is changed to '''FAILED review'''. 48 48 49 49 == Commit == 50 50 51 After a patch has been reviewed, someone with commit privileges in the source repository will commit it. The ticket is then resolved as "fixed", pointing to the relative changed with a message like "Fixed with [XYZ].".51 After a patch has passed the review, someone with commit privileges in the source repository will commit it. The ticket is then resolved as '''fixed''', pointing to the checkin number with a message like "Fixed with [''XYZ''].". 52 52 53 If the assignee or the patch developer ha s commit privileges, he/she has the preference to commit it.53 If the assignee or the patch developer have commit privileges, they can commit the patch themselves once it has passed the review and was accepted.