# Releasing Weblate

## Release cycle

Weblate’s release and support lifecycle is documented in
[Release cycle](https://docs.weblate.org/no/latest/security/releases.md#release-cycle).

#### SEE ALSO
* [Releases and supported versions](https://docs.weblate.org/no/latest/security/releases.md)
* [Upgrading Weblate](https://docs.weblate.org/no/latest/admin/upgrade.md)

## Release planning

The features for upcoming releases are collected using GitHub milestones, you
can see our roadmap at <[https://github.com/WeblateOrg/weblate/milestones](https://github.com/WeblateOrg/weblate/milestones)>.

## Release process

Things to check prior to release:

1. Check newly translated languages by **./scripts/list-translated-languages.py**.
2. Set final version by **./scripts/prepare-release**.
3. Make sure screenshots are up to date **make -j 12 -C docs update-screenshots**.
4. Merge any possibly pending translations **wlc push; git remote update; git merge origin/weblate**

When building distribution packages locally, start from a clean checkout or
remove ignored packaging artifacts such as `build/`, `dist/`,
`weblate.egg-info/`, and generated `weblate/locale/**/*.mo` files.

Perform the release:

1. Create a release **./scripts/create-release --tag** (see below for requirements).

Post release manual steps:

1. Close GitHub milestone.
2. Once the Docker image is tested, add a tag and push it.
3. Include new version in `.github/workflows/migrations.yml` to cover it in migration testing.
4. Increase version in the repository by **./scripts/set-version.py**.
5. Check that readthedocs.org did build all translations of the documentation using **./scripts/rtd-projects.py**.

To create tags using the **./scripts/create-release** script you will need following:

* Push access to Weblate git repositories (it pushes tags)
