LazyDesktop releases are tag-driven: pushing a v* tag triggers the
GitHub Actions release workflow, which builds every platform artifact and
publishes a GitHub Release.
- The project uses semantic versioning with a
vprefix:v0.1.0,v0.2.0, … - The current application version is defined in the crate manifests
(
Cargo.toml) andPKGBUILD(pkgver). - Pre-releases (tags containing a pre-release segment, e.g.
v0.2.0-beta.1) are published as prereleases on GitHub. Stable tags such asv0.2.0are published as full releases.
-
Make sure
mainis green on CI (.github/workflows/ci.yml). -
Check the roadmap to confirm the milestone's items.
-
Tag and push:
git tag v0.2.0 git push origin v0.2.0
-
The release workflow (
.github/workflows/release.yml) builds:Job Artifacts release-linux.deb+.AppImage(ubuntu-24.04)release-arch.pkg.tar.zst(Arch container)release-windows.msi(windows-2022, WiX) -
When all three platform jobs finish,
create-releasedownloads all artifacts, generates achecksums.txt, and publishes the GitHub Release with auto-generated release notes.
lazydesktop_<version>_amd64.deblazydesktop-<version>-x86_64.AppImagelazydesktop-<version>-1-x86_64.pkg.tar.zstlazydesktop-<version>.msichecksums.txt
You can also build artifacts locally with the justfile — see packaging:
just release # all artifacts- The release workflow builds all artifacts with Cargo
(
cargo build --workspace --release). The local packaging scripts (debian/rules,PKGBUILD) use the same Cargo build. - The Windows
.msiharvests thetarget/releasedirectory (the executable plus any adjacent runtime files) viadeploy-msi.ps1.