ITK/Rules for CVS Contributors
This page is intended for developers who have gained CVS write access to the toolkit.
It collects many of the behavior guidelines that have been developed in the ITK community over the years. By stating the rules here we are hopping to make easier for new CVS contributor to know how to perform different tasks.
Contributing New Classes
New classes are contributed through the Insight Journal
Developers with CVS write access should not commit new files to the toolkit directly. All new classes must be submitted first as contributions to the Insight Journal
After a release is made, a single developer, the 'Gatekeeper' is designated as the only one allowed to commit code changes to the branch.
The code changes in a branch are subject to the following rules
- Only bug fixes should be committed
- The bug fix should have been already demonstrated in the main CVS trunk in at least a Nightly Dashboard build with multiple platforms
- The bug must be logged in the bugtracker as a bug specific to that release branch, and must be assigned to the Gatekeeper
- The Gatekeeper must maintain a Nightly submission to the Dahsboard for that specific release branch.
- The Gatekeeper will test the bug fix in the branch, by submitting an Experimental build
- After the Experimental build proves to be successful, the Gatekeeper will commit the changes, making sure that a branch tagged CVS checkout is used.
- The commit CVS message must include the bug number so that in the future, developers can refer to the bug tracker for an explanation on the justification for these changes.
- After committing the changes, the Gatekeeper must check with the developers list on whether that changes (or the cumulation of previous changes) justify to tag a patch version of the release branch.
- If it does, then the Gatekeeper will tag the branch with the appropriate patch number, will generate new tarballs and will post them in Sourceforge and in the FTP directory at Kitware.
- At that point the Gatekeeper will close the bug entry in the bugtracker.