This document describes briefly the recommended procedure of releasing a new version of SEvMgr 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://sevmgr.git.sourceforge.net/gitroot/sevmgr/sevmgr sevmgrgit cd sevmgrgit git checkout trunk
Create the branch, on your local clone, corresponding to the new release (say, 0.5.0):
cd ~/dev/sim/sevmgrgit git checkout trunk git checkout -b 0.5.0
Update the version in the various build system files, replacing 99.99.99 by the correct version number:
vi CMakeLists.txt vi autogen.sh
Update the version and add a change-log in the ChangeLog and in the RPM specification files:
vi ChangeLog vi sevmgr.spec
Commit the new release:
cd ~/dev/sim/sevmgrgit git add -A git commit -m "[Release 0.5.0] Release of version 0.5.0." git push
Update the change-log in the ChangeLog and RPM specification files:
cd ~/dev/sim/sevmgrgit git checkout trunk vi ChangeLog vi sevmgr.spec
Commit the change-logs and publish the trunk (main development branch):
git commit -m "[Doc] Integrated the change-log of the release 0.5.0." git push
Create the distribution packages using the following command:
cd ~/dev/sim/sevmgrgit git checkout 0.5.0 rm -rf build && mkdir -p build cd build cmake -DCMAKE_INSTALL_PREFIX=/home/user/dev/deliveries/sevmgr-0.5.0 \ -DWITH_STDAIR_PREFIX=/home/user/dev/deliveries/stdair-stable \ -DCMAKE_BUILD_TYPE:STRING=Debug -DINSTALL_DOC:BOOL=ON .. make check && make dist
This will configure, compile and check the package. The output packages will be named, for instance, sevmgr-0.5.0.tar.gz
and sevmgr-0.5.0.tar.bz2
.
Optionally, generate the RPM package (for instance, for Fedora/RedHat):
cd ~/dev/sim/sevmgrgit git checkout 0.5.0 rm -rf build && mkdir -p build cd build cmake -DCMAKE_INSTALL_PREFIX=/home/user/dev/deliveries/sevmgr-0.5.0 \ -DWITH_STDAIR_PREFIX=/home/user/dev/deliveries/stdair-stable \ -DCMAKE_BUILD_TYPE:STRING=Debug -DINSTALL_DOC:BOOL=ON .. make dist
To perform this step, rpm-build, rpmlint and rpmdevtools have to be available on the system.
cp sevmgr.spec ~/dev/packages/SPECS \ && cp sevmgr-0.5.0.tar.bz2 ~/dev/packages/SOURCES cd ~/dev/packages/SPECS rpmbuild -ba sevmgr.spec rpmlint -i ../SPECS/sevmgr.spec ../SRPMS/sevmgr-0.5.0-1.fc15.src.rpm \ ../RPMS/noarch/sevmgr-* ../RPMS/i686/sevmgr-*
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 SEvMgr's Git repository.
Create the binary package, which includes HTML and PDF documentation, using the following command:
make package
The output binary package will be named, for instance, sevmgr-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.
In order to update the Web site files, either:
cd ~/dev/sim/sevmgrgit git checkout 0.5.0 rsync -aiv doc/html/ doc/latex/refman.pdf joe,sevmgr@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.Finally, you should send an announcement to sevmgr-announce@lists.sourceforge.net (see https://lists.sourceforge.net/lists/listinfo/sevmgr-announce for the archives)