This document describes briefly the recommended procedure of releasing a new version of SimCRS using a Linux development machine and the SourceForge project site.
The following steps are required to make a release of the distribution package.
Clone locally the full Git project:
cd ~ mkdir -p dev/sim cd ~/dev/sim git clone git://simcrs.git.sourceforge.net/gitroot/simcrs/simcrs simcrsgit cd simcrsgit git checkout trunk
Switch to the release branch, on your local clone, and merge the latest updates from the trunk. Decide about the new version to be released.
cd ~/dev/sim/simcrsgit git checkout releases git merge trunk
Update the version in the various build system files, replacing the old version numbers by the correct ones:
vi CMakeLists.txt vi autogen.sh vi README
Update the version, add some news in the NEWS
file, add a change-log in the ChangeLog
file and in the RPM specification files:
vi NEWS vi ChangeLog vi simcrs.spec
Commit the new release:
cd ~/dev/sim/simcrsgit git add -A git commit -m "[Release 0.5.0] Release of the 0.5.0 version of SimCRS." git push
Create the distribution packages using the following command:
cd ~/dev/sim/simcrsgit git checkout releases rm -rf build && mkdir -p build cd build export INSTALL_BASEDIR=/home/user/dev/deliveries export LIBSUFFIX_4_CMAKE="-DLIB_SUFFIX=64" cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_BASEDIR}/simcrs-0.5.0 \ -DWITH_STDAIR_PREFIX=${INSTALL_BASEDIR}/stdair-stable \ -DWITH_AIRRAC_PREFIX=${INSTALL_BASEDIR}/airsched-stable \ -DWITH_AIRRAC_PREFIX=${INSTALL_BASEDIR}/airrac-stable \ -DWITH_RMOL_PREFIX=${INSTALL_BASEDIR}/rmol-stable \ -DWITH_RMOL_PREFIX=${INSTALL_BASEDIR}/airinv-stable \ -DWITH_RMOL_PREFIX=${INSTALL_BASEDIR}/simfqt-stable \ -DCMAKE_BUILD_TYPE:STRING=Debug -DINSTALL_DOC:BOOL=ON \ ${LIBSUFFIX_4_CMAKE} .. make check && make dist make install
This will configure, compile and check the package. The output packages will be named, for instance, simcrs-0.5.0.tar.gz
and simcrs-0.5.0.tar.bz2
.
In order to update the Web site files, either:
cd ~/dev/sim/simcrsgit/build git checkout releases rsync -aiv ${INSTALL_BASEDIR}/simcrs-0.5.0/share/doc/simcrs-0.5.0/html/ \ your_sf_user,simcrs@web.sourceforge.net:htdocs/where
-aiv
options mean:-a
: archive/mirror mode; equals -rlptgoD
(no -H
, -A
, -X
)-v
: increase verbosity-i
: output a change-summary for all updatesdoc/html
), rather than the directory itself, has to be copied into the content of the target directory.Optionally, generate the RPM package (for instance, for Fedora/RedHat):
cd ~/dev/sim/simcrsgit/build git checkout releases make dist
To perform this step, rpm-build, rpmlint and rpmdevtools have to be available on the system.
cp ../simcrs.spec ~/dev/packages/SPECS \ && cp simcrs-0.5.0.tar.bz2 ~/dev/packages/SOURCES cd ~/dev/packages/SPECS rpmbuild -ba simcrs.spec cd ~/dev/packages rpmlint -i SPECS/simcrs.spec SRPMS/simcrs-0.5.0-1.fc16.src.rpm \ RPMS/noarch/simcrs-* RPMS/i686/simcrs-*
Update the NEWS
and ChangeLog
files with appropriate information, including what has changed since the previous release. Then commit and push the changes into the SimCRS's Git repository.
Create the binary package, which includes HTML and PDF documentation, using the following command:
cd ~/dev/sim/simcrsgit/build git checkout releases make package
The output binary package will be named, for instance, simcrs-0.5.0-Linux.tar.bz2
. That package contains both the HTML and PDF documentation. The binary package contains also the executables and shared libraries, as well as C++ header files, but all of those do not interest us for now.
Upload the distribution and documentation packages to the SourceForge server. Check SourceForge help page on uploading software.
Finally, you should send an announcement to simcrs-announce@lists.sourceforge.net (see https://lists.sourceforge.net/lists/listinfo/simcrs-announce for the archives)