View source | Discuss page | Page history | Printable version   
ADVERTISEMENT
Accounting eLearning Courses
Partnerships
SourceForge.net Logo
Openbravo ERP at SourceForge

SourceForge.net Logo
Openbravo POS at SourceForge

Open Solution Alliance Logo
Openbravo at Open Solutions Alliance

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 Edition

Every Community release is delivered in four flavors:

Professional Edition

Every Professional Edition release is delivered in many flavors:

General process workflow

Previous steps

Issue tracker release addition

To add the new release to the issue tracker:

Update the names of the appliances

  1. In on.openbravo.com go to the project.
  2. In product version, select 2.50.
  3. In the list of three images that appear, click on the pencil at the right of each appliances and change the maintenance pack version.
  4. Submit.

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.

Image:Bulbgraph.png   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:

Generate Release News for Review

Complete list of fixed issues in the MP

Follow these steps to generate the release notes:

hg clone https://code.openbravo.com/erp/devel/main main
hg log -r 2.50MP11:tip --template '{desc}\n' > /tmp/issues
grep -iE 'fix(es|ed)? (issue|bug)?( )?[0-9]+' /tmp/issues > /tmp/fixes

Check if only one issue_id per line if not split the line, you can ignore related to issue_id. Also, review if the backout word exists, and if that changeset was fixed later on or not.

sed 's/[^0-9]*\([0-9]*\).*/\1/' /tmp/fixes | sed 's/^0*//' | sort | uniq > /tmp/ids
cat /tmp/ids | tr '\n' ',' | sed 's/^,//' | sed 's/,$/\n/'
ssh username@issues.openbravo.com
mysql -u mantisdbuser -p issuetrackercas

Execute this select to obtain the defects:

select id, summary from mantis_bug_table where bugtype='10' and id in (comma_seperated_issue_ids);

copy paste the result table in /tmp/issues_summary

Execute this select to obtain the features request:

select id, summary from mantis_bug_table where bugtype='20' and id in (comma_seperated_issue_ids);

copy paste the result table in /tmp/features_summary

 echo "=== Features ===" > /tmp/issues_wiki
 sed -e 's/|//g' -e 's/^ //' -e 's/  / /g' /tmp/features_summary  | awk '{print "* {{IssueReference|issuenum="$1"}}: "substr($0, 1+length($1)+1)}' >> /tmp/issues_wiki
 echo "=== Defects ===" >> /tmp/issues_wiki
 sed -e 's/|//g' -e 's/^ //' -e 's/  / /g' /tmp/issues_summary  | awk '{print "* {{IssueReference|issuenum="$1"}}: "substr($0, 1+length($1)+1)}' >> /tmp/issues_wiki

The sum of defects and features are stored in /tmp/issues_wiki.

Image:Bulbgraph.png   It's needed to deleted from this list, manually, the issues transplanted in the previous release. Please take a look into the google document that store the changes transplanted in the previous release.

Update release documents

Update with the complete list of bug fixed in the release the release changelog.

Update all the links and dates of releases in the http://wiki.openbravo.com/wiki/ERP/2.50/Release_Notes/2.50MPx.

Packaging

Package

$ ssh tde2-32
$ screen -AmdS release
$ screen -r release
$ su packager
(enter password)
$ oberp-2.50-package 2.50MPX

Explanation of the process

  1. Freeze the API-check repository, to avoid API updates in the release process.
  2. Create a temp repository clone of main, edit the AD_MODULE version, creates the tag and sign it.
  3. From this temp repository creates the obx and tarball.
  4. Copy to tecnicia14/releases/2.50MPX
  5. 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.
  6. Create the professional appliances in qa status.
  7. Copy all the appliances to tecnicia14 and then to irc.openbravo.com, doing this we reduce the time between the qa approval and the publish.
Update the Openbravo ERP package and the appliance group

The Community Appliance is mainly used for evaluation. So with this purpose in mind, we package both sources and binaries. Shipping the binaries makes the boot process a lot faster. And including the binaries enabled the user to customize the ERP or install modules. We have a script that automatically updates, builds and cooks the Openbravo ERP package, as well as cook the appliance group recipe and launch the images generation. That is:

  1. Updates the openbravo package to include the latest version binaries and database dump.
  2. Cooks openbravo package using rMake and commits it to rBuilder.
  3. Cooks the appliance group package using cvc.
  4. Triggers the image creation process in rBuilder (Raw FS image, Raw HDD Image and VMware).

