Requirements
You have to be an administrator for this project. If not, you may not perform any releases.
Preparation
Prepare all the bug fixes etc. on either the 'develop' or 'feature/XXX' branches. Switch to the 'develop' branch.
$> git status # On branch develop nothing to commit, working directory clean
The example uses the release of version 1.0 with the next one being 1.1-SNAPSHOT. Adjust these numbers as needed.
Start Release
Start Release Branch
Do the following command to start the release branch.
$> export VERSION=1.0 $> git flow release start v$VERSION
Optionally, check dependencies and plugin versions. Decide whether to actually update them or not.
$> mvn versions:display-dependency-updates => to show, which dependencies have updates $> mvn versions:use-latest-versions => to update all dependencies
Now set the new version to be released (commonly by removing -SNAPSHOT from the version name).
$> mvn versions:set -DnewVersion=$VERSION $> mvn versions:commit $> git commit -am "preparing release of v$VERSION"
Finally, you can do more minor fixes and commit them to the release branch.
Clean Up Destination & Deploy JAR and Site
You will want to clean up the destination files on the sourceforge servers. To do so, start a shell at sf.net and do the following (replacing with your user name).
$> ssh -t lilalinda,latextrack@shell.sf.net create Requesting a new shell for "lilalinda" and waiting for it to start. queued... creating... starting... This is an interactive shell created for user lilalinda,latextrack. Use the "timeleft" command to see how much time remains before shutdown. Use the "shutdown" command to destroy the shell before the time limit. For path information and login help, type "sf-help". -bash-3.2$ rm -rf /home/project-web/latextrack/htdocs/* -bash-3.2$ rm -rf /home/frs/project/latextrack/LTC/1.0 -bash-3.2$ mkdir /home/frs/project/latextrack/LTC/1.0 <LATER: copy README.txt?>
Leave the shell open in order for the deployment through Maven to succeed.
Next, we run the Maven build system to deploy the JAR file and site files to sourceforge.
$> mvn clean deploy site site:deploy
Finish Release Branch
After the upload, finish the release branch. During the finishing of the release, you can accept the default commit messages about merging and you want to supply a tag message.
$> git flow release finish v$VERSION
Then, make sure to be back on the 'develop' branch to bump the version number and propagate this to the remote branch.
$> git checkout develop # this may not be necessary $> mvn versions:set -DnewVersion=1.1-SNAPSHOT $> mvn versions:commit $> git commit -am "bumping next release number to v1.1-SNAPSHOT" $> git push origin develop
Shutdown Shell
Finally, close the shell at sf.net.
-bash-3.2$ shutdown Requesting that your shell be shut down. This request will be processed soon. -bash-3.2$ Broadcast message from root (Wed Dec 12 20:50:46 2012): The system is going down for system halt NOW! Connection to shell-24002 closed by remote host. Connection to shell-24002 closed. Connection to shell.sf.net closed.