Propel Release Process

This is a description of the steps to make an official Propel release.

Step 1: Update Trac

  • Using the Trac Admin interface add a milestone for the next version (e.g. if version being release is 1.3 then add 1.3.1 to capture outstanding 1.3 bugs -- maybe 1.4 too?)
  • Review open tickets for the targeted release milestone (report:3). (High priority / critical problems probably should be fixed pre-release.)
  • Open tickets should be moved to the new milestone -- either the next patch release or next minor release depending on severity. This essentially "releases" the version in Trac.

Step 2: Run Unit Tests

  • To make sure everything is ready for release, run the unit test suite. I try to do this on at least mysql and postgresql just to confirm that no recent commits messed anything up. See wiki:Development/Guidelines/WritingUnitTests for the overview on running tests.

Step 3: Tag in SVN

Next it's time to tag in SVN. This can be done using a graphical tool, or of course, on the commandline.

# svn copy http://svn.phpdb.org/propel/branches/1.3 http://svn.phpdb.org/propel/tags/1.3.0

It's also important to update the version in the default.properties file and the state in the in pear build directories in the tag. I you have a full propel source tree checkout, just run svn update, or you can also check out and then recommit just the tag:

# svn co http://svn.phpdb.org/propel/tags/1.3.0 propel-1.3.0

1. Change the version in generator/default.properties

# ...
propel.version = 1.3.0

1. Change the state in generator/pear/build-pear-package.xml to appropriate state ('alpha', 'beta', 'stable')

   <property name="state" value="stable" />

1. Change the state in runtime/pear/build-pear-package.xml to appropriate state ('alpha', 'beta', 'stable')

   <property name="state" value="stable" />

1. Commit the changes

# svn commit -m "Updating version and state for release"

Step 4: Export the Tag for Package

# svn co http://svn.phpdb.org/propel/tags/1.3.0 propel-1.3.0

Clean out the svn information from the release:

# find . -type d -name ".svn" | xargs rm -rf

Step 5: Create the "Full" Packages

# tar zcvf propel-1.3.0.tar.gz propel-1.3.0
# tar jcvf propel-1.3.0.tar.bz2 propel-1.3.0
# zip -r propel-1.3.0.zip propel-1.3.0

Step 6: Create the PEAR Packages

# cd propel-1.3.0
# phing -f generator/pear/build-pear-package.xml -Dversion=1.3.0
# phing -f runtime/pear/build-pear-package.xml -Dversion=1.3.0

The generated PEAR packages are now located here:

  • generator/pear/build/propel_generator-1.3.0.tgz
  • generator/pear/build/propel_runtime-1.3.0.tgz

Step 7: Upload PEAR Packages

  • Navigate to the PEAR channel admin page.
  • For both the runtime and the generator packages, click the "Upload new Release" button to upload the built release package.

Verify the PEAR packages by installing form the channel.