Publish the obx in stage

Go to http://stage.openbravo.essentiaforge.com/projects/core/module and publish a new version with the obx from http://192.168.102.114/releases/2.50MPX/obx

Image:Bulbgraph.png   Don't forget to change the name of the obx to org.openbravo-2.50.<version>.obx before uploading to stage else the process will fail.

Announcement

Send an e-mail to the RM ML with Subject: 2.50MPX, notifying about:

An update of Core is available in Stage.
The OBX, tarball and Community Appliances are available in http://192.168.102.114/releases/2.50MPXY , ready for the QA testing.

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:

  1. Wait till the bug is fix in pi.
  2. QA will transplant to main the changeset that solves the issue, or tell RM to do it.
  3. RM will run all the test in http://builds.openbravo.com/view/devel-main/
  4. If all are green, RM should start from packaging step.
  5. Also is need to generate again or update the release notes.
  6. 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.

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

Create SourceForge directories

Create directories by a script is not working currently in SourceForge, so this has to be done manually.

From the web interface of SourceForge as admin user, create the 2.50MPX folder in appliances and sources.

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
  1. 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.
  2. Promote to release and build in release state the professional appliances
  3. Upload the community appliances to SourceForge.
  4. Generate and upload symlinks for the current version of community files in SourceForge.
    1. The download wizard use these links, so it's not necessary to update this page.
  5. Upload the professional to the partners portal in s3.
    1. The partner portal download page is dynamic, so once the appliances are uploaded to s3 it's links will be updated automatically.
  6. Generates and register the AMIs for the community and the professional appliances in eprojects account.
  7. Push from the temp repository to main repository in code.openbravo.com.
    1. 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.

Upload the obx to the Central Repository

  1. Download the obx of core prepared to be uploaded to the central repository (It's a obx with only module, dependencies and db_prefix information). It can be found in http://tecnicia14/releases/2.50MPX/obx
  2. Upload the org.openbravo obx here: http://forge.openbravo.com/plugins/module/index.php?title=mPublish&group_id=435

Sync the updates to rmirror

Release notes

Add in 2.50 release notes the new MP released.

Announcements

Create the following release announcements:

Forge

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> </p>
<p>Openbravo ERP 2.50MPX is available!</p>
<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.

Identified with a Forge admin account go to http://forge.openbravo.com/plugins/admin/sitehome_content.php?cmsid=11 and change the text to the last MPX the 2 occurrences. (eg MP6 to MP7).

Community announce

Send an email to openbravo-development and release management mailing lists. Example of text:

Subject: Openbravo ERP 2.50MPX available

Openbravo ERP 2.50MPX is available!

Check the release notes for more information:
http://wiki.openbravo.com/wiki/ERP/2.50/Release_Notes/2.50MPX


Your name

Change the topics of the IRC channels: #openbravo and #openbravo-es.

/msg chanserv op #openbravo <your nick>
/topic  Openbravo ERP | Latest: 2.50MPx | http://wiki.openbravo.com | POS support in forums: http://ln-s.net/3ZIf 
/msg chanserv op #openbravo -<your nick>

Professional list announce

Subject: OBUA-<yyyy-mm-dd> Openbravo ERP Professional Subscription 2.50MPx

Openbravo Update Advisory: <yyyy-mm-dd>
Release Date: <Month Date, Year>
Product: Openbravo ERP Professional Subscription 2.50

Openbravo ERP 2.50MPx is available!

Download a source code tarball, a Core OBX module (update) or an
updated Cloud Appliance in the Partner Restricted Area:
http://www.openbravo.com/partners/restricted-area/downloads/

You can also use the Module Management Console to update to this
version:
http://wiki.openbravo.com/wiki/ERP/2.50/Openbravo_ERP_Installation#Online

Openbravo ERP 2.50MPx release notes:
http://wiki.openbravo.com/wiki/ERP/2.50/Release_Notes/2.50MPx


Copyright 2008-2010 Openbravo, S.L.

Note: Reference the release notes in all the announcements (except IRC).

Promotion job

Image:Bulbgraph.png   Once the maintenance pack is released and published, remember to enable erp_promote_pi_to_main job to start stable code promotion from pi to main

Retrieved from "http://wiki.openbravo.com/wiki/ERP/2.50/Release_Process"

This page was last modified 06:50, 2 February 2010. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.


Category: Release Process