Repository navigation
Release Operations
Nick edited this page May 7, 2026
·
4 revisions
This page is for maintainers.
For a normal release, update:
Cargo.tomlCargo.lockCHANGELOG.mddev.nicx.mimick.ymlsetup/metainfo/dev.nicx.mimick.metainfo.xml
Mimick publishes:
- a GitHub Pages Flatpak repository
- GitHub release assets including
mimick.flatpakrepoandSHA256SUMS.txt
Both publication flows use the Flatpak signing key configured in GitHub Actions secrets.
Current published Flatpak repo signing fingerprint:
04E2 9556 E951 B2EA 15D3 A8EE 632E 1BC5 D956 579C
FLATPAK_GPG_PRIVATE_KEYFLATPAK_GPG_KEY_ID-
FLATPAK_GPG_PASSPHRASEif the key is protected
Before tagging a release, ensure all metadata, manifests, and licenses are updated and valid:
# Validate Desktop Entry and AppStream Metadata
desktop-file-validate setup/dev.nicx.mimick.desktop
appstreamcli validate --explain setup/metainfo/dev.nicx.mimick.metainfo.xml
# Lint Flatpak manifest and build output
flatpak run --command=flatpak-builder-lint org.flatpak.Builder manifest dev.nicx.mimick.yml
flatpak run --command=flatpak-builder-lint org.flatpak.Builder builddir build-dir # Run after a successful build
# Check code quality and formatting
cargo fmt --all
cargo clippy --all-targets --all-features -- -D warnings
# Refresh Flatpak Cargo sources
python3 flatpak-cargo-generator.py Cargo.lock -o cargo-sources.json
# Update third-party license summaries
cargo about generate about.hbs --output-file THIRD_PARTY_LICENSES.txt
cargo about generate about-summary.hbs --output-file THIRD_PARTY_LICENSES_SUMMARY.txt- land the release-prep commit on
main - make sure
Cargo.toml,CHANGELOG.md, the Flatpak manifest tag, and AppStream metadata all agree on the version - create an annotated tag such as
v8.0.0 - push
mainand the tag - verify the release workflow and Flatpak Pages workflow complete successfully
The release workflow expects the tag version to exactly match the crate version in Cargo.toml.
If a workflow issue needs a tag rerun:
- fix the workflow on
main - delete the old tag locally and remotely
- recreate the annotated tag on the corrected commit
- push the tag again
If the Flatpak signing key changes:
- update the GitHub secrets
- confirm the generated
.flatpakrepopublishes the new public key material - update the published fingerprint in
README.mdand the wiki installation/release pages - call out the key rotation in release notes so users know the change was intentional