Difference between revisions of "Development Process"

(Versioning Guidelines)
(Versioning Guidelines)
Line 29: Line 29:
 
Released version numbers are based on the core.  For instance, a download of version 3.1 could contain:
 
Released version numbers are based on the core.  For instance, a download of version 3.1 could contain:
  
geWorkbenchCore-3.1.jar
+
* geWorkbenchCore-3.1.jar
geWorkbenchComponentA-1.2.jar
+
* geWorkbenchComponentA-1.2.jar
geWorkbenchComponentB-1.5.jar
+
* geWorkbenchComponentB-1.5.jar
  
 
== Core ==
 
== Core ==

Revision as of 11:17, 26 January 2006

The geWorkbench CVS source tree comprises 2 modules: geWorkbenchCore and geWorkbenchComponents. geWorkbenchCore contains "framework" code which under normal circumstances component developers will not have to modify, and geWorkbenchComponents contains components that can be one of two types, closed source or open source.

geWorkbenchCore

Component developers (and users) can checkout a copy of the core, view the source, make changes locally, and submit patches or feature requests to the core development team. See our JIRA for more information on submitting patches, as well as coding standards used.

geWorkbenchComponents

There are two types of component development, closed source and open source.

Closed Source Component

Development teams can either take advantage of our CVS infrastructure, or host the component in their own repository.

Using Project CVS

This option allows taking advantage of our existing CVS infrastructure and also working with the development version of the geWorkbenchCore module (for the latter consultation with the core development team is recommended). Under this model a subdirectory for the new component will be created within geWorkbenchComponents and CVS accounts will be issued to the members of the component development team. All developers in that team will become members of a new Unix group which will own the subdirectory, and the rest of the world will not have read or write access to this directory (this is differnent from the open source component development). <AF>Proceed to describe how they can use our existing build scripts as well as how they can submit their components for "official" release</AF>.

Using Independent CVS

Under this model component developers are responsible for setting up their own development environment as well as setting up and maintaining their own cvs repository. The geWorkbench SDK (which contains jar files for the core and components modules) will be used in this case. The SDK contains instructions explaining how to setup a local development environment as well as ant scripts for building component code and for packaging components into a .gear archive file, appropriate for distribution through the geWorkbench component repository. When the component is ready for release the .gear file should be communicated to the geWorkbench team which will then enter it in the component repository <AF>Add a bit here about the component certification process</AF>.

Open Source Component

This allows taking advantage of our existing CVS infrastructure and also working with the development version of the geWorkbenchCore module (for the latter consultation with the core development team is recommended). Under this model a subdirectory for the new component will be created within geWorkbenchComponents and CVS accounts will be issued to the members of the component development team. All developers in that team will become members of a new Unix group which will own the subdirectory (the rest of the world will have read-only rights). <AF>Proceed to describe how they can use our existing build scripts as well as how they can submit their components for "official" release</AF>.

Versioning Guidelines

Released version numbers are based on the core. For instance, a download of version 3.1 could contain:

  • geWorkbenchCore-3.1.jar
  • geWorkbenchComponentA-1.2.jar
  • geWorkbenchComponentB-1.5.jar

Core

  Core x.x.[x] -> [x]: bug removals
  Core x.[x].x -> [x]: new minor features, deprecated APIs
  Core [x].x.x -> [x]: new major features, cleaning APIs, no backward compatibility

Components

Subject to approval, new components will be packaged in the next major release of the core.

Modifications to existing components will be packaged in the next minor release.

NOTE: Closed source component developers must submit their test suite and test script so we can run the tests before inclusion in the release.