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.40/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.40 release.

Deliverables

Every Professional Subscription release is delivered in many flavors, depending on if it's the initial release or not:

General process workflow

Initial requirements

Once the decision has been made to create a new release, the release management team should check the following:

Issue tracker release addition

To add the new release to the issue tracker:

Freeze the Hg repository

Once every thing is set we are ready to freeze the repository so that no more commits can be pushed.

Freezing Howto

Either keep it in the freezer or just follow these simple steps:

Change Version string in Template

This is to change the version in config/Openbravo.properties.template file

hg clone https://code.openbravo.com/erp/stable/2.40 2.40
hg ci -m "Update to version 2.40MP7"
hg push

Announcement

Send an e-mail notifying about the freeze of the repository.

To: release.management@openbravo.com, openbravo-development@lists.sourceforge.net
Subject: erp/stable/2.40 frozen
Text: As per the process of Maintenance Pack release, erp/stable/2.40 has been frozen.

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 reviews the issue tracker to make sure there are no immediate or critical issues. For query this bugs it's needing to include in the search criteria of issues: the "target version" equal to the MP that is released and "type" equal to defect. If the are results for this query RM should ask for this issues to QA.

Create a temporary tag

This tag (we usually call this tag as r2.40mpx-test) is created in the Subversion repository so that QA can perform the upgrade test from version 2.35MPX.

And the steps related to this process are.

eg. tags-hg2svn.sh https://code.openbravo.com/erp/stable/2.40 tip https://dev.openbravo.com/svn/openbravo/tags/r2.40mp7-test

Announcement

This time we send a mail to RM ML and notify that tag has been created and QA can perform upgrade test.

Tagging

Once QA accepts to release and no critical or immediate issues in tracker with target version the current 2.40 MP version, now the tested changeset is ready to be tagged.

Mercurial Tag

Clone erp/stable/2.40

Before cloning make sure your ~/.hgrc is configured properly. (Check Here)

Now if ever thing is set we are ready to clone erp/stable/2.40.

eg. hg clone https://code.openbravo.com/erp/stable/2.40 2.40

Create the Tag

General command:

hg tag 2.40MPX
eg. hg tag 2.40MP7

Check the result by running:

hg tags

Sign it

The RM teams signs the official tags with GPG keys. If you don't have a key, create one.

Then, configure your mercurial to use this GPG key. In $HOME/.hgrc:

[extensions]
gpg =
[gpg]
key = KEYID

Also, make sure you export GPG_TTY=`tty` in your current shell:

export GPG_TTY=`tty`

Finally, sign the release:

hg sign

And check that the commit has succeeded:

hg log -l1

Push

Firstly, check that the commits to be pushed are sane:

hg outgoing -p

And finally push the result:

hg push

Subversion Tag

This is similar to what we did for creating temp. tag but this time it will be r2.40mp7 (not r2.40mp7-test as earlier)

eg. tags-hg2svn.sh https://code.openbravo.com/erp/stable/2.40 tip https://dev.openbravo.com/svn/openbravo/tags/r2.40mp7

Unfreeze the repository

Just reversing the freeze steps will make your repository to unfreeze. i.e. You again give read/push permissions to all the listed user.

Announcement

To announce this we mail to RM ML and notify that the repository has been unfreezed


Release notes

Follow these steps to generate the release notes:

hg clone https://code.openbravo.com/erp/stable/2.40 2.40
hg log -r 2.40MP6:2.40MP7 --template '{desc}\n' > /tmp/issues
grep -i fix /tmp/issues > /tmp/fixes

Check if only one issue_id per line if not split the line, you can ignore related to issue_id

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 --password=user_pass \
      --execute="select id, summary from mantis_bug_table where id in (comma_seperated_issue_ids);" > /tmp/issues_summary
 sed 's/[+|-]//g' /tmp/issues_summary | awk '{print "* {{IssueReference|issuenum="$1"}}:"$0}' | awk '{$3="";print $0}' > /tmp/issues_wiki

Monitor the QA testing

The QA team test the upgrade process from the administration console.

This test should be passed before the Final Announcement.

Final Announcements

This consists of sending four mails.

Openbravo Update Advisory: <yyyy-mm-dd>
Release Date: <month dd, year> (eg:July 22, 2009)
Product: Openbravo Basic Network (or Openbravo SMB Network One)

Description:

An updated Openbravo ERP 2.40MPx package is available as a SVN tag.

Openbravo ERP 2.40MPx changelog:
http://wiki.openbravo.com/wiki/ERP_Network/2.40/ReleaseNotes#2.40MPx

Copyright 2008-2010 Openbravo, S.L.U.
* Note: the subject of mail to openbravo.development ML should be something like this
2.40MP7 package is now available to Openbravo Network susbcribers

Integration with builds.openbravo.com

Work Flow

Job specification

Job titile Sequence Tied to Pull changes from Update repo Estimate (hh.mm.ss)
erp_stable_2.40-inc-oracle 1 master https://code.openbravo.com/erp/stable/2.40 2.40-int-1 00.15.00
erp_stable_2.40-inc-pgsql 2 master 2.40-int-1 2.40-int-2 00.15.00
erp_stable_2.40-full-oracle 3 master 2.40-int-2 2.40-int-3 00.25.00
erp_stable_2.40-full-pgsql 4 master 2.40-int-3 None (next job will take of updating next local repo) 00.25.00
erp_stable_2.40-db-customrange-test 5 master Workspace of erp_stable_2.40-full-pgsql 2.40-int-3 to 2.40-int-4 00.00.10
erp_stable_2.40-pgsql-db-full-consistency-test 6 master 2.40-int-4 2.40-int-5 00.30.00
erp_stable_2.40-oracle-smoke-test 7 slave-1 2.40-int-5 2.40-int-6 03.00.00
erp_stable_2.40-pgsql-smoke-test 8 slave-1 2.40-int-6 2.40-int-7 03.00.00
erp_stable_2.40-tag-mps 9 master 2.40-int-7 https://code.openbravo.com/erp/stable/2.40 https://dev.openbravo.com/svn/openbravo/tags 00.10.00

Above jobs that trigger test/build with respect to pi main 2.40-integration can be seen here

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

This page has been accessed 446 times. This page was last modified 14:12, 12 March 2010. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.


Category: Release Process