WTP PMC Defect Review
WTP PMC Defect Review
As the end of a release cycle nears, WTP needs to add some governance in order to maintain stability and quality in the face of the upcoming deadline. To this end, a PMC review process will occur.
Also, during a maintenance release, UI changes are occasionally required to fix a bad bug, but due to the potential for far reaching impact (such as, documentation, translations, tutorials, and courses) a PMC review is also required. If a PMC Review is being requested due to a UI change, the developer or Project Lead should add an explicit comment "PMC Review requested due to UI change".
Additionally, while extremely rare, there are some problems that can not be solved without a change in API behavior. Since these changes can have very large impact on adopters investments, any change in the behavior of a released API (whether in maintenance release or not) requires PMC review and approval. If a PMC Review is being requested due to an API change, the developer or Project Lead should add an explicit comment "PMC Review requested due to API change".
Important Note - The PMC Review is not an in depth technical accuracy review, but a general risk management analysis of possible benefits and associated risks of including a proposed fix.
How To Prepare a PMC Defect Candidate
The answers to the following bullets must be incorporated into the bugzilla entry before a defect will be considered for PMC approval:
- Explain why you believe this is a stop-ship defect. Or, if it is a "hotbug" (requested by an adopter) please document it as such.
- Is there a work-around? If so, why do you believe the work-around is insufficient?
- How has the fix been tested? Is there a test case attached to the bugzilla record? Has a JUnit Test been added?
- Give a brief technical overview. Who has reviewed this fix?
- What is the risk associated with this fix?
How To Get a PMC Defect Fix Candidate Approved
Overview of Steps Required:
- Developer fixes defect and attaches fix patch to the defect.
- Developer also adds documentation about the fix and why it is a must fix (using the template: How To Prepare a PMC Defect Candidate).
- Developer asks for Project Lead (or delegate) review and the Project Lead (or delegate) documents their review and approval.
- Project Lead (or delegate) then:
- Puts "PMC" in the Status Whiteboard field.
- Adds the following to the pmc_approved flag with a "?". You can copy/paste the whole line in one field.
- email@example.com, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org, email@example.com
- This will add PMC approval flags for each PMC member and automatically send the PMC member an email.
- PMC members review and vote. A single negative vote will reject a defect and usually a minimum of two positive votes is required for approval. It will be incumbent on the PMC to do anything possible to perform reviews within 24 hours.
- If approval is given, the developer may then release the code (tag with version and update map files) for a build.
To see a summary of bugs approved, developers can watch the associated PMC approval PHP page, which will be dynamically updated when refresh pressed, but the the bug itself is the "authoritative record" (that is, once it has all the required approvals, code can be committed).
- If the component lead does not get 24 hour turnaround on approvals, they should send a note to wtp-releng with a link to the defect.
PMC Members, How to vote
- Instead of using a comment to indicate "+1", you need to update the "pmc_approved" flag for your email address with a "+" for approve and a "-" for reject. The PMC summary web pages are based on only the flags and not any text comments.
- Note that it is the votes (and number of votes) that determines if/when a fix is "approved". Eventually, as an administrative task, the white board status field will be changed from 'PMC' to 'PMC_approved'. It is important to have this field up to date only when increasing the 'number of votes required for approval', or else the summary page may start to show previously approved fixes as still needing more votes.
Q & A
- Q: Does Junit changes require PMC approval as well?
- A: Committers can release Junit changes without waiting for approval, however the bug should still be marked for PMC review as usual. This so so everyone would be informed of the changes in case if it caused a build break or if teams are wondering why a build was kicked off when no changes were released.