Contributing
June 4, 2026 ยท View on GitHub
Version Bumps and Releases
instantWM is a binary crate and is not published to crates.io. Releases are prepared by GitHub Actions instead of release-plz.
The version bump workflow reads commit messages since the latest v* tag and
opens a release PR that updates:
Cargo.tomlCargo.lockCHANGELOG.mdpackaging/arch/PKGBUILDpackaging/arch-bin/PKGBUILD
After that PR is merged, the release workflow creates the vX.Y.Z tag, builds
release artifacts, and publishes a GitHub release.
Commit Message Format
Use Conventional Commit-style subjects when a change should influence the next version:
fix: correct focus ordering
feat: add a new instantwmctl command
feat!: change the IPC response format
Automatic bumping uses these rules:
fix:and most other code changes create a patch bump.feat:creates a minor bump.type!:creates a major bump.- A commit body containing
BREAKING CHANGEcreates a major bump. chore:,ci:,docs:,style:, andtest:do not trigger a release in automatic mode.
Because instantWM is a binary, breaking changes cannot be reliably detected from
Rust public API changes. Mark user-facing compatibility breaks explicitly with
! or BREAKING CHANGE.
Examples of user-facing compatibility breaks include:
- changing the config format
- removing or renaming CLI flags or
instantwmctlcommands - changing IPC request or response shapes
- changing session or packaging behavior that users or downstream packages rely on
Manual release PRs can also be started from the Version bump PR workflow with
an explicit patch, minor, or major bump.