Caravel Release Process
Preparing for the release
- Make sure all new features and bugfixes are noted in the CHANGELOG. Also, make sure tracker items on Sourceforge are closed.
- Date the CHANGELOG, and remember to cvs commit your changes.
- Create changescripts to update any data that has changed format.
Packaging the release
- Update the version numbers. (Remember to cvs commit your changes!)
- At the top of core/Config.php
- In VERSION
- Note on version numbers: Most releases should increment the minor number (e.g. 3.1 goes to 3.2, 3.9 goes to 3.10, etc). Increases in the major number (e.g. 3.x to 4.x) are reserved for major changes in the code structure. A third number may be added (e.g. 3.2.1) for releases that correct an urgent issue in a just-released version.
- Update the installer (install.sh).
- Add the new version number.
- Add a block of code to call any changescripts that need to run. NOTE: Even if there are no changescripts, you must create an empty block for the new version.
- Tag the new release in cvs.
cvs rtag caravel-3_2 caravel
- (Periods are not allowed in cvs tags, so we use an underscore instead.)
If you make a release and then discover a horrible error that must be corrected, use the -F option to cvs rtag to update the tag for the updated file:
cvs rtag -F caravel-3_2 caravel/path/to/file
- Create the compressed packages.
cvs export -r caravel-3_2 caravel tar cvzf caravel-3.2.tar.gz caravel tar cvjf caravel-3.2.tar.bz2 caravel
(cvs export is like checkout, but doesn't create CVS directories.)
- Upload the packages to Sourceforge.
ftp upload.sourceforge.net # (login as anonymous; any password will work) cd incoming put caravel-3.2.tar.gz put caravel-3.2.tar.bz2 quit
- Go to the File Releases admin tool in Sourceforge and add the files you just uploaded.
- When pasting in the Changelog, make sure you check the box to preserve formatting. This will add a <pre> tag so that it does not get lumped into one paragraph.
- At the end of the process, be sure to press the button to notify people who are "watching" Caravel of the new release.
Publicizing the release
- Update caravelcms.org.
- Update the links to download from sourceforge.
- Update the version number on the home page.
- Add a blurb on the News page, and on the RSS feed.
- Update documentation (especially the Changelog and Installation instructions).
- Submit a news item on the Sourceforge project.
- The title should look like: Caravel CMS version 3.2 released
- The release should stick to the following format pretty closely. (I believe doing so increases the chance of being featured on Sourceforge's home page.)
The Caravel CMS team is excited to announce the release of Caravel CMS version 3.2. Caravel is a modular, enterprise-level Content Management System with an intuitive user interface, designed to allow non-technical users to maintain website content. Caravel allows admins to centrally maintain thousands of sites off one code-base. Version 3.2 introduces a template import/export tool and an account registration tool, in addition to various user interface improvements and bugfixes. Download: http://prdownloads.sourceforge.net/caravel/caravel-3.2.tar.bz2 Changelog: http://www.caravelcms.org/Download/changelog Project Home Page: http://www.caravelcms.org/ Sourceforge Project: http://www.sourceforge.net/projects/caravel/
- Add the new release to Freshmeat.  You need to summarize the most important changes and update the download links.
- Send a release announcement to the caravel-announce mailing list. Caravel-announce is a moderated list, so you will have to log in to the list admin page  and add yourself as a moderator. Then simply e-mail to caravel-announce AT mennonite2.net using the following template. Just replace the things in [brackets].
Caravel [VERSION] has just been released. The focus of this release is [summarize the changes]. As usual, a number of minor bugfixes have also been incorporated. Download: http://prdownloads.sourceforge.net/caravel/caravel-[VERSION].tar.bz2 Changelog: http://www.caravelcms.org/Download/changelog Project Home Page: http://www.caravelcms.org/ Sourceforge Project: http://www.sourceforge.net/projects/caravel/ Here is the full list of changes from version [OLD VERSION] to [NEW VERSION]: [paste the new part of the Changelog here]
TODO: We should move this list so that it is under the caravelcms.org domain.