ChiliProject is not maintained anymore. Please be advised that there will be no more updates.

We do not recommend that you setup new ChiliProject instances and we urge all existing users to migrate their data to a maintained system, e.g. Redmine. We will provide a migration script later. In the meantime, you can use the instructions by Christian Daehn.

HowTo Release

This page briefly summarizes what needs to be done to release a new release:

Major Releases

Major releases follow a cycle of: unstable branch => beta => RC => final. Beta means "feature complete, but had open bugs". RC means "feature complete, all bugs that will be fixed have been fixed". Final is the official stable release.

  1. Checkout the unstable branch
  2. Merge the changes in the master branch in order to get any updates done there (use @--no-ff)
  3. Check that all of this releases' issues have been merged into the unstable branch. All issues should be Closed.
  4. Create a new release branch named after the release (See ChiliProject Repository)
  5. Update the locales with bundle exec rake locales:update
  6. Add/Update copyright headers with bundle exec rake copyright:update
  7. Fix trailing whitespace with bundle exec rake code:fix_line_endings
  8. Ensure we use UTF-8 source encoding everywhere with bundle exec rake code:source_encoding
  9. Update the doc/CHANGELOG.rdoc to list the changes
  10. Check that included docs are still correct: README.rdoc and doc/*.rdoc
  11. Run the test suite to make sure there are no errors
  12. Increment the major version and reset the minor and patch versions to 0: lib/chiliproject/version.rb
  13. Tag the latest code in git e.g git tag v1.0.0
  14. Create the release packages (see script below)
    1. Package up ChiliProject into a zip and tar.gz. Make sure no private configuration files are included
    2. Create MD5 checksum files for the zip and tar.gz files
    3. Upload the packages to the Files module
  15. Update some wiki pages:
  16. Add the version to the Affected Versions list
  17. Create a release announcement for the ChiliProject Blog
  18. Update IRC topic

Once the release is stablized, the following tasks are also done for the final release:

  1. Merge the changes in the release branch back into master
  2. Merge the changes in the master branch back into unstable

Minor Releases

  1. Checkout the master branch
  2. Check that all of this releases' issues have been merged into the mater branch. All issues should be Closed.
  3. Create a new release branch named after the release (See ChiliProject Repository)
  4. Update the locales with bundle exec rake locales:update
  5. Add/Update copyright headers with bundle exec rake copyright:update
  6. Fix trailing whitespace with bundle exec rake code:fix_line_endings
  7. Ensure we use UTF-8 source encoding everywhere with bundle exec rake code:source_encoding
  8. Update the doc/CHANGELOG.rdoc to list the changes
  9. Check that included docs are still correct: README.rdoc and doc/*.rdoc
  10. Run the test suite to make sure there are no errors
  11. Increment the minor version number and clear the patch number: lib/chiliproject/version.rb
  12. Merge the changes to the stable branch using --no-ff
  13. Tag the latest code in git e.g git tag v1.1.0
  14. Merge the changes in the release branch back into master
  15. Merge the changes in the master branch back into unstable
  16. Create the release packages (see script below)
    1. Freeze the current Rails version
    2. Package up ChiliProject into a zip and tar.gz. Make sure no private configuration files are included
    3. Create MD5 checksum files for the zip and tar.gz files
    4. Upload the packages to the Files module
  17. Update some wiki pages:
  18. Add the version to the Affected Versions list
  19. Create a release announcement for the ChiliProject Blog
  20. Update IRC topic

Stupid simple release script

Until the release process has been done a few times, here is a super simple script to automate the packaging part of it. Don't forget to check the package directory (unless you are also logged in as edavis ;))

 1#!/usr/bin/env ruby
 2version = ARGV[0]
 3
 4raise "Missing version in the form of 1.0.0" if version.nil? || version.empty?
 5
 6dir = '/home/edavis/dev/chiliproject/packages'
 7
 8system [
 9        "cd #{dir}",
10        "git clone git://github.com/chiliproject/chiliproject.git chiliproject-#{version}",
11        "cd chiliproject-#{version}/",
12        "git checkout v#{version}",
13        # "rake rails:freeze:edge RELEASE=2.3.5", # Getting a timeout on this server
14        "rake rails:freeze:gems", # Need to make sure Rails 2.3.5 is the latest gem installed
15        "rm -vRf #{dir}/chiliproject-#{version}/.git",
16        "cd #{dir}",
17        "tar -zcvf chiliproject-#{version}.tar.gz chiliproject-#{version}",
18        "zip -r -9 chiliproject-#{version}.zip chiliproject-#{version}",
19        "md5sum chiliproject-#{version}.tar.gz chiliproject-#{version}.zip > chiliproject-#{version}.md5sum",
20       ].join(' && ')
21
22puts "" 
23puts "** Release complete, upload the packages now and post a release annoucement" 
24