View source | Discuss this page | Page history | Printable version   

Release Management/Continuous Integration Vision

Warning.png   This document is still a work in progress. It may contain inaccuracies or errors.

This is a page which describes the current status of Continuous Integration aka CI and what are we working now to make it more useful for organization/business.

Contents

High Level Values of CI

CI helps you identify and handle risks. It will make things easier to evaluate and create report on the current status of project based on evidence.

How does CI reduce risks

Why should we CI, and reduce repetitive processes

CI helps generate deployable software

Approach We take

Let's aim for step-by-step growth. Lets not try to automate everything. We need to consider the cost of automation as well. An iterative approach is a good approach. Just like refactoring a lot of code at once isn't the best approach when writing software, but refactoring is required. Like ways we need automation but lets do it step by step. A possible steps for automation is

CI and YOU, ask yourself

On average, is everyone on your team committing code at least once a day?



We are ready

The above has proved to be a good success in terms of error detection in recent MP releases. I would say our foundation for builds.openbravo.com is ready and now we are ready to scale up.  In terms of CI, scaling up means more and more automation and in theory this is nothing but usable software after every commit. The key work for automation is this "I Build So Consistent"


I - Identify what to automate Developer(s) can get assistance from platform or from RM team
B - Build  "
S - Share http://wiki.openbravo.com/wiki/Mercurial_Manual_for_Openbravo_Developers
C - Continuous This is job of CI tool (in our case builds.openbravo.com)


Road Map

Milestone 0

Starting Date: April 2009 Ending Date: June 2009
Smart/Incremental build - 2.3x (Postgres)
Smart/Incremental build - 2.3x (Oracle)
Smart/Incremental build - 2.40 (Postgres)
Smart/Incremental build - 2.40 (Oracle)
Smart/Incremental build - main (Postgres)
Smart/Incremental build - main (Oracle)


Smart/Incremental build - pi (Postgres)
Smart/Incremental build - pi (Oracle)
Full build - 2.3x (Postgres)


Full build - 2.40(Postgres)
Full build - 2.40(Oracle)
Full build - main (Postgres)
Full build - main (Oracle)


Full build - pi(Postgres)
Full build - pi(Oracle)


Incremental Database consistency - main(Postgres)
Full Database consistency - main (Postgres)
Incremental Database consistency - pi (Postgres)
FullDatabase consistency - pi (Postgres)
Full Database consistency - 2.40(Postgres)
Module integrity test - pi
Module installation test - pi

MileStone 1

Starting Date: July 2009 Ending Date: Aug 2009
Performance test - 2.40(Postgres)
Smoke test - 2.3x (Postgres)
Smoke test - 2.3x (Oracle)
Smoke test - 2.40 (Postgres)
Smoke test - 2.40 (Oracle)
Smoke test - main (Postgres)
Smoke test - main (Oracle)
Smoke test - pi (Postgres)
Smoke test - pi (Oracle)

MileStone 2

Starting Date: Sep 2009 Ending Date: Oct 31 2009
Automatically promote code from pi to main
Create obx and make it available for partners
Create upgrade test which checks upgrade process from the last released MP to latest ready to be released obx.
Latest branch available as context for developers to test the functionality (tecnicia14)

MileStone 3

Starting Date: January 19th 2010 Ending Date: March 31st 2010
HIGH LEVEL TASK. IMPLEMENT CI FRAMEWORK FOR MODULES DEVELOPMENT - THIS MEANS SIMILAR TECHNOLOGIES AND TOOLS THAT WE HAVE FOR THE CORE ERP (WHICH IS ALSO A MODULE :-)) DEVELOPMENT PROCESS FOR ALL OTHER EXTENSION MODULES.
Build farm
Auto-tests farm: sanity checks (descriptions and so on), installation / uninstallation checks against various Openbravo configurations (Oracle, PostgreSQL, etc.), modules co-existence checks, functional checks.
Publication farm.
Not in the scope but to take care about during the system design - in future to give to Partners / Module developers possibility to use our modules development CI framework.

MileStone 4

Starting Date: April 1st 2010 Ending Date: May 31st 2010
HIGH LEVEL TASK. MAKE SURE THAT MODULES, PUBLISHED IN THE CR, ARE WORKING.
Check modules (builds and tests, taking them from the previous stage ) before publishing.
Check published modules (with a new MPs, new dependencies). Notify authors, mark modules with a special status visible for end-users (Forge, Exchange, MMC).
"Certified" by Openbravo for registered modules (modules which passed different levels of checks, on top could be functional testing) with a reflection of this status in the Forge, Exchange, MMC.

MileStone 5

Starting Date: January 1st 2010 Ending Date: February 28th 2010
Unit tests
Coding standards
Performance test 2.50

MileStone (not scheduled)

Starting Date: March 1st 2010 Ending Date:
 ??? Test that modules can co-exist ???
build the last released minor version and update until the last commit then build
build the last former major version (2.40 MPx) and update until last commit (pi) then build
promote ant diagnostic
Multiple jdk support (sun jdk, open jdk, etc)
Multiple environment test (windows, linux, solaris, freebsd)
Automated maintaince release or MP's
Automated appliance creation (OPS)
Latest build of availalbe as Amazon Machine Image (AMI)
Automated virtual image creation (XEN, Vmware, virtualbox)
Openbravo ERP Live CD (based on knoppix, ubuntu)
multiple web container (tomcat, jetty, websphere...)
test the packages (.deb) for ubuntu, or gentoo
 ??? Test that the modules work functionally ???

What is that you need to be doing ?

Look at the above mentioned test(s) and new features that we are planning to add. 
See if its gonna value add YOUR work. 
If NOT please WRITE back to sree {at} openbravo {dot} com or staff.rm {at} openbravo {dot} com with your comments / suggestion/ feedback.

If there are no suggestion, a reply with "you guys r0cks ! "  will be good motivation for the team.  :) Insert non-formatted text here

Retrieved from "http://wiki.openbravo.com/wiki/Release_Management/Continuous_Integration_Vision"

This page has been accessed 10,229 times. This page was last modified on 13 January 2010, at 17:43. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.