Release process/en

General Notes
This release process description documents how a new LimeSurvey version is published. Since this process needs many steps it is important to distribute the knowledge about the release process to the project members for the following reasons:
 * If there is some kind of problem arising the project members will be better informed where to look and what might have gone wrong.
 * If the project member in charge of releases is on vacation, sick, busy or had a head-to-head meeting with a bus at 100mph the knowledge is available for any long- or short-time replacement person.

Difference between Full Releases and Plus Releases

 * Full Release are only to be done if there are big feature improvements. The change of the version indicates to people that there is something new - regarding to security fixes even there something very important has changed.
 * Plus Releases have been introduced to satisfy the need for quick releases, mostly to quickly release language updates and small bug-fixes. For future versions Plus Releases will be even more important as distributions like Linux Ubuntu do require a stable main version number - only the build/minor number may be changed to update the software during one release cycle of the distribution.

The Release Procedures
This release procedure describes the LS 1.7x release process though it only contains few 1.7x specific instructions. This document will be updated shortly after the release of LimeSurvey 2.x.

Plus Version Release Process Step-By-Step

 * 1) Update the change log

+For this download a version history from Subversion by using your favorite subversion tool. This history has to include all change since the last Plus version was release. Now open the file /docs/release_notes_and_upgrade_instructions.txt from the development version and update it accordingly. You can see the exact form by looking at the change log of former versions in this file.
 * 1) Commit the updated change log to repository

+When releasing a new plus version, in the commit message box enter "Stable Plus release".
 * 1) Update your local development copy

+Make sure you have all the latest files from the development repository. Make sure all files are in green state.
 * 1) Export to a local copy 
 * 2) Create a new directory somewhere on your hard disk, name it limesurveyVVVplus_buildBBBB_YYYYMMDD where VVV is the version number without the dot (for example 170), BBBB is the build number (this is the latest revision number from the last commit) and YYYMMDD is todays date.
 * 3) Your subversion tool has a function named 'Export' where you can create a local copy of your development version to a new directory - without all the hidden subversion sub-directories and files. Use this function to export your development version to that directory.
 * 4) Edit common.php

+Now edit commmon.php in your local copy and put the same build-number at line 20 into the source.
 * 1) Zip up the package

+Now zip up the created directoy to the following archive formats:
 * 1) ZIP (.zip extension)
 * 2) 7-ZIP (.7z extension)
 * 3) Tar GZIP (.tar.gz extension)
 * 4) Tar BZ2  (.tar.bz2 extension)
 * 5) Upload to sourceforge.net

+Connect by SFTP to the frs.sourceforge.net server by using your Sourceforge Account (either use the sftp command line on Linux or the WinSCP client for Windows)  and upload these files to /uploads/.
 * 1) Log into sourceforge.net and go to the sf.net LimeSurvey project page
 * 2) For the following steps you will need at least project publishing rights on sf.net.
 * 3) Choose Admin/File Releases from the top menu
 * 4) Click on Edit Releases for the Stable Package

+Now you get a a list of releases. Search for the Late Stable Plus release package. We will not create a new one, just update the existing one with the new files
 * 1) Click on 'Edit this release' for the latest Stable Plus Package
 * 2) Update the release package information
 * 3) Update the release date
 * 4) Update the Change log (and Readme if necessary)
 * 5) Remove the old files from the package one by one.
 * 6) Add the uploaded files to the package.
 * 7) Set the description for each added file one by one.
 * 8) Send a notification to users monitoring the package

+Do this after you are sure everything is right with the package.
 * 1) Go to the bugtracker http://bugs.limesurvey.org and close all bugs that are in 'Resolved' status.

+Also make sure you close all resolved minor feature enhancements if there were any.
 * 1) Go to http://freshmeat.net and submit an update to the LimeSurvey project. This is important!