Making release » History » Version 99

« Previous - Version 99/112 (diff) - Next » - Current version
herck, 06 Apr 2017 16:50

Making release

This page explains how to prepare BornAgain for release (regular / hotfix):

Regular release

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):
  • Commit and push:
    git commit -a
    git push
  • Check fitting examples.
  • Check memory leakages.
  • Compile on different systems using just created release branch:
    • iffds, (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

Making release

  • 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/ $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
  • 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/ $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
    cd /Local/src/BornAgain
    git pull
    rm -r -f ./html
    cd ./Doc/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)

Making hotfix

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 :/www/apps/src/BornAgain/.
  • Build new dmg package and windows installer and copy them to :/www/apps/src/BornAgain/.
  • Follow the 'Administration' section above to update the website.

Further actions

See Releasing the Manual.

BornAgain-1.16.0-python2.7-macosx64-10.10+.dmg (25.8 MB) pospelov, 31 Jul 2019 14:22

BornAgain-1.16.0-python3.6-macosx64-10.10+.dmg (26.1 MB) pospelov, 31 Jul 2019 14:23

BornAgain-1.16.0-python3.7-macosx64-10.10+.dmg (26.2 MB) pospelov, 31 Jul 2019 14:23

BornAgain-1.16.0.tar.gz (11 MB) dmitry, 31 Jul 2019 16:44

BornAgain-1.16.0-python2.7-win64.exe (22.2 MB) dmitry, 31 Jul 2019 16:58

BornAgain-1.16.0-python3.6-win64.exe (22.6 MB) dmitry, 31 Jul 2019 16:58

BornAgain-1.16.0-python3.7-win64.exe (22.6 MB) dmitry, 31 Jul 2019 16:58

gisaxs2019_pospelov.pdf (5.45 MB) pospelov, 20 Nov 2019 08:21