Devel Guide

Cutting a release

The idea beyond the open source philosophy is "realease soon, release often" so all developers and modules managers are invited to release frequently to allow users and contributors to report errors, bugs and improvements on the latest code base.

To perform a release the suggested process is the following:

  1. open a shell prompt and cd to your module project folder
  2. ensure your module project working copy is up to date issuing svn update
  3. check your module project release has a chance to succeed and is ready to be released issuing mvn install site
  4. open the doc/site/changes.xml and update the release informations with the release date and removing the SNAPSHOT suffix from the release version, if needed
  5. issue the mvn release:prepare to create the tag and update the POM
    • this step will fail if you have ANY uncommitted modification
    • ONCE COMPLETED THIS STEP CANNOT BE REPEATED
  6. open another command line and issua a request for a shell creation on SourceForge using the command ssh -t your_user_name,ten.egrofecruos.llehs|bewtrams#ten.egrofecruos.llehs|bewtrams create, provide your SourceForge password and wait for the connection to be established:
    • this procedure can take some time
    • if it is your very first time you connect you should permanently accept the host key when prompted
    • Windows users should a Unix like SSH implementation like SSHWindows as the commonly used Putty doesn't stores the host keys properly
  7. go into the project repository folder cd /home/groups/s/sm/smartweb/htdocs/releases/net/smartlab/web/ and check you have the file system permissions to perform the release
  8. issue the final mvn release:perform command to generate the release artifacts
    • many problems can arise at this stage, like missing permissions on files or connection timeout
  9. connect to the SourceForge File Manager (https://sourceforge.net/project/admin/explorer.php?group_id=163839) and:
    1. create a release folder under your own module folder
    2. select the release folder (say smartweb-registry/0.9.1) as upload target (right click on the folder and select Upload here)
    3. upload the generated artifacts which should be located under the etc/out/checkout/etc/out or the etc/out/checkout/etc/site folders
      • the binary archive (say smartweb-registry-0.9.1.jar)
      • the source archive (say smartweb-registry-0.9.1-sources.jar)
      • the javadocs archive (say smartweb-registry-0.9.1-javadoc.jar)
      • the full archives containing binaries, sources, javadocs and site (say smartweb-registry-0.9.1-all.tgz, and smartweb-registry-0.9.1-all.zip)
      • the PDF user manual, if available (say smartweb-registry-0.9.1-manual.pdf)
    4. rename the etc/out/checkout/etc/announcement.vm to announcement.txt and upload that file
    5. left mouse click on the uploaded announcement.txt file from the tree and check the Release Note flag
    6. left mouse click on the uploaded generated artifacts from the tree and select the announcement.txt as the file release notes
  10. go on the command line and issue mvn site site:deploy to update the project/module web site
  11. connect to the SourceForge News System (https://sourceforge.net/news/submit.php?group_id=163839) and publish the release new using the contents of the etc/out/checkout/etc/announcement.vm file as the news body
  12. send an email to the developers (ten.egrofecruos.stsil|leved-bewtrams#ten.egrofecruos.stsil|leved-bewtrams) and users (ten.egrofecruos.stsil|resu-bewtrams#ten.egrofecruos.stsil|resu-bewtrams) mailing lists using the etc/out/checkout/etc/announcement.vm file as body

The process usually takes about five minutes excluding the time needed to upload artifacts.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.