Release procedure (permanent issue)

Manual checks:

  • Browse through entire online documentation: all scripts and figures present?
  • Check all links in documentation (#1134 (closed))

Release new versions of dependencies, if they have changed:

  • libheinz
  • libformfactor

Manual deployment tests (check installation procedures according to webdocs; run Python scripts, run GUI session; import sample from script to GUI)

Finalize bornagain (MRs against release branch):

  • Finalize CHANGELOG
  • Write release letter
  • In CMakeLists.txt, update VERSION
  • In hugo/config.toml, update release_number, version_name, url_blob
  • Set git tag vx.y - reversible freeze

Finalize ba-www (in fresh release branch):

  • Update content/documentation.md
  • Update static/js/version_switch.js
  • In config.toml, update version_mm
  • Add release letter

Upload installers and wheels (this makes the release irreversible):

  • Build installers and wheels for all Python versions
  • Installers to www@scgbuild:www/ext/ba/files/version.patch/
  • Wheels to PyPI

Publish:

  • Create release in Jugit
  • In www@scg3:ba:
    • for hotfix:
      • update versioned repository (verify branch, git pull)
    • for major release:
      • clone ba to new directory <major>/repo
      • in <major>/: ln -si repo/hugo/public hugo-public
    • checkout release branch
    • in repo/build/: run make, make figures, make excopy
    • in repo/hugo/: run hugo
  • In www@scg3:www/ba/public, update latest and version link
  • Merge release branch to ba-www => Docs will automatically be updated

Inform users

  • Mail to BornAgain mailing list
  • For major milestones, mail to external mailing lists (neutron, sa_scat [unsigned mails only!])
  • Update "Latest" section on computing.mlz-garching.de
  • Inform Debian maintainers

Create next release branch

  • Create branch rx.y, push to Jugit
  • In Jugit > Settings > Repository > Protected Branches, protect the branch
Edited by Joachim Wuttke