Release workflow

Major release notes


  • Tests, check coverage
  • Mypy check
  • Pylint check
  • Translations
    pybabel extract -F openatlas/translations/babel.cfg -k lazy_gettext -o openatlas/translations/messages.pot .
    pybabel update -i openatlas/translations/messages.pot -d openatlas/translations
  • Update version in config/
  • Update model image in application and Sphinx
  • Sphinx: update manual, version, check links with uncommenting the print line in manual() at openatlas/display/
    sphinx-build ./sphinx/source/ openatlas/static/manual
  • Update changelog, release date
  • If new packages, add to
    • Install notes
    • Upgrade notes
    • requirements.txt
    • install/Dockerfile
  • Update, upgrade SQL and installation notes
  • Prepare newsletter, news


  • Git branches
    • merge release_candidate to main
    • remove release_candidate
    • merge main to develop
    • raise version in develop
  • Push to GitHub
  • Upgrade demo versions, if database upgrades:
    pg_dump openatlas_demo > /var/lib/postgresql/openatlas_demo.sql
    pg_dump openatlas_demo_dev > /var/lib/postgresql/openatlas_demo_dev.sql
  • Test demo
  • Post news
  • Upgrade CRAWS, ACDH-CH and NHM instances
    git pull origin main
    python3 install/upgrade/
    • Download newest database dump
    • Send newsletter
    • Raise version in the online versions list

Post release

  • Check if GitHub tests passed (restart if not)
  • Update Redmine roadmap: close version after adding release date
  • Add news at
  • Git tag
  • Push main and tags to GitHub, GitLab and Bitbucket
  • Update GitHub latest release
  • Update stats in wiki

Updated by Alexander Watzinger 3 months ago · 78 revisions

Also available in: PDF HTML TXT