Software ECO process: Difference between revisions
DanielDrake (talk | contribs) No edit summary |
|||
(11 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
<b><big><font color=red>For current information on OLPC software release processes, see [[Release Process Home]]</font></big></b> |
|||
{{Deprecated}} |
|||
{{OLPC}} |
{{OLPC}} |
||
{{Developers}} |
{{Developers}} |
||
{{Procedures}} |
{{Procedures}} |
||
The '''software ECO process''' is a process for producing software releases meeting an established quality standard. ECO, or engineering change order, is a term from the hardware world describing the order needed to place a new revision of a product into production. |
|||
==Unscheduled Software Release (USR) Process== |
|||
From time to time there may be critical bug fixes that must be released before the next normal, scheduled releases. In order to ensure that the quality of our released software continually increases, the following procedure should be strictly followed when proposing, creating, and publishing an unscheduled software release. |
From time to time there may be critical bug fixes that must be released before the next normal, scheduled releases. In order to ensure that the quality of our released software continually increases, the following procedure should be strictly followed when proposing, creating, and publishing an unscheduled software release. |
||
Line 13: | Line 17: | ||
# [[#REVIEW PROPOSAL|REVIEW PROPOSAL]]: When the discussion has resulted in a concrete proposal, the [[#Triage Team|Triage team]] will review the proposal, possibly making changes to broaden or limit the scope of the USR, approve specific strategies for addressing the issues necessitating the USR, etc. When the Triage team has approved the USR, they will communicate the approval via email to software-eco, referencing the specific version of the wiki page approved (again, please CC devel when appropriate). Triage team approval commits both development and testing resources to work on the USR. |
# [[#REVIEW PROPOSAL|REVIEW PROPOSAL]]: When the discussion has resulted in a concrete proposal, the [[#Triage Team|Triage team]] will review the proposal, possibly making changes to broaden or limit the scope of the USR, approve specific strategies for addressing the issues necessitating the USR, etc. When the Triage team has approved the USR, they will communicate the approval via email to software-eco, referencing the specific version of the wiki page approved (again, please CC devel when appropriate). Triage team approval commits both development and testing resources to work on the USR. |
||
# [[#CANDIDATE BUILD|CANDIDATE BUILD]]: When the proposal has been approved, the build master will prepare a build or series of builds as candidates for the USR, updating the USR wiki page with the changed package(s) included in the USR builds, and the rationale for their inclusion. The build master will announce the availability of each candidate build. |
# [[#CANDIDATE BUILD|CANDIDATE BUILD]]: When the proposal has been approved, the build master will prepare a build or series of builds as candidates for the USR, updating the USR wiki page with the changed package(s) included in the USR builds, and the rationale for their inclusion. The build master will announce the availability of each candidate build. |
||
# [[#TEST|TEST]]: When candidate build(s) are made available, bug-specific tests as well as the |
# [[#TEST|TEST]]: When candidate build(s) are made available, bug-specific tests as well as the 1 hour [[Smoke test]] for the release should be conducted. The results of these tests should be included as part of the USR wiki page. Test results for each build should be announced. Test results may necessitate additional builds, which will require restarting the process from [[#CANDIDATE BUILD|CANDIDATE BUILD]]. If the results of testing necessitate changes to the USR proposal that affect its scope, the process should be restarted from the [[#REVIEW PROPOSAL|proposal review]] step. The [[#TEST|TEST]] step is complete when the QA lead signs off on the candidate build. |
||
# [[#SIGNATURE|SIGNATURE]]: When the candidate build has completed testing, a security and appropriateness review of the candidate build is performed. If approvals of each component are obtained, the candidate build is then signed. If the review uncovers problems, the process should be restarted from [[#CANDIDATE BUILD|CANDIDATE BUILD]] with appropriate changes to security-sensitive components. The availability of the signed build is announced. |
# [[#SIGNATURE|SIGNATURE]]: When the candidate build has completed testing, a security and appropriateness review of the candidate build is performed. If approvals of each component are obtained, the candidate build is then signed. If the review uncovers problems, the process should be restarted from [[#CANDIDATE BUILD|CANDIDATE BUILD]] with appropriate changes to security-sensitive components. The availability of the signed build is announced. |
||
# [[#FINAL TEST|FINAL TEST]]: When the signed build is made available, final testing is performed to ensure that the signature process was successful and that operation and upgrade on secured machines is correct. The QA lead signs off on the results of final testing. The USR wiki page is reviewed and verified to accurately describe the final build. The [[#Release Team|Release Team]] signs off on the final USR. |
# [[#FINAL TEST|FINAL TEST]]: When the signed build is made available, final testing is performed to ensure that the signature process was successful and that operation and upgrade on secured machines is correct. The QA lead signs off on the results of final testing. The USR wiki page is reviewed and verified to accurately describe the final build. The [[#Release Team|Release Team]] signs off on the final USR. |
||
Line 45: | Line 49: | ||
* Proposed Fix: the complete source-code and package-level diffs for review, if not clearly stated in referenced Trac bugs; |
* Proposed Fix: the complete source-code and package-level diffs for review, if not clearly stated in referenced Trac bugs; |
||
* Reviewers: who has reviewed the proposed changes for correctness? (Preferably at least three people competent in the area affected other than the authors of the changes.) |
* Reviewers: who has reviewed the proposed changes for correctness? (Preferably at least three people competent in the area affected other than the authors of the changes.) |
||
* Proposed Testing: developer testing, QA testing, multi-language, boot up, upgrade testing, etc. (beyond the usual |
* Proposed Testing: developer testing, QA testing, multi-language, boot up, upgrade testing, etc. (beyond the usual 1 Hour [[Smoke test]]); |
||
* Proposed Rollout: Mfg, Support group, G1G1 users, country deployment teams, etc. |
* Proposed Rollout: Mfg, Support group, G1G1 users, country deployment teams, etc. |
||
Line 64: | Line 68: | ||
===TEST=== |
===TEST=== |
||
When candidate build(s) are made available, bug-specific tests as well as the |
When candidate build(s) are made available, bug-specific tests as well as the 1 Hour [[Smoke test]] should be conducted. The results of these tests should be included as part of the USR wiki page. Test results for each build should be announced. Test results may necessitate additional builds, which will require restarting the process from [[#CANDIDATE BUILD|CANDIDATE BUILD]]. If the results of testing necessitate changes to the USR proposal that affect its scope, the process should be restarted from the [[#REVIEW PROPOSAL|proposal review]] step. The [[#TEST|TEST]] step is complete when the QA lead signs off on the candidate build. |
||
The testing for this build will include both specific and general tests. Once the release master has created a candidate build (unsigned) for testing, testers can go through the test plan. |
The testing for this build will include both specific and general tests. Once the release master has created a candidate build (unsigned) for testing, testers can go through the test plan. |
||
Line 77: | Line 81: | ||
# Downgrade to the previous release are successful. |
# Downgrade to the previous release are successful. |
||
# A fresh install (as in manufacturing) is successful on both MP and B4 systems; |
# A fresh install (as in manufacturing) is successful on both MP and B4 systems; |
||
# The [[ |
# The [[Smoke test]] must be performed, both using a fresh installation and an upgraded installation, looking specifically for regressions from the release reports, and thinking about possible interactions a fix might cause. Fixes to core technologies may require much more extensive testing and soaking, as some failures only occur after time or use; |
||
# More than one SKU and keyboard type must be used during this testing (both MP and B4, due to differences in manufacturing data) in order to catch regressions in keyboard identification |
# More than one SKU and keyboard type must be used during this testing (both MP and B4, due to differences in manufacturing data) in order to catch regressions in keyboard identification |
||
# Wireless should be tested against open, WEP, and WPA access points (See [[Wireless testing]]) |
# Wireless should be tested against open, WEP, and WPA access points (See [[Wireless testing]]) |
||
Line 127: | Line 131: | ||
===Triage Team=== |
===Triage Team=== |
||
[[User:Kimquirk|Kim Quirk]], [[User:Jg|Jim Gettys]], [[User:Wad|John Watlington]], |
[[User:Kimquirk|Kim Quirk]], [[User:Jg|Jim Gettys]], [[User:Wad|John Watlington]], [[User:Gregorio|Greg Smith]] |
||
===Release Team=== |
===Release Team=== |
||
[[Profiles/mstone|Michael Stone]], [[User:CScott|C. Scott Ananian]], [[User:Kimquirk|Kim Quirk]], [[User:Jg|Jim Gettys]] |
[[Profiles/mstone|Michael Stone]], [[User:CScott|C. Scott Ananian]], [[User:Kimquirk|Kim Quirk]], [[User:Jg|Jim Gettys]], [[User:Gregorio|Greg Smith]] |
||
[[category:ECO]] |
Latest revision as of 17:08, 8 February 2011
For current information on OLPC software release processes, see Release Process Home
This page is monitored by the OLPC team.
For Developers
The software ECO process is a process for producing software releases meeting an established quality standard. ECO, or engineering change order, is a term from the hardware world describing the order needed to place a new revision of a product into production. From time to time there may be critical bug fixes that must be released before the next normal, scheduled releases. In order to ensure that the quality of our released software continually increases, the following procedure should be strictly followed when proposing, creating, and publishing an unscheduled software release. For process documentation, a copy of the USR Checklist should be made and completed as each step is completed. Be sure to use the 'Protect' tab on your checklist page. to ensure that edits are done by logged-in users only. Process Overview
Process step detailsPROPOSALAnyone who sees a problem they believe to be critical can initiate the email to the software-eco list at laptop.org to start this discussion (when appropriate, please CC the devel list). This ensures notification of anyone who may need to be involved in this process. The proposal should meet the criteria below, and adhere to the format described in the next section. Proposal Criteria
(There is a discussion of these criteria here.) How to ProposeProposals for unscheduled releases should be submitted to the "software-eco" mailing list, with a "collector" or summary Trac bug that links to any and all other Trac bugs and a link to a wiki page for collecting as much of the following information as is available (See OLPC SW-ECO 2 for an example):
At the time of the initial proposal, a fix (or the "best" fix) may not be known. REVIEW PROPOSALIn order to ensure that proposal solves problems of a truly urgent nature and in order to properly schedule the resources required to fix the stated problems, the Triage Team will carefully and publicly (if possible) review the submitted proposal before committing resources toward its realization. The Triage Team will consider the following review criteria as they make their decision:
The Triage team will review the proposal, possibly making changes to broaden or limit the scope of the USR, approve specific strategies for addressing the issues necessitating the USR, etc. A member of the Triage team will be named as the Champion of the USR, responsible for shepherding the proposal through the release process. Initial approval of the USR, communicated via email from a member of the Triage team, commits both development and testing resources to work on the USR. Fixes to address the issues necessitating the USR will be developed, and documented on the USR wiki page. When appropriate fixes are approved, the Triage team will communicate the approval via email to software-eco, referencing the specific version of the wiki page approved (again, please CC devel when appropriate). This will start the next step in the process. CANDIDATE BUILDUpon notification from the triage team, the build master will prepare a build or series of builds as candidates for the USR, updating the USR wiki page with the changed package(s) included in the USR builds, and the rationale for their inclusion. The build master will announce the availability of each candidate build. TESTWhen candidate build(s) are made available, bug-specific tests as well as the 1 Hour Smoke test should be conducted. The results of these tests should be included as part of the USR wiki page. Test results for each build should be announced. Test results may necessitate additional builds, which will require restarting the process from CANDIDATE BUILD. If the results of testing necessitate changes to the USR proposal that affect its scope, the process should be restarted from the proposal review step. The TEST step is complete when the QA lead signs off on the candidate build. The testing for this build will include both specific and general tests. Once the release master has created a candidate build (unsigned) for testing, testers can go through the test plan. Specific Testing
General Testing
If new problems (not previously known as part of testing or bug reports) are discovered during the test process, they must be analyzed to root cause and the software-eco mailing list informed of the findings, and a new decision made on proceeding. These would normally be latent bugs, and the criterion for proceeding (waiving) the bug should be based on a judgment that the candidate build is at a minimum no worse than the previous build. SIGNATUREWhen the candidate build has completed testing, a security and appropriateness review of the candidate build is performed. If approvals of each component are obtained, the candidate build is then signed. If the review uncovers problems, the process should be restarted from CANDIDATE BUILD with appropriate changes to security-sensitive components. The availability of the signed build is announced. Key in any signing decision should be, "does this build, or could this build, compromise antitheft/activation security"? Changes in the firmware, kernel, olpcrd could potentially compromise security; in general other changes are "safer". Signature Checklist
Only after this checklist is complete should the build should the build be signed and then made available in the 'candidate' directory on download.laptop.org for release candidates. The build master is responsible for ensuring the checklist and that the process has been followed. Note that signing the build for release is not the end of the process: the signed release must see a final verification step on write protected systems. FINAL TESTWhen the signed build is made available, final testing is performed to ensure that the signature process was successful and that operation and upgrade on secured machines is correct. The QA lead signs off on the results of final testing. The USR wiki page is reviewed and verified to accurately describe the final build. (In particular, the checklist contains spaces for a final sanity-check of firmware versions.) The Release Team signs off on the final USR.
RELEASEWhen the Release Team and QA lead have signed off on the FINAL TEST step, the build engineer uploads the signed build to download.laptop.org and updates the appropriate wiki pages to list the new build. An appropriate subset of the USR wiki page should be converted into release notes for the USR. The release engineer then notifies all appropriate/affected parties with information on what they need to do to distribute and apply the release. Note that the targets of a USR may be a small subset of our users. The final steps are to be performed after FINAL TEST has been signed off:
Dramatis PersonaeTriage TeamKim Quirk, Jim Gettys, John Watlington, Greg Smith Release TeamMichael Stone, C. Scott Ananian, Kim Quirk, Jim Gettys, Greg Smith |