Meego Wiki
Views

Release Engineering/Process

From MeeGo wiki
(Difference between revisions)
Jump to: navigation, search
(Package quality expectation in devel:* projects)
(Step 3: Developer Submission Check-list)
Line 64: Line 64:
==== 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 the the above in an easy-to-follow manner.  It also includes an FAQ and top common problems that developers go through when submitting that ends up in a rejection of the request.
+
* 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 an FAQ and top common problems that developers go through when submitting that ends up in a rejection of the request.
[[Release_Engineering/Submission_Checklist|Developer Submission Checklist]]
[[Release_Engineering/Submission_Checklist|Developer Submission Checklist]]

Revision as of 14:10, 15 April 2011

Contents

The iterative development model - weekly cycles

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.

Development Builds

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.

Iteration cycle schedule

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 to make sure the usability of the upcoming weekly releases for the users of MeeGo.
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 base system or tool-chain change
  • The change addresses a showstopper found by QA in the image release
  • ...

Timing for Weekly Iteration Cycle (all times GMT unless otherwise noted)


How the code reaches the Trunk/Release

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 :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 :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.

MeeGoIntegrationFlow.JPG

Package quality expectation in devel:* projects

  • Package follows packaging guidelines
  • Package is compilable against target project
  • Package is tested on relevant hardware platform
  • If package introduces intrusive changes, maintainer should inform Release Engineering team by sending mail to meego-releases@meego.com mailing list

Package quality expectations for submissions into *:Testing projects

Step 1: Review by Release Engineers

  • Package follows packaging guidelines
  • A new package must have a Feature in bugzilla corresponding to it.
    • If none exist, file a feature request through bugzilla with a description of why this package is needed in MeeGo.
    • This feature request must then be approved in the product management forum and set to state ACCEPTED.
  • 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
    • 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.
    • Note: If your package upgrade doesn't touch code, and is merely a cosmetic (configuration) change, no Bug number is required.
  • 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 on format)
  • Bug or Feature referenced must have proper values in following fields:
    • Status = RESOLVED
    • Version = MeeGo release to which item is targeting
    • Target Build = MeeGo weekly build to which item is targeting

Step 2: Compilation and Images

  • Packages should compile correctly in *:Testing repositories for all target architectures
  • Packages should not break compilation of other dependant packages
  • Packages should not break creation of all needed reference images

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.

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 the above in an easy-to-follow manner. It also includes an FAQ and top common problems that developers go through when submitting that ends up in a rejection of the request.

Developer Submission Checklist

Acceptance criteria for Trunk

  • 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)

Release acceptance criteria

  • All required images should be built and smoke-tested by responsible release
  • All required images should have no regressions, based on QA reports
    • If build has no regressions, release is made
    • If build contains regressions, based on QA reports Release Manager makes a decision
      • release with documented limitations
      • introduce some changes and re-iterate release procedure

Making a product out of MeeGo Release

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:

  1. Fast time-to-market by supporting QA in contributed reference HW for all contributions
  2. Fast development cycles by providing facilities to do upstream development within MeeGo and enabling easy synchronization to weekly releases via the release preview practice
  3. Fully open toolset for any HW or SW vendor to use for efficient SW creation

MeeGoReleaseCollaboration.JPG

Personal tools