This page last changed on May 18, 2005 by orogers.

Open Source

CruiseControl.NET is an Open Source project. This means it is free to use, and the source code is also available and distributable under a few conditions. Our License is very similar to the Apache & BSD licenses.

Project Management

The CruiseControl.NET source trees and email lists are hosted on SourceForge under the ccnet project.

We don't use Sourceforge for bug and feature tracking, instead look at our Issues page.

At ThoughtWorks we believe in lightweight methodologies. This fits in well with an open source project so project decisions tend to be made in an ad-hoc fashion, normally by some kind of consesus on the CCNet-Devel mailing list . You can search through the mailing list archives on GMane.

CruiseControl.NET is written by many volunteers - see the Project Team.

Release Version Numbers

Released versions have the following numbering:

  • Major.minor.revision.buildnumber, where
    • We plan on updating Major versions only on a major milestone in the project. At the present time we have not reached what we want for a 'Version 1' milestone, so we remain as version 0.x.y.z
    • We update minor versions when there is a significant improvement in the application, or a breaking change in configuration since the previous release. When updating the minor version number, we reset the revision to zero.
    • We use revision numbers of more than 0 when we do not want to update the minor version number, but do want to make a new release. This may be due to some bugfixes, minor updates, etc. We never just increase the revision number if there has been a breaking change
    • buildnumber is the CCNetLive build number. We never reset this. A buildnumber of 0 implies a build that was produced outside of our Continuous Integration environment

Our Continuous Integration process creates a build label that includes the Major.minor.revision part. We update this as late as possible before a release, or release candidate, for a new release version.

Unreleased versions have the following names:

  • Next - The next release, where the final release name has not yet been set
  • Soon - Issues that we hope to resolve soon
  • Medium Term - Issues that we hope to resolve somewhere between 'Soon' and 'Eventually'
  • Eventually - Issues that we hope to resolve at some point in the future, but after the next major release

All unresolved Jira issues should be assigned to one of these versions by a CruiseControl.NET administrator. Issues should only be moved to Next if they have been resolved since the last release, or are an unresolved blocker for the next release.

Submitting updates

We welcome patches and updates to the code and documentation for CruiseControl.NET. If you want to do this, the best way is to email the ccnet-devel list with your change.

The format of your submission ideally should be a description of what you have done, along with an associated CVS patch (if you don't know how to create a CVS patch, you probably want to use Eclipse as your CVS client since it has a good GUI for creating them). If your patch includes files > 40kb, please don't send it to the list. Instead, email the list with a description of your patch, and one of the admin team will reply off-list so that you can send the files just to one person.

If you do want to make a submission, please make sure you read up about our Contributor License Agreement.

Release Process

We use CCNetLive to produce new distributions of CCNet every time a CCNet developer checks in new code. You can download the source or binary packages from here .

We also periodically produce stable releases that are posted on the SourceForge download site . The process of producing new stable releases is as follows:

  1. Rename the release in Jira to be a valid release name
  2. Create new release notes using the CCNet Jira .
  3. Add a new page to Confluence (child of Download) to contain generated release notes.
  4. Update the CruiseControl.NET Live version number for CCNet by editting the ccnet.config file.
  5. Export Confluence space as Html. Extract the exported zip into your local ccnet\docs folder, and then check the modified Html files into CVS. This way the next CCNetLive build will package the latest documentation from Confluence.
  6. Tag all source in the CCNet CVS module with the new version number (e.g. ccnet_0_6_final)
  7. Download the source and binary distributions from CCNetLive that contain the newly packaged documentation
  8. Upload the source and binary distributions to SourceForge and go through the SourceForge release process. Rename the distribution files to include the version number! (Distributions with the same filenames can cause problems for SourceForge mirrors).
  9. Add news of the release on SourceForge and the Confluence news blog.
  10. Email the CCNet users list to notify the users that the new release is ready.
  11. Set the currently released version to "Released" on the Jira.
  12. Create a new 'Next' unreleased version in Jira and schedule it immediately before 'Soon'
Document generated by Confluence on Jun 26, 2005 17:22