ERP 2.50:Release Process
Contents |
Introduction
This document describes the different phases of the release engineering process leading up to the actual build and publication of a 2.50 release, both the Community Edition and the Professional Subscription.
Deliverables
Community
Every Community release is delivered in as a SCM tag (Mercurial, code.openbravo.com).
Professional
Every Professional release is delivered in many flavors:
- SCM tag (Mercurial, code.openbravo.com).
- Source code tarball.
- Update of the Core module in the Central Repository.
- Appliances (DVD-ISO, Amazon EC2, QEMU/Parallels, VirtualBox, VMware ESX, VMware, Xen), x86 and x86_64.
- Subsequent updates also include updates of the 2.50 appliance (stack) using the Conary packager manager and rBuilder.
- Ubuntu packages for Karmic (9.10), Lucid (10.04) and Maverick (10.10).
General process workflow
- Schedule the release: there is a 2.50 release calendar and as it is the latest major release, the maintenance packs are scheduled to be released the last ten days of every month.
- Create the new release in the issue tracker.
- Promote changesets from erp/devel/pi to erp/devel/main: QA gives the green light for this in the release-management mailing list (RM ML). And RM performs the merge. Ideally, our continuous integration framework should be in charge of the process of moving changesets from one repository to the other. But this automation is not ready yet.
- Announce this to the RM ML, so that QA can start their work. This step will be eliminated at the moment we automate the merge/promotion process based on tests.
- Tag and sign (GPG) the release in erp/devel/main.
- Build and package the appliance.
- Announce it to the RM ML QA, so that QA can test the appliance.
- Generate source code deliverables: tarball and OBX.
- Upload to SourceForge.net.
- Publish the appliance, tarball and OBX file.
- Update the Release Notes.
- Announcements.
Previous steps
Issue tracker release addition
To add the new release to the issue tracker:
- Log in into issues.openbravo.com. You require Administrator or Manager privileges. Talk to the RM team to receive this roles.
- Click on Manage, then Manage Projects and finally on Openbravo ERP.
- Scroll down to the Versions section, enter 2.50MPX in the text box and click on Add and Edit Version.
- Enter an appropriate date so that it gets ordered alphabetically in the list.
Promote changesets from pi to main
The Openbravo builds farm takes care of continuously testing and merging the code from erp/devel/pi to erp/devel/main. Once the initial requirements have been satisfied and with QA's green light, RM verifies what changeset is the last promoted one and disables the erp_promote_pi_to_main job to stop further merging during the release process.
![]() | Once the changesets are promoted to main either manually are automatic, remember to disable erp_promote_pi_to_main job to stop further commits to main |
Update API changes wiki
Update the API changes list, as follows:
- Rename PI to MPX, e.g. MP10.
- Create a new empty section for PI.
Generate the candidate Release Notes for Review
![]() | In order to allow developers to write the release notes when they commit some issue/project, the release notes for the next release should be also available. |
- Create the wiki document ERP_2.50:Release_Notes/2.50MPX and copy the structure of the template.
- Add at the top of the page the {{WorkInProgress}} wiki label
- Write the estimate publish date
- Update the release notes downloads links
Complete list of fixed issues in the MP
Add the list of issues/features fixed from last MP to the release changelog.
Announcement
Announce to product's owners in openbravo-development mailing list to write the "What's new" and "Fixed issues" sections with meaningful messages.
Packaging
Freeze
Block access to all developers to stable/2.50 and allow only rm and packager groups to push.
Package
$ ssh tde2-32 $ su $ screen -AmdS release $ screen -r release $ su packager $ oberp-2.50-package 2.50MPX
Explanation of the process
- Enables the api-check mercurial hook to record the changeset pushed to api-checks, and notify the committers via e-mail to ensure if any push done during the release cycle might require a re-push after the current MP is released.
- Create a temp repository clone of main, edit the AD_MODULE version, creates the tag and sign it.
- From this temp repository creates the obx and tarball.
- Copy to tecnicia14/releases/2.50MPX and irc
- Upload the obx to stage
- Create the virtual appliances from this temporary repository, for do that executes the oberp-2.50-appliances script, this script do an update of the Openbravo ERP package and the appliance group.
- Copy to tecnicia14/releases/2.50MPX and irc
- Create the professional appliances in qa status.
- Copy to tecnicia14/releases/2.50MPX and irc
Announcement
Send an e-mail to the RM ML with Subject: 2.50MPX, notifying about:
An update of Core is available in Stage.
Monitor the QA testing
The QA team starts a heavy set of tests over this release. This is an iterative process repeated until the QA team accepts the release. Once they accepts it, they'll notify it to the RM ML and the RM Team will review the issue tracker to make sure there are no major or critical issues.
QA finds a show stopper
If QA finds an important issue that should be included in the MP, these are the steps:
- Wait till the bug is fix in pi.
- QA will transplant to main the changeset that solves the issue, or tell RM to do it.
- RM will run all the test in http://builds.openbravo.com/view/devel-main/
- If all are green, RM should start from packaging step.
- Also is need to generate again or update the release notes.
- This changeset (as all transplanted changesets) will also appear also in the hg log of the next release. So, please add this changeset to a google doc, in order that in the next version can be removed from the list of fixed issues.
QA needs a obx to test the update
To upload into stage a new obx with a version increased by one over the current version published in stage, execute this script:
$ ssh tde2-32 $ su packager $ oberp-2.50-uploadDummyObx-toStage 2.50MPX
After QA testing
Once QA accepts to release and no critical or major issues in tracker, the rest is work of release management team.
Confirm
Run the confirm script
Then connect to tde2-32 and execute the packaging script as packager user:
ssh tde2-32 su packager oberp-2.50-confirm-packaging 2.50MPX
Explanation of the process
- Executes oberp-2.50-promote-qa and oberp-2.50-promote-release. This promotes from dev to release the community appliances. This means that the appliances are published in dev state, but this is not a problem because the community appliances don't have updates.
- Promote to release and build in release state the professional appliances
- Upload the community appliances to SourceForge.
- Generate and upload symlinks for the current version of community files in SourceForge.
- The download wizard use these links, so it's not necessary to update this page.
- Upload the professional to the partners portal in s3.
- The partner portal download page is dynamic, so once the appliances are uploaded to s3 it's links will be updated automatically.
- Generates and register the AMIs for the community and the professional appliances in eprojects account.
- Push from the temp repository to main repository in code.openbravo.com.
- The wiki home and the installation manual are updated automatically with the current version.
API docs
This step is fully automated. There is a job that polls daily for new tags in the erp/devel/main repository, generates the Javadoc documentation, uploads it to code.openbravo.com/docs and updates its index page.
API check
There is a job that polls daily for new tags in the erp/devel/main repository, generates the new API and push it to api-checks.
Unfreeze
Allow again all developers to push to stable/2.50.
Mantis
Go to https://issues.openbravo.com , and select manage -> projects -> openbravo-erp.
In the versions mark the current 2.50MPx version as released.
Sync the updates to rMirror
- Login to http://on.openbravo.com/rAA/
- Schedule Outbound Mirroring -> (click on) Mirror Now
Release notes
- If was needed to do any transplant, remember to recreate the list of defects.
- Add in 2.50 release notes the new MP released.
- Clean up the MP release note document http://wiki.openbravo.com/wiki/ERP_2.50:Release_Notes/2.50MPXY
- Remove the WorkInProgress banner
- Remove the "Great feature" texts
- Remove text 'estimate date'
- Send to QA the number of total defect and features fixed in the release
Add GA date to calendar
Calculate the day that the release will move to GA (adding 40 days) and add the event to release management calendar.
You can execute this command to get the date to move GA:
date --date="40 days"
Announcements
Create the following release announcements:
Forge
News
Identified as your user (you need admin privileges OpenbravoERP Core project), go to http://forge.openbravo.com/plugins/espnews/index.php?group_id=100 and create a new:
Headline: Openbravo ERP: 2.50MPX available
Use Local News: Yes
Date: today_date
News text: (click on HTML Source button, to see the HTML code):
<p> Openbravo ERP 2.50MPX is available in the <a href="http://wiki.openbravo.com/wiki/ERP_2.50:Release_Notes/2.50MPX#Installation.2C_updates_and_upgrades">QA Approved status</a>!</p> <p>These are some of the new features included in this release:</p> <ul> <li>Feature name 1: explanation 1.</li> <li>Feature name 2: explanation 2.</li> <li>Feature name 3: explanation 3.</li> </ul> <p>These are some of the new fixes included in this release:</p> <ul> <li>Fix name 1: explanation 1.</li> <li>Fix name 2: explanation 2.</li> <li>Fix name 3: explanation 3.</li> </ul> <p> </p> <p>Check the <a href="http://wiki.openbravo.com/wiki/ERP_2.50:Release_Notes/2.50MPX">release notes</a> for more information.</p>
Click Save.
Professional list announce
- Send to the on-update-announce and openbravo development mailing lists in two different emails. And if the update fixes a security issue, announce it to on-security-announce as well.
Subject: OBUA-<yyyy-mm-dd> Openbravo ERP Professional Subscription 2.50MPx Openbravo ERP 2.50MPx is available in the QA Approved status [1] These are some of the new features included in this release: * Feature name 1: explanation 1. * Feature name 2: explanation 2. * Feature name 3: explanation 3. These are some of the new fixes included in this release: * Fix name 1: explanation 1. * Fix name 2: explanation 2. * Fix name 3: explanation 3. Check the release notes for more information: http://wiki.openbravo.com/wiki/ERP_2.50:Release_Notes/2.50MPx Copyright 2008-2012 Openbravo, S.L.U. [1] http://wiki.openbravo.com/wiki/ERP_2.50:Release_Notes/2.50MPX#Installation.2C_updates_and_upgrades
Ubuntu Package
Ubuntu packaging is automated and can be done using a hudson job UbuntuPackaging.
- Just check the job has run for the new MP in main.
- This job generates new updated package for karmic and lucid and upload them to launchpad
- Note : Job status will be mailed to staff.rm.
- On successful upload, package accepted mail form Launchpad PPA is sent to staff.rm.
- Test the packages uploaded using EC2 instance
- Create a instance for the version you want to test (karmic/lucid)
#Add the Openbravo ERP PPA’s GPG key to your apt keyring: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C2F11D81
#Add openbravo-erp launchpad repository URL’s: #For karmic: sudo sh -c 'echo "deb http://ppa.launchpad.net/openbravo-isv/ppa/ubuntu karmic main" >> /etc/apt/sources.list' sudo sh -c 'echo "deb-src http://ppa.launchpad.net/openbravo-isv/ppa/ubuntu karmic main" >> /etc/apt/sources.list #For Lucid: sudo sh -c 'echo "deb http://ppa.launchpad.net/openbravo-isv/ppa/ubuntu lucid main" >> /etc/apt/sources.list' sudo sh -c 'echo "deb-src http://ppa.launchpad.net/openbravo-isv/ppa/ubuntu lucid main" >> /etc/apt/sources.list
#Update sudo apt-get update sudo apt-get install openbravo-erp # Install modules via MMC # Uninstall apt-get remove --purge openbravo-erp
- Once we have the Accepted mail from Launchpad and the successful test then raise an issue in Launchpad and assign it to "Brian Thomason", so that the package is tested and promoted to partner's repository.
- Logon to https://bugs.launchpad.net/openbravo-erp
- Click on "Report a bug"
- In summary add some thing like this "openbravo-erp 2.50MP-18-1lucid1 for Lucid"
- In further information add somthing like this "Version 2.50MP-18-1lucid1 of the openbravo-erp package is ready to be promoted to the Partner's repository"
- Save the issue.
- Now Set the Status to "Fix committed"
- Assign the bug to "Brian Thomason" (wait till the issue is updated by Brian)
Confirmed Stable promotion
Module
When the MP has been QA Approved for 40 days we promote it to the Confirmed Stable from forge.
Professional deliverables
Promote the professional deliverables to the GA bucket, as follows:
releaser 2.50MPXY publish-ga
Announcements
News
Identified as your user (you need admin privileges OpenbravoERP Core project), go to http://forge.openbravo.com/plugins/espnews/index.php?group_id=100 and create a new:
Headline: Openbravo ERP: 2.50MPX has reached the "Confirmed Stable" maturity level.
Use Local News: Yes
Date: today_date
News text: (click on HTML Source button, to see the HTML code):
<p> Openbravo ERP 2.50MPx has reached the "Confirmed Stable" maturity level.</p> <p>Read more about <a href="http://jpabloae.wordpress.com/2010/09/29/introducing-maturity-levels-to-openbravo-erp/">maturity levels</a> and <a href="http://wiki.openbravo.com/wiki/ERP_2.50:Configuration_Manual/Modules_Management#Advanced_settings">configure</a> your Openbravo instance according to your needs.</p> <p>Openbravo ERP 2.50MPx <a href="http://wiki.openbravo.com/wiki/ERP_2.50:Release_Notes/2.50MPx">release notes</a></p>
Click Save.
Send the following announcement to the openbravo-development and on-update-announce mailing lists:
Subject: OBUA-<yyyy-mm-dd> Openbravo ERP 2.50MPx - Confirmed Stable Openbravo ERP 2.50MPx has reached the "Confirmed Stable" maturity level. Read more [1] about maturity levels and configure [2] your Openbravo instance according to your needs. Openbravo ERP 2.50MPx release notes: http://wiki.openbravo.com/wiki/ERP_2.50:Release_Notes/2.50MPx Copyright 2008-2012 Openbravo, S.L.U. [1] http://jpabloae.wordpress.com/2010/09/29/introducing-maturity-levels-to-openbravo-erp/ [2] http://wiki.openbravo.com/wiki/ERP_2.50:Configuration_Manual/Modules_Management#Advanced_settings