h1. Release workflow [[Major release notes]] h2. Prepare * [[Standards#Tests|Tests]], check coverage * [[Standards#Mypy|Mypy]] check * [[Standards#Pylint|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/default.py* * Update model image in application and Sphinx * [[Sphinx_documentation|Sphinx]]: update manual, version, check links with uncommenting the print line in *manual()* at *openatlas/display/util2.py*
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.md, upgrade SQL and installation notes * Prepare newsletter, news h2. Release * 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/database_upgrade.py
** Download newest database dump ** Send newsletter ** Raise version in the online versions list h2. Post release * Check if GitHub tests passed (restart if not) * Update Redmine roadmap: close version after adding release date * Add news at openatlas.eu * Git tag * Push main and tags to GitHub, GitLab and Bitbucket * Update GitHub latest release * Update stats in wiki