Making release » History » Version 98
This page explains how to prepare BornAgain for release (regular / hotfix):
Pre release actions¶
- Create release branch on fork:
git checkout develop git pull git checkout -b release-M.m.0
- Edit CHANGELOG and VERSION.cmake
- Build in build directory (and propagate version number):
cmake -DBORNAGAIN_RELEASE=ON -DBORNAGAIN_GENERATE_PYTHON_DOCS=ON ../BornAgain
- Commit and push:
git commit -a git push
- Check fitting examples.
- Check memory leakages.
- Compile on different systems using just created release branch:
- iffds, ifflinux.iff.kfa-juelich.de (cmake -DCMAKE_PREFIX_PATH=/usr/local -DCMAKE_INSTALL_PREFIX=../installed ../source; make; make check; make install)
- Maverick MacOS
- Any 64 bit Linux of your choice
- Make sure that a current BornAgain release library is available in LD_LIBRARY_PATH (needed for the performance tests)
cd $W # working_directory outside any git tree # Run release script: python $S/dev-tools/release/make_release.py $R # Here $R will be parsed; therefore it must be strictly of the form 'release-M.m.f' as set above. # The script will create subdirectory $W/$R. # It will clone the git repository into it, compile the project and prepare a tarball. cd $W/$R/upload ls
- Check contents of current directory:
- old directory containing older versions of software packages and user manual: create new folder for last old version
- BornAgain-$V.tar.gz: tarball of latest version of BornAgain
- CHANGELOG: containing latest changes
- BornAgainManual-$V.pdf: latest version of user manual: check if it looks ok (table of contents, bibliography, etc.)
cd <WHERE ?????> # Copy corresponding Windows installer into directory for upload: cp BornAgain-$V-win32.exe $W/$R/upload/. chmod 644 $W/$R/upload/BornAgain-$V-win32.exe # Copy GUI installer for Mac into upload directory: cp BornAgain-$V-macosx64-10.9+.dmg $W/$R/upload/. chmod 644 $W/$R/upload/BornAgain-$V-macosx64-10.9+.dmg cd $W python $S/dev-tools/release/make_release.py $R
- The script will continue with release process and will show menu for remaining actions. Select menu items one by one.
- Select menu item (1) to upload the release on application server.
- Select menu item (2) to finalize git.
- Select menu item (3) to check the release.
- Check if the release branch was correctly merged to both develop and master branch (on remote)
- Before updating documentation on the drupal website, publish special block with announcement that site is currently updating
- Got to Drupal's Structure/Blocks, down to the section of disabled blocks
- Configure block "Announcement block to be shown on the front page"
Edit text of the block
Switch block on by selecting "BornAgain theme" -> "Header" region
- Select "BornAgain Theme/Header"
- When Drupal is ready, disable this block (i.e. remove if from Header of BornAgain theme)
- update doxygen documentation
ssh email@example.com cd /Local/src/BornAgain git pull rm -r -f ./html cd ./Doc/Doxygen /opt/local/bin/doxygen
- Update of roadmap table in Roadmap
- Create news on drupal
Add new content "News Item" (Tag: "Release", Release Label:"Release-M.m.x" of h6 size)
- Update three drupal global variables in Structure > Custom Tokens
- Send email to subscribers.
- Submit installation request at https://forge.frm2.tum.de/redmine/projects/rpmbuildtool/issues/new
A hotfix is directly applied to the master branch
export V= # version number <M.m.f> (e.g. 1.2.0) export S= # path to BornAgain source directory alias edit='vi' # or whatever editor export $R=hotfix-$V cd $S git checkout master git pull git checkout -b $R
- Edit CHANGELOG and VERSION.cmake
- Modify code which needs to be fixed.
cmake -DBORNAGAIN_RELEASE=ON $S # to propagate new version number to BAVersion.h and Doxygen git commit
Enter commit message: "This is hotfix-$V: <explanation of bugfix>"
git checkout master git merge $R git push git tag $V git push --tags
- Update tarball on server
- go to empty directory and clone repository
- cmake -DBORNAGAIN_GUI=ON ../BornAgain/
- create tarball with 'make package_source'
- validate tarball (unpack;
- scp BornAgain-$V.tar.gz firstname.lastname@example.org:/www/apps/src/BornAgain/.
- Build new dmg package and windows installer and copy them to email@example.com:/www/apps/src/BornAgain/.
- Follow the 'Administration' section above to update the website.
See Releasing the Manual.