/* * Asterisk -- An open source telephony toolkit. * * Copyright (C) 1999 - 2009, Digium, Inc. * * See http://www.asterisk.org for more information about * the Asterisk project. Please do not directly contact * any of the maintainers of this project for assistance; * the project provides a web site, mailing lists and IRC * channels for your use. * * This program is free software, distributed under the terms of * the GNU General Public License Version 2. See the LICENSE file * at the top of the source tree. */ /*! * \file */ /*! * \page MantisWorkflow Workflow Guidelines for Asterisk Open Source Issue Tracker * * \AsteriskTrunkWarning * *
* \section WorkflowDescription Description of the Issue Tracker Workflow * * (This document is most beneficial for Asterisk bug marshals, however it is good * reading for anyone who may be filing issues or wondering how the Asterisk Open * Source project moves issues through from filing to completion.) * * The workflow in the issue tracker should be handled in the following way: * * -# A bug is reported and is automatically placed in the 'New' status. * -# The Bug Marshall team should go through bugs in the 'New' status to determine * whether the report is valid (not a duplicate, hasn't already been fixed, not * a Digium tech support issue, etc.). Invalid reports should be set to * 'Closed' with the appropriate resolution set. Categories and descriptions * should be corrected at this point.[Note1]\n * Issues should also have enough information for a developer to either * reproduce the issue or determine where an issue exists (or both). If this is * not the case then the issue should be moved to 'Feedback' prior to moving * forward in the workflow. * -# The next step is to determine whether the report is about a bug or a * submission of a new feature: * -# BUG: A bug should be moved into the status 'Acknowledged' if enough * information has been provided by the reporter to either reproduce the * issue or clearly see where an issue may lie. The bug may also be * assigned to a developer for the creation of the initial patch, or * review of the issue.\n * Once a patch has been created for the issue and attached, the issue can * then be moved to the 'Confirmed' status. At this point, initial code * review and discussion about the patch will take place. Once an adequate * amount of support for the implementation of the patch is acquired, then * the bug can be moved to the 'Ready for Testing' status for wider * testing by the community. After the testing phase is complete and it * appears the issue is resolved, the patch can be committed by a * developer and closed. * -# FEATURE: As new features should be filed with a patch, it can be * immediately moved to the 'confirmed' status, making it ready for basic * formatting and code review. From there any changes to style or feel of * the patch based on feedback from the community can be discussed, and * changes to the patch made. It can then be moved forward to the 'Ready * for Testing' status. Once the feature has been merged, or a decision * has been made that it will not be merged, the issue should be taken to * 'Closed' with the appropriate resolution.[Note2] * -# If at any point in the workflow, an issue requires feedback from the original * poster of the issue, the status should be changed to 'Feedback'. Once the * required information has been provided, it should be placed back in the * appropriate point of the workflow. * -# If at any point in the workflow, a developer or bug marshal would like to * take responsibility for doing the work that is necessary to progress an * issue, the status can be changed to 'Assigned'. At that point the developer * assigned to the issue will be responsible for moving the issue to completion. * * \section WorkflowSummary Workflow Summary * * The following is a list of valid statuses and what they mean to the work flow. * * \subsection New New * This issue is awaiting review by bug marshals. Categorization and summaries * should be fixed as appropriate. * * \subsection Feedback * This issue requires feedback from the poster of the issue before any * additional progress in the workflow can be made. This may include providing * additional debugging information, or a backtrace with DONT_OPTIMIZE enabled, * for example. (See the doc/HOWTO_collect_debug_information.txt file in your * Asterisk source.) * * \subsection Acknowledged * This is a submitted bug which has no patch associated with it, but appears * to be a valid bug based on the description and provided debugging * information. * * \subsection Confirmed * The patch associated with this issue requires initial formatting and code * review, and may have some initial testing done. It is waiting for a * developer to confirm the patch will no longer need large changes made to it, * and is ready for wider testing from the community. This stage is used for * discussing the feel and style of a patch, in addition to the coding style * utilized. * * \subsection Ready For Testing * This is an issue which has a patch that is waiting for testing feedback from * the community after it has been deemed to no longer need larger changes. * * \subsection Assigned * A developer or bug marshal has taken responsibility for taking the necessary * steps to move forward in the workflow. Once the issue is ready to be * reviewed and feedback provided, it should be placed back into the * appropriate place of the workflow. * * \subsection Resolved * A resolution for this issue has been reached. This issue should immediately * be Closed. * * \subsection Closed * No further action is necessary for this issue. * * \section SeverityLevels Severity Levels * * Severity levels generally represent the number of users who are potentially * affected by the reported issue. * * \subsection Feature Feature * This issue is a new feature and will only be committed to Asterisk trunk. * Asterisk trunk is where future branches will be created and thus this * feature will only be found in future branches of Asterisk and not merged * into existing branches. (See Release Branch Commit Policy below.) * * \subsection Trivial Trivial * A trivial issue is something that either affects an insignificant number of * Asterisk users, or is a minimally invasive change that does not affect * functionality. * * \subsection Text Text * A text issue is typically something like a spelling fix, a clarifying of a * debugging or verbose message, or changes to documentation. * * \subsection Tweak Tweak * A tweak to the code the has the potential to either make code clearer to * read, or a change that could speed up processing in certain circumstances. * These changes are typically only a couple of lines. * * \subsection Minor Minor * An issue that does not affect a large number of Asterisk users, but not an * insignificant number. The number of lines of code and development effort to * resolve this issue could be non-trivial. * * \subsection Major Major * As issue that affects the majority of Asterisk users. The number of lines of * code and development effort required to resolve this issue could be * non-trivial. * * \subsection Crash Crash * An issue marked as a Crash is something that would cause Asterisk to be * unusable for a majority of Asterisk users and is an issue that causes a * deadlock or crash of the Asterisk process. * * \subsection Block Block * A blocking issue is an issue that must be resolved before the next release * of Asterisk as would affect a significant number of Asterisk users, or could * be a highly visible regression. A severity of block should only be set by * Asterisk bug marshals at their discretion. * * *** USERS SHOULD NOT FILE ISSUES WITH A SEVERITY OF BLOCK *** * * \section PriorityLevels Priority Levels * * Currently, the following priority levels are listed on the issue tracker: * - None * - Low * - Normal * - High * - Urgent * - Immediate * * However, at this time they are not utilized and all new issue should have a priority of 'Normal'. * * \section Notes Notes * * -# Using the "Need Triage" filter is useful for finding these issues quickly. * -# The issue tracker now has the ability to monitor the commits list, and if * the commit message contains something like, "(Closes issue #9999)", the bug * will be automatically closed.\n * See http://www.asterisk.org/doxygen/trunk/CommitMessages.html for more * information on commit messages. * * \section ReleaseBranchCommitPolicy Release Branch Commit Policy * * The code in the release branches should be changed as little as possible. The * only time the release branches will be changed is to fix a bug. New features * will never be included in the release branch unless a special exception is made * by the release branch maintainers. * * Sometimes it is difficult to determine whether a patch is considered to fix a * bug or if it is a new feature. Patches that are considered code cleanup, or to * improve performance, are NOT to be included in the release branches. Performance * issues will only be considered for the release branch if they are considered * significant, and should be approved by the maintainers. * * If there is ever a question about what should be included in the release branch, * the maintainers should be allowed to make the decision. */