Difference between revisions of "Development Process"
(→geWorkbenchComponents) |
|||
(23 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | == == | ||
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'''. | 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'''. | ||
Line 4: | Line 5: | ||
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. | 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. | ||
+ | |||
+ | ==== Interested in geWorkbenchCore Development? ==== | ||
+ | |||
+ | Subscribe to the [[Mailing List]]. You do not need to subscribe to submit a patch or two, but if you would like to be involved with development on a regular basis, you may want to consider subscribing. | ||
+ | |||
+ | ==== Proposing a Bug or Feature Enhancement ==== | ||
+ | |||
+ | Enter an issue in the geWorkbenchCore JIRA Issue Tracker. | ||
+ | |||
+ | We value your support there. We can't fix bugs we don't know about! | ||
+ | |||
+ | <u>JIRA usage guidelines</u> | ||
+ | |||
+ | Before submitting an issue, please: | ||
+ | |||
+ | * Do your due-diligence to verify the bug does in fact exist. | ||
+ | * Search the issue tracker to verify there is no existing issue reporting the bug you've found. | ||
+ | * Consider tracking down the bug yourself in the geWorkbenchCore codebase, and submitting a patch along with the bug report. This is a great time saver for the core developers and helps ensure the bug will be fixed quickly. | ||
+ | |||
+ | Enhancement requests for new features are also welcome. The more concrete and rationale the request is, the greater the chance it will incorporated into future geWorkbenchCore releases. | ||
== geWorkbenchComponents == | == geWorkbenchComponents == | ||
Line 12: | Line 33: | ||
Development teams can either take advantage of our CVS infrastructure, or host the component in their own repository. | Development teams can either take advantage of our CVS infrastructure, or host the component in their own repository. | ||
+ | |||
+ | Developers here are expected to checkout a copy of the development version of the geWorkbenchCore component and test integration of their component plugin by: | ||
+ | |||
+ | * Adding their JUnit test cases to AllTests. | ||
+ | * Running AllTests and making sure all tests pass safely. | ||
+ | * Communicating with development team the desire for release, the .gear files, and their unit test report. | ||
===== Using Project CVS ===== | ===== 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) | + | 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). |
===== Using Independent CVS ===== | ===== 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. See [[Plugin | + | 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. See [[Plugin certification checklist]] for more information on .gear file preparation and the versioning guidlines below. |
=== Open Source Component === | === Open Source Component === | ||
− | + | Open source component developers can take 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). | |
+ | |||
+ | Developers here are expected to checkout a copy of the development version of the geWorkbenchCore component and test integration of their component plugin by: | ||
+ | |||
+ | * Adding their JUnit test cases to AllTests. | ||
+ | * Running AllTests and making sure all tests pass safely. | ||
+ | * Communicating with development team the desire for release, and the .gear files. | ||
+ | |||
+ | The tests will be included in the test suite AllTests by the core development team and a continuous build process will run the entire test suite. | ||
= Versioning Guidelines = | = Versioning Guidelines = | ||
Line 44: | Line 79: | ||
Modifications to existing components will be packaged in the next minor release. | Modifications to existing components will be packaged in the next minor release. | ||
− | |||
− |
Latest revision as of 12:39, 26 January 2006
Contents
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.
Interested in geWorkbenchCore Development?
Subscribe to the Mailing List. You do not need to subscribe to submit a patch or two, but if you would like to be involved with development on a regular basis, you may want to consider subscribing.
Proposing a Bug or Feature Enhancement
Enter an issue in the geWorkbenchCore JIRA Issue Tracker.
We value your support there. We can't fix bugs we don't know about!
JIRA usage guidelines
Before submitting an issue, please:
- Do your due-diligence to verify the bug does in fact exist.
- Search the issue tracker to verify there is no existing issue reporting the bug you've found.
- Consider tracking down the bug yourself in the geWorkbenchCore codebase, and submitting a patch along with the bug report. This is a great time saver for the core developers and helps ensure the bug will be fixed quickly.
Enhancement requests for new features are also welcome. The more concrete and rationale the request is, the greater the chance it will incorporated into future geWorkbenchCore releases.
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.
Developers here are expected to checkout a copy of the development version of the geWorkbenchCore component and test integration of their component plugin by:
- Adding their JUnit test cases to AllTests.
- Running AllTests and making sure all tests pass safely.
- Communicating with development team the desire for release, the .gear files, and their unit test report.
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).
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. See Plugin certification checklist for more information on .gear file preparation and the versioning guidlines below.
Open Source Component
Open source component developers can take 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).
Developers here are expected to checkout a copy of the development version of the geWorkbenchCore component and test integration of their component plugin by:
- Adding their JUnit test cases to AllTests.
- Running AllTests and making sure all tests pass safely.
- Communicating with development team the desire for release, and the .gear files.
The tests will be included in the test suite AllTests by the core development team and a continuous build process will run the entire test suite.
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.