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

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.

Previous steps

Issue tracker release addition

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

Package

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

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:

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.

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

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.