Release Management/Cloud Appliance Updates/2.50
Contents |
Introduction
The 2.50 version of the Openbravo ERP professional relies on rPath Linux and other related tools like rBuilder, Conary, rMake and cvc. This document explains the process of updating packages in this version.
General process
The typical workflow consists on a developer modifying a package, which is later committed and cooked in the rBuilder machine. Once the developer is satisfied with the result it's promoted to the QA label, where the quality assurance team tests it. Once it passes the tests it is promoted to the release label, and finally it is mirrored into an update server.
Package modification
Firstly, we modify whatever is required in the package(s) we want. As an example, we'll add gzip support to Apache HTTPD. To achieve this, we need to add a file (e.g. mod_deflate.conf) to /etc/httpd/conf.d/ with some specific syntax. So we create the file and add it to the packager's list:
$ cd $HOME/src/ops-2.50-devel/httpd $ echo "AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript text/javascript" > mod_deflate.conf $ cvc add mod_deflate.conf
And now it is necessary to specify that we want it to be copied into /etc/httpd/conf.d/. This is done in the recipe.
$ (edit httpd.recipe and append lines) r.addSource('mod_deflate.conf') r.Install('mod_deflate.conf', '%(sysconfdir)s/httpd/conf.d/')
'%(sysconfdir)s' is a macro that corresponds to /etc. See the complete directory macro list for more information. These are used to ease the package's portability.
Commit and cook
The next step is to commit the package to rBuilder and then cook it. We'll use rMake for this task,w hich does this in one step:
$ rmake build httpd.recipe --commit -m "Add gzip support with mod_deflate"
Update external packages
Check here to update the external packages
Cook the group
Next step is to include committed package to the group package, so you need to cook the group package using cvc, for 2.50 it is group-ops-appliance
$ cvc co group-ops-appliance #If you have the package prior, do $ cvc up $ cd group-ops-appliance $ cvc cook --allow-flavor-change 'group-ops-appliance[!dom0,domU,!vmware,xen is: x86]' 'group-ops-appliance[!dom0,!domU,!vmware,!xen is: x86]' 'group-ops-appliance[!dom0,!domU,vmware,!xen is: x86]' 'group-ops-appliance[!dom0,domU,!vmware,xen is: x86_64]' 'group-ops-appliance[!dom0,!domU,!vmware,!xen is: x86_64]' 'group-ops-appliance[!dom0,!domU,vmware,!xen is: x86_64]'
Test
The package by default has been cooked in a label called ops.openbravo.com@openbravo:ops-2.50-devel. Consider that there are 3 stages, and one label corresponds to every stage:
- Development: ops.openbravo.com@openbravo:ops-2.50-devel
- QA: ops.openbravo.com@openbravo:obn-2.50-qa
- Release: ops.openbravo.com@openbravo:ops-2.50
Now you should take an image of the appliance, and point it to get updates from the rBuilder machine. This is done by modifying the /etc/conary/config.d/on file and by replacing rmirror.openbravo.com by on.openbravo.com.
Update the appliance and test that the required feature is enabled. In this case we would use Firebug to check this.
Promote to QA
As the package has passed our personal tests, we want QA to test them so that it can be published. So we promote it to the QA label:
$ ops-2.50-promote-qa
This scripts does it all automatically. So now the QA team can be notified about this.
Promote to Release
Once the QA team gives the green light, we can promote them to the Release label:
$ ops-2.50-promote-release
Release Notes
- Collect all the fixes done in this release.
- Create/Update the release notes for this release.
Publish
Mirroring
Now the updates are available in the Release label of the rBuilder machine. But this machine is in a LAN and not accessible from the Internet. So we mirror the contents of this label to a machine called the Update Server. Basically this is a mirror copy of the Release label, just dedicated to serving updates to appliance users.
This step must be performed using the rBuilder's admin interface. So log in in the rBuilder's rAPA interface and go to the Schedule Outbound Mirroring menu item. Then click on Mirror Now. This triggers the mirroring process. Check the logs to make sure that it has compelted succesfully.
Notification
Send an e-mail to on-update-announce@openbravo.com with OBUA-<yyyy-mm-dd> Openbravo ERP Cloud Appliance 2.50 as the subject and the following body:
Openbravo Update Advisory: <yyyy-mm-dd> Release Date: <month dd, year> (eg: July 22, 2009) Product: Openbravo ERP Cloud Appliance 2.50 Type: Maintenance updates/New features Importance: Low/Medium/High/Critical * Add xxxx to yyyy. * Fix issue when xxxx so that now yyyy. * Change xxxx's behavior so that now yyyy. * tomcat: Updated to 6.0.26. Added memory leak detection mechanism. Changelog: http://tomcat.apache.org/tomcat-6.0-doc/changelog.html Check for the complete changelog here: http://wiki.openbravo.com/wiki/ERP/2.50/Cloud_Appliance_-_Release_Notes#2.50-10-1 For more information on configuration and maintenance: http://wiki.openbravo.com/wiki/ERP/2.50/Professional_Subscription_Manual Copyright 2008-2011 Openbravo, S.L.U.