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.
- Checkout the unstable branch
- Merge the changes in the master branch in order to get any updates done there (use @--no-ff)
- Check that all of this releases' issues have been merged into the unstable branch. All issues should be Closed.
- Create a new release branch named after the release (See ChiliProject Repository)
- Update the locales with
bundle exec rake locales:update
- Add/Update copyright headers with
bundle exec rake copyright:update
- Fix trailing whitespace with
bundle exec rake code:fix_line_endings
- Ensure we use UTF-8 source encoding everywhere with
bundle exec rake code:source_encoding
- Update the
doc/CHANGELOG.rdoc
to list the changes - Check that included docs are still correct:
README.rdoc
anddoc/*.rdoc
- Run the test suite to make sure there are no errors
- Increment the major version and reset the minor and patch versions to 0:
lib/chiliproject/version.rb
- Tag the latest code in git e.g
git tag v1.0.0
- Create the release packages (see script below)
- Package up ChiliProject into a zip and tar.gz. Make sure no private configuration files are included
- Create MD5 checksum files for the zip and tar.gz files
- Upload the packages to the Files module
- Update some wiki pages:
- Requirements
- Sidebar
- Release Schedule
- Installation as required
- Add the version to the Affected Versions list
- Create a release announcement for the ChiliProject Blog
- Update IRC topic
Once the release is stablized, the following tasks are also done for the final release:
- Merge the changes in the release branch back into master
- Merge the changes in the master branch back into unstable
Minor Releases¶
- Checkout the master branch
- Check that all of this releases' issues have been merged into the mater branch. All issues should be Closed.
- Create a new release branch named after the release (See ChiliProject Repository)
- Update the locales with
bundle exec rake locales:update
- Add/Update copyright headers with
bundle exec rake copyright:update
- Fix trailing whitespace with
bundle exec rake code:fix_line_endings
- Ensure we use UTF-8 source encoding everywhere with
bundle exec rake code:source_encoding
- Update the
doc/CHANGELOG.rdoc
to list the changes - Check that included docs are still correct:
README.rdoc
anddoc/*.rdoc
- Run the test suite to make sure there are no errors
- Increment the minor version number and clear the patch number:
lib/chiliproject/version.rb
- Merge the changes to the stable branch using
--no-ff
- Tag the latest code in git e.g
git tag v1.1.0
- Merge the changes in the release branch back into master
- Merge the changes in the master branch back into unstable
- Create the release packages (see script below)
- Freeze the current Rails version
- Package up ChiliProject into a zip and tar.gz. Make sure no private configuration files are included
- Create MD5 checksum files for the zip and tar.gz files
- Upload the packages to the Files module
- Update some wiki pages:
- Requirements
- Sidebar
- Release Schedule
- Installation as required
- Add the version to the Affected Versions list
- Create a release announcement for the ChiliProject Blog
- 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