Iris Clark
2012/1/29
Major topics which require public comments or are expected to be controversial will be reviewed on the general discussion list.
Presentation, review, and feedback for each topic is expected to span 2-3 weeks. The final date of each time-period is the date at which sufficient level of detail has been documented for the implementation team to customize the Bug System. To achieve this, within the first few days of the time-period a proposal will be distributed with a deadline for feedback. A reasonable effort will be made to respond to key threads as they occur. Once the feedback deadline has passed, any remaining open concerns will be resolved and a decision will be published a few days before the discussion end date. Adjustments to the document may be made before the final date. As with any pilot, there will be future opportunities to make modifications in the System as needed.
The general order of these discussions is optimized so that Projects Jigsaw and Lambda can use the customized System as soon as possible.
Developer Workflow | 13 Dec 2011 – 25 Jan 2012 | (6.5 weeks) |
Fields | 26 Jan 2012 – 10 Feb 2012 | (2.5 weeks) |
Multi-Release | 13 Feb 2012 – 29 Feb 2012 | (2.5 weeks) |
Dashboards/Reports | 1 Mar 2012 – 14 Mar 2012 | (2 weeks) |
Open/Closed Data Views | 15 Mar 2012 – 4 Apr 2012 | (3 weeks) |
– Bug Migration |
Minor topics which will be slipstreamed into the schedule include Roles/Permissions and CLI. Additional workflows such as those for Developers and users of Java applications (a.k.a. Incidents) and Approvals (e.g. CCC, Release Management) will be discussed if time permits during the Pilot period, but may occur after the Production System is rolled out.
Note: Based upon feedback or issues discovered during implementatoin, adjustments to this schedule may need to be made.
Contents | |
---|---|
1 | Introduction |
2 | Roles |
3 | Fields |
Assignee · Priority · Changesets · Link Types · | |
4 | Developer Workflow |
New · Open · Evaluated · Fix in Progress · Fixed · Closed · Incomplete | |
5 | End-User Workflow |
6 | Approval Workflow |
7 | Reports |
8 | Multi-Release |
9 | UI |
10 | CLI |
11 | Migration |
Workflow · | |
12 | FAQ |
13 | Index? |
14 | Change Log |
The following goals drive the design considerations and choices for the OpenJDK Bug System. Limitations in time and resource may mean that not all of these goals may be achieved completely by the time the first Production System rolls out; however, they will be continue to be motivators for future enhancements. These goals are not necessarily in priority order.
The System needs to be equally accessible to all members of the OpenJDK Community including the ability to modify, receive notifications, and vote for bugs. If a user already has an OpenJDK username as defined in the census, that name will be identical to the Bug System's username.
In accordance with the Bylaws, the System must support the following:
The data stored in any infrastructure provided for use by Community members must be made available by some means that enables, without undue effort, the construction of a complete functional clone of that infrastructure and its data as seen by the entire Community.
The System should be designed to satisfy the JCP requirement for a publically readable tracker and feedback system for JSR development.
Note: The value of "Assignee" should be "null" unless the bug/feature request is actively being worked on or there are plans to do so in the immediate future.
Note: Describe Impact, Likelihood, Workaround priority standard
Note: A list of URLs pointing to changesets containing this BugID. This list will be populated automatically whenever a Mercurial push into a managed repository occurs. For OpenJDK Release Projects, "managed" repositories are defined to be the MASTER and other shared group repositories (e.g. jdk7u/jdk7u/langtools, jdk8/tl/jdk, and hsx/hsx23/hotspot). The list is not updated during a Mercurial pull.
Note: Make sure this is defined such that it works properly for MR.
Note: Define a new Link Type "causes"/"is caused by" (Outward/Inward Description) to be used for the new bug created to reference the Closed:Fix Failed" bug. This Link Type may also be used to identify root cause.
This is the only workflow supported by OpenJDK to support development activities (e.g. bugs and feature requests).
A bug/feature request enters this status when it is created and should not remain in this status for more than 5 days.
Bugs with this status are effectively owned by the development triage team. The default "Assignee"/"Responsible Engineer" is "null". A bug may be analyzed by anybody who considers themselves part of that team. Successful triage requires skill at prioritization, resource management, and technical breadth.
Identification of a "Assignee"/"Responsible Engineer" is not required.
Initial triage has determined that the bug/feature request contains sufficient information to estimate the basic feasibility of addressing the problem and to prioritize the request. At this point, the report is assumed to be a real problem. If this is a bug, there is no guarantee that the problem has been reproduced. If it is a feature request, there is no guarantee that the feature will be implemented.
Bugs in this status are owned by the development team responsible for the "Component"/"category/subcategory". A developer will be listed as the "Assignee"/"Responsible Engineer" only if they are actively working on this item or have plans to do so in the immediate future. A bug may be moved out of this status by somebody who has technical depth in the bug's area.
A developer has performed some investigation to understand the nature of the report and has determined the extent and complexity of the bug and potential fixes.
The following substatus are used to indicate that a certain amount of technical study has been performed.
Enough is known about the potential solution to assign a targeted release and the "Assignee" is actively investigating the solution. All bugs which require changes to the Product must explicitly enter this status
Bugs in this status are owned by the development team responsible for the "Component"/"category/subcategory". A developer must be listed as the "Assignee"/"Responsible Engineer". A bug may be moved out of this status as a result of actions by the "Assignee"/"Responsible Engineer".
If the bug is in any other status at the time of "push" an error should occur, preventing the push. Ideally the push will fail if it occurs after the targeted build has been promoted.
Question: If a test is not added or modified as part of this push, should the addition of a "noreg" or "nounit" equivalent be required?
A solution (including all code, supporting tests, and documentation) has been delivered to a shared repository and will appear in a promoted build. The solution may need to percolate through one or more repositories before it reaches the one used to create the promotion. As the change is applied to each repository, the "where" list is updated to include that repository.
Bugs in this status are owned by the quality assurance team responsible for the "Component"/"category/subcategory". The "Assignee"/"Responsible Engineer" will be "null" or a member of the quality team. A bug may be moved to Closed by by somebody who is qualified to verify that the issue has been resolved.
Question: If the listed owner is not the person who applied the solution, can the set of all items fixed by a developer be easily identified? An additional "Fixed by" field may be necessary.
Terminal status representing two basic types of bugs: Bugs which resulted in changes to the Product (a fix was applied somewhere) and those that did not. Bugs in the latter category can always be re-opened. Bugs in the former can not (at least for JDK Release Projects).
Bugs in this status are effectively owned by the development team responsible for the "Component"/"category/subcategory". The "Assignee"/"Responsible Engineer" will be "null" since no further action is expected to be taken. A bug which has not resulted in a change to the Product may be re-opened or have it's substatus adjusted by a member of the development team.
Development moves bugs into these substatuses. Ideally most bugs which are in these Closed substatuses are moved here during initial triage. No changes to the Product are applied if a bug is in these substatuses. These bugs may be re-opened or have it's substatus adjusted to an alternate non-Product changing substatus.
Quality moves bugs into these substatuses. A change to the Product has been applied; thus, these bugs can not be re-opened (at least for JDK Release Projects).
More information is needed to evaluate the bug or feature request. A description of the required information is provided. The bug submitter is technically responsible for providing this information; however, it may be provided by another interested party. Bugs in this status will time-out after 30 days with an appropriate warning sent to the submitter, the "Assignee", and any watchers.
Bugs in this status are effectively owned by the submitter. The "Assignee"/"Responsible Engineer" will be the individual who requested the additional data. A bug may be moved to Closed: Not Reproducible automatically by the Bug System if additional information is not provided in a timely fashion. Alternatively, the "Assignee" may move the bug to other status based on the provided data.
Note: This is the replacement for the existing bugs.sun.com. Bug/feature requests which clear triage will be moved to the Developer Workflow.
Note: The name of this workflow needs to more accurately reflect the type of users who are expected to submit bugs, specifically developers and users of Java applications.
Note: Canned queries and dashboards are expected so that everybody can look at the same data. As part of the "Reports" discussion, an initial, representative set of reports should be identified. These reports will be used to measure performance during the Pilot. Additional reports will be provided when the Production System is rolled out.
Note: In the current bug system, there is a feature called "Multi-Release" (MR) which allows tracking of bug fixes as they're applied to different releases. Similar functionality will need to exist in the new Bug System.
BugTraq 2.0 Status | BugTraq 2.0 Substatus | JIRA Status | JIRA Substatus |
---|---|---|---|
Dispatched | New | ||
Incomplete |
|
Incomplete | |
Accepted | Open | ||
Defer |
|
||
Cause Known | Evaluated |
|
|
Fix Understood | |||
Fix in Progress | Fix in Progress | ||
Fix Available |
|
Fixed | |
Fix Delivered |
|
||
Fix Failed | |||
Closed |
|
Closed |
|
BugTraq 2.0 Status | BugTraq 2.0 Substatus | JIRA Status | JIRA Substatus |
---|---|---|---|
Dispatched | New | ||
Incomplete |
|
Incomplete | None. Old substatus retained in historical data. |
Accepted | Open | ||
Defer |
|
Closed |
|
|
Open | None. Old substatus retained in historical data. |
|
Cause Known | Evaluated |
|
|
Fix Understood | |||
Fix in Progress | Fix in Progress | ||
Fix Available |
|
Fixed | None. Old substatus retained in historical data. |
Fix Delivered |
|
||
Fix Failed | Closed |
New bug opened referencing this bug. |
|
Closed |
|
Closed |
|
Changes in 1/25/2011;
Changes in 1/29/2011;