(→Package quality expectation in devel:* projects) |
(→Step 1: Review by Release Engineers) |
||
| (6 intermediate revisions not shown) | |||
| Line 9: | Line 9: | ||
== Iteration cycle schedule == | == Iteration cycle schedule == | ||
| - | MeeGo images created and delivered to [[Quality|QA]] and are non-official images. They serve to test major changes introduced into the Trunk testing. Release Engineers have the discretion to accept, reject, or queue submitted changes after the image has been finalized. Feedback may be given to | + | MeeGo images created and delivered to [[Quality|QA]] and are non-official images. They serve to test major changes introduced into the Trunk testing. Release Engineers have the discretion to accept, reject, or queue submitted changes after the image has been finalized. Feedback may be given on the daily releases to increase the usability of the MeeGo weekly releases.<br> |
In principle, changes can still go in for the final weekly release, if the changes meet the following criteria: | In principle, changes can still go in for the final weekly release, if the changes meet the following criteria: | ||
* The change is not a major API change | * The change is not a major API change | ||
| Line 22: | Line 22: | ||
Integrating new code to Trunk or a release must not break the MeeGo reference images. The reference images represent product categories, SDK, and other configurations that need to be in place for MeeGo to function, development to continue, and products to use MeeGo. MeeGo will provide facilities to help developers test against the different references. <br> | Integrating new code to Trunk or a release must not break the MeeGo reference images. The reference images represent product categories, SDK, and other configurations that need to be in place for MeeGo to function, development to continue, and products to use MeeGo. MeeGo will provide facilities to help developers test against the different references. <br> | ||
| - | The first level of integration is called Staging, where developers work with the packages in OBS development projects. The package maintainer pushes the project towards the MeeGo :Testing projects. MeeGo will provide an automated testing facility where test cases can be contributed. This will provide results from the different MeeGo references, since in many cases it is not feasible to obtain all the different reference devices. <br> | + | The first level of integration is called Staging, where developers work with the packages in OBS development projects. The package maintainer pushes the project towards the MeeGo Trunk:Testing projects. MeeGo will provide an automated testing facility where test cases can be contributed. This will provide results from the different MeeGo references, since in many cases it is not feasible to obtain all the different reference devices. <br> |
| - | When test results are of a sufficient standard, the package maintainer pushes his/her code towards the MeeGo :Testing project. These contributions are reviewed by the MeeGo Distribution/Platform maintainers and tested against the current Trunk. If they pass, QA packages are promoted to the Trunk. | + | When test results are of a sufficient standard, the package maintainer pushes his/her code towards the MeeGo Trunk:Testing project. These contributions are reviewed by the MeeGo Distribution/Platform maintainers and tested against the current Trunk. If they pass, QA packages are promoted to the Trunk. |
<p>[[File:MeeGoIntegrationFlow.JPG]]</p> | <p>[[File:MeeGoIntegrationFlow.JPG]]</p> | ||
| Line 45: | Line 45: | ||
* Package upgrades must have a Feature or Bug # corresponding to it. | * Package upgrades must have a Feature or Bug # corresponding to it. | ||
** If none exists, file new Bug or Feature and describe why this change is needed in MeeGo | ** If none exists, file new Bug or Feature and describe why this change is needed in MeeGo | ||
| - | ** For minor upgrades to pkgs that mostly include bug fixes, a Bug will suffice. For major upgrades that include new features or major API changes, a Feature # is required. | + | ** For minor upgrades to pkgs that mostly include bug fixes, a Bug will suffice instead of a Feature. For major upgrades that include new features or major API changes, a Feature # is required. |
| - | ** '''Note:''' If your package | + | * Package bug-fixes must have a Bug # corresponding to it. |
| + | ** If none exists, file new Bug and describe why this change is needed in MeeGo. | ||
| + | ** '''Note:''' If your package bug-fixes doesn't touch actual code, or is merely a cosmetic (configuration) change, no Bug number is required. | ||
* Package is submitted from corresponding devel:* project by one of project maintainers. | * Package is submitted from corresponding devel:* project by one of project maintainers. | ||
* Package has clear change description and references to bugs and/or features (see [[Packaging/Guidelines#External_References|packaging guidelines on format]]) | * Package has clear change description and references to bugs and/or features (see [[Packaging/Guidelines#External_References|packaging guidelines on format]]) | ||
| Line 64: | Line 66: | ||
==== Step 3: Developer Submission Check-list ==== | ==== Step 3: Developer Submission Check-list ==== | ||
| - | * Here is a helpful check-list that developer's can go through before a submission. It covers all of | + | * Here is a helpful check-list that developer's can go through before a submission. It covers all of the above in an easy-to-follow manner. It also includes a FAQ and common problems developers go through, when submitting, that can cause their request to be rejected. |
[[Release_Engineering/Submission_Checklist|Developer Submission Checklist]] | [[Release_Engineering/Submission_Checklist|Developer Submission Checklist]] | ||
| Line 71: | Line 73: | ||
* Release Engineers are responsible for smoke-testing medium and big changes on relevant hardware. | * Release Engineers are responsible for smoke-testing medium and big changes on relevant hardware. | ||
| - | * Based on QA test results, accumulated changes to be promoted to Trunk (or Release) if those changes are not causing any regressions compared to Trunk (or Release) | + | * Based on QA test results, accumulated changes to be promoted to Trunk (or Release), if those changes are not causing any regressions compared to Trunk (or Release) |
=== Release acceptance criteria === | === Release acceptance criteria === | ||
| Line 78: | Line 80: | ||
* All required images should have no regressions, based on QA reports | * All required images should have no regressions, based on QA reports | ||
** If build has no regressions, release is made | ** If build has no regressions, release is made | ||
| - | ** If build contains regressions, | + | ** If build contains regressions, Release Manager makes a decision based on QA reports |
*** release with documented limitations | *** release with documented limitations | ||
*** introduce some changes and re-iterate release procedure | *** introduce some changes and re-iterate release procedure | ||
Contents
|
Between releases in the active development cycle, work for MeeGo will run in weekly iterations, producing nightly builds and weekly releases from the Trunk. The resulting build from each iteration is used to track development progress. The diagram below shows the timing for the weekly cycle - unless otherwise noted in the diagram, all times are GMT.
Daily is the repository where the trunk output with the latest changes lands. This is the bleeding edge of development. This repository can be added to images but should be disabled by default.
MeeGo images created and delivered to QA and are non-official images. They serve to test major changes introduced into the Trunk testing. Release Engineers have the discretion to accept, reject, or queue submitted changes after the image has been finalized. Feedback may be given on the daily releases to increase the usability of the MeeGo weekly releases.
In principle, changes can still go in for the final weekly release, if the changes meet the following criteria:
Integrating new code to Trunk or a release must not break the MeeGo reference images. The reference images represent product categories, SDK, and other configurations that need to be in place for MeeGo to function, development to continue, and products to use MeeGo. MeeGo will provide facilities to help developers test against the different references.
The first level of integration is called Staging, where developers work with the packages in OBS development projects. The package maintainer pushes the project towards the MeeGo Trunk:Testing projects. MeeGo will provide an automated testing facility where test cases can be contributed. This will provide results from the different MeeGo references, since in many cases it is not feasible to obtain all the different reference devices.
When test results are of a sufficient standard, the package maintainer pushes his/her code towards the MeeGo Trunk:Testing project. These contributions are reviewed by the MeeGo Distribution/Platform maintainers and tested against the current Trunk. If they pass, QA packages are promoted to the Trunk.
Note: Processing of requests containing packages that delve lower in the dependency hierarchy may be postponed (usually done during the weekends). This is due to the fact that processing the said package(s) will trigger a lot of rebuilds and the builders are comparatively idle during the weekends. Here is a sample list of 'special' packages.
Developer Submission Checklist
MeeGo supports a wide range of different categories of products and the release process tries to accommodate the different requirements of each product category. The Release process takes into account the following three aspects of successful product creation: