The Release Management and Engineering team is responsible of the release cycle of the Openbravo ERP project, focused on coordinating and improving the creation of official releases. It is also primarily responsible for many development tools and processes such as code reviews, the issue tracking system, source code management (SCM), continuous integration and inculcation of agile development practices.
These are the current active developers:
- Gorka Gil <gorka.gil at openbravo dot com> (ggi)
- Stefan Hühner <stefan.huehner at openbravo dot com> (huehner)
- Priya Muthukumar <priya.muthukumar at openbravo dot com> (priyam)
These are the retired developers:
- Jaime Torre (xeraf)
- Samudricka Murugadass (samatwork)
- Sreekanth Balakrishnan (gnuyoga)
- Harpreet Singh <harpreet at openbravo dot com> (harpreet)
- Juan Pablo Aroztegi <juanpablo.aroztegi at openbravo dot com> (iarwain)
|“||Be a tool provider for the Openbravo Team and its ecosystem: the community, users and partners. Train them and make sure they know how to utilize the best of these tools.||”|
The goals of Release Management are to continually improve the quality, timeliness and overall procedures for creating official Openbravo releases. This project is very much focused on ensuring that the initial quality of every official release is as high as possible.
To make this possible, it ensures that all the processes around this one do their task efficiently and in agile way: source code management (SCM), branching policies, code reviewing, continuous builds and tests, development practices for the engineering team and the product release cycle.
Release schedules and signing
Release status and schedules
Check the Release Life Cycle document for details on the Openbravo releases:
- List of Openbravo releases.
- Life Cycle.
- Support policies.
- Details on the individual release timelines and policies.
Release security and signing
All release media will have its DIGESTS file signed by one of the Release Management Team PGP keys listed on this page. The keys are available through the pgp.mit.edu keyserver. They can be used to verify that the media is, in fact, the media shipped by Openbravo and not from a potential attacker.
|Key ID||Key type||Key fingerprint||Key holder name||Creation date|
|BB41F3B0||1024-bit DSA||9C95 77BD D17C B71D 9DF9 A043 CF75 2665 BB41 F3B0||Gorka Gil||2009-09-29|
|CAEE046C||1024-bit DSA||6EB3 0A48 5A73 0CAF ADF8 D6EF 3166 4C79 CAEE 046C||Harpreet Singh||2009-07-16|
|9499E9BC||1024-bit DSA||8C13 B047 898D 90A0 AC20 102F 48EF 4430 9499 E9BC||Juan Pablo Aroztegi||2009-04-29|
|E04385B7||1024-bit DSA||7DBD B983 1856 497D 394D 52FF 9604 9E24 E043 85B7||Priya Muthukumar||2009-06-24|
|ED724FCE||1024-bit DSA||F6EA D5AC CC76 F666 2C14 4219 E055 3854 ED72 4FCE||Samudricka||2009-09-15|
|9F2B730D||1024-bit DSA||6F09 7C32 2640 77B9 657B F62E F5A8 D49D 9F2B 730D||Sreekanth Balakrishnan||2009-10-05|
|FFB6AA43||1024-bit DSA||3095 6AD1 5F19 5476 7122 ECEF 097F E819 FFB6 AA43||RM packaging bot||2009-10-09|
To obtain one of the public keys:
$ gpg --keyserver pgp.mit.edu --recv-keys <key id>
To verify the cryptographic signature:
$ gpg --verify <file.DIGESTS.asc>
What keeps us busy
The Release Engineering project aims at organizing, scheduling, coordinating and delivering the Openbravo ERP Maintenance Packs.
The roadmap and schedules are documented here
Continuous Integration (CI) addresses the need to continuously integrate and make sure that the health of our software is good. We have developed our build farm using Hudson. Visit our build farm in builds.openbravo.com.
Release automation and periodic builds
Our goal is to automate 100% of the release process. We use [builds.openbravo.com our builds system] for this purpose, in conjunction with some automation scripts.
We are in the process of creating a potential release our of every Mercurial changeset, based on the following logic:
- An specific code revisions passes a certain amount of builds and tests (more).
- All the changesets up to this revision that get promoted (merged) from pre-integration into the main repository.
- Build and sign the deliverables: source code tarball, Core OBX modules, Virtual Appliances.
Packaging and deployment
We deliver the Openbravo ERP releases in different flavors:
- Common to all releases: Source code tarball, Core OBX module (File and Central Repository update).
- Community appliance: VMware, Xen, QEMU, Parallels, VirtualBox and Amazon EC2.
- Professional appliance: CD/DVD ISO, VMware, Xen, VirtualBox, QEMU, Parallels and Amazon EC2. Update system, infrastructure maintenance and patch management.
There are 3 stages in every packaging method:
- Preparation: development of the initial version of the tool and the process. It's done once, but it may be rewritten depending on the project needs.
- Execution: it consists on releasing a deployment method once it's developed. This should evolve towards an automated task.
- Maintenance: little modifications and adjustments.
Source Code Management (Mercurial)
The SCM project aims to make the distributed coding process as fluid as possible. Currently Openbravo uses Mercurial for this task.
It involves the following tasks:
- Source code viewer (currently hgweb).
- Documentation (general usage, repositories structure).
- Policies (committing, branching).
- Statistics and metrics.
- Automatic commit notifications (Mailing lists, IRC).
Issue Tracking System (Mantis)
This project consists of the enhancements and maintenance of the Openbravo Issue Tracking System.
Online demo system
We aim to create a grid of fast and stable demo servers, ensuring that the live experience gives a good first impression and reflects the best of the product. This service offers the latest available stable version.
- America: two servers in Amazon EC2, USA.
- Europe: two servers in Amazon EC2, EU.
The following steps are followed to get the demo systems up and running.
- Maintain the demo servers, apply latest OS patches / OS security update.
- When the code base is updated (major/minor patches), push the changes to demo servers.
- Monitor the OS and the ERP for load, issues and possible challenges.
This project helps to identify, create and implement processes or products to efficiently manage the release of code and overall the engineering process. Also it helps to coordinate disparate source trees, projects, teams and components.
- Code reviews.
- Automatic code analyzers.
- Assigned code review tasks.
- Unit tests.
- Agile methodologies.
- Change management.
- Technical designs
- Metrics on the previous items.
The Openbravo development team uses Mumble for voice meetings.
How we get things done
We are an agile team, who follows scrum methodology and is dispersed in different continents. Few are from Europe and few from Asian Continents. We document most of our activities in wiki and the same is available here Most of the RM members like the interact in the traditional irc way and is available 24x7 at #openbravo in irc.freenode.net
To manage the scrum we use Google spreadsheet and the same is here
We normally have a two week sprint cycle and our stand up meetings are held at 11:00 CET / 14:30 IST.
More about Scrum here.
The Release Management related documentation is divided into 4 groups:
- IRC: #openbravo and #openbravo-rm at freenode.net
- Mailing List: release.management at openbravo dot com (subscribe)
To reach us for any queries please use our IRC channel in the Freenode network and also our mailing list.