diff --git a/docs/release.md b/docs/release.md index a743eb6f..2dfbd6b1 100644 --- a/docs/release.md +++ b/docs/release.md @@ -1,21 +1,36 @@ # Release Documentation -* adapt version information (todo: centralize) - - * `/VERSION` (mind the final newline) - * `pyproject.toml` - * `ci-scripts/linux/rpm/nitrokey-app2.spec` - * add flatpak meta-data in `meta/com.nitrokey.nitrokey-app2.metainfo.xml`, - like this: `` - * the latest release should be on top of this list - - -* create tag (`git tag -S -m "vX.Y.Z" vX.Y.Z` or in the web-ui) - -* `git push --tags` - -* create release based on tag (web-ui) - - * set `pre-release` if required... - -* wait for actions to fail +Follow the steps below exactly to avoid a broken release. + +1. Adapt version information. + The CI pipeline will fail if the version strings in the files below do not match. + * `nitrokeyapp/VERSION` (mind the final newline) + * `pyproject.toml` + * `ci-scripts/linux/rpm/nitrokey-app2.spec` + * Add flatpak meta-data in `meta/com.nitrokey.nitrokey-app2.metainfo.xml`, + like this: `` + * The latest release should be on top of this list. +2. Create a new tag and release. + 1. Make sure the `main` branch of your cloned repository is up-to-date. + Create a new tag with `git tag -S -m "vX.Y.Z" vX.Y.Z` and push it to GitHub with `git push --tags`. + Open the repository on GitHub and open the releases page. + Click "Draft a new release" and select the just created tag. + 2. Open the repository on GitHub and open the releases page. + Click "Draft a new release". + In the dropdown field "Choose a tag" select "Create a new tag". + Enter the version string in the form `vX.Y.Z`. + Fill the fields title and description. + Set the checkbox "Set as a pre-release" or "Set as the latest release". + A pre-release can still be safely removed, a latest release can not be removed anymore. +3. Wait for the pipelines to succeed. + At this point the tag and release can still be removed. + Continue only when the pipelines succeded and manual tests are fine. +4. Download the Windows artifacts ending in `_unsigned.exe` and `_unsigned.msi`. + Sign the artifacts and remove the `_unsigned` from the file names. + Open the release page for the version and click the edit button. + Upload the signed arifacts, delete the unsigned artifacts and save the change. +5. Open the release page for the version and click the edit button again. + Change the release from pre-release to latest release and save the change. +6. Please mind that Flatpak and RPM COPR builds need to be triggered manually. + +The release is now complete.