# Release process
I'd wish the release process to be more automated, but for now it's still a
few manual steps.
## Prepare the PR for the new release
### Edit files
1. Find the next version, using semantic versioning (e.g. `1.2.3`), depending on
the changes in the changelog
2. Execute `./new_release NEW_VERSION` (replace `NEW_VERSION` with the new version)
3. Update the AppData release notes in data/io.github.mightycreak.Diffuse.appdata.xml.in:
- Look for the empty `
` tag under the new `` tag
- Add a paragraph to sum the release in one sentence (e.g. highlights, ...)
- Paste the changes from CHANGELOG.md and adapt it to HTML (see other
releases in the file)
### Create branch, PR and merge
1. Create a new branch (e.g. `release-1.2.3`)
2. Create a new PR
3. When everything's green: merge the PR
## Create new release on GitHub
1. Create a new release on GitHub's [new release page](https://github.com/MightyCreak/diffuse/releases/new):
- Choose a tag: `v` followed with the new version (e.g. `v1.2.3`)
- Release title: the tag (e.g. `v1.2.3`)
- Description:
- For the first paragraph, paste the first paragraph from the release notes
- For the second paragraph, got to [CHANGELOG.md](https://github.com/MightyCreak/diffuse/blob/main/CHANGELOG.md)
and copy the URL anchor to the new release, then add this sentence
(adapt the changelog link):
```text
For a more detailed list of changes, see the
[changelog](https://github.com/MightyCreak/diffuse/blob/main/CHANGELOG.md#xyz---yyyy-mm-dd).
```
2. Publish release
## Create new release on Flatpak
1. Clone the Flathub repository:
2. Copy the contents of Diffuse's `io.github.mightycreak.Diffuse.yml` to Flathub's
3. Keep Flathub's `config-opts` and `sources` sections
4. In `sources` section, change the `commit` and `tag`
5. Create commit with changes and push to `master`
6. Check the build on Flathub:
7. When it's done and successful, publish the build