This project follows Semantic Versioning. Given a version MAJOR.MINOR.PATCH, increment the:
- MAJOR version for incompatible API changes
- MINOR version for new features
- PATCH version for bug fixes
Every pull request should carry exactly one of these labels. They drive both
the auto-generated release notes (see .github/release.yml) and the automatic
version bump (see .github/scripts/bump-version.sh):
breaking— incompatible API change; triggers a major bump. Changes that the system self-heals from at runtime are not considered breaking.feature— new user-facing feature; triggers a minor bumpbug— bug fix; triggers a patch bumpchore— internal change (tooling, refactor, docs, CI); excluded from release notes and counted as a patch bump
When the Version workflow runs in auto mode, it inspects the labels of
every pull request merged since the previous v* tag. The highest-priority
label wins: breaking > feature > anything else.
-
Bump the version
Go to Actions → Version → Run workflow in the GitHub UI. Leave the component on
autoto derive the bump from PR labels merged since the last tag, or pickmajor/minor/patchexplicitly. Click Run workflow. This will create a pull request with the version bump inCargo.tomlandCargo.lock. Review and merge the pull request. -
Trigger the release workflow
Go to Actions → Release → Run workflow in the GitHub UI. Select the branch to release from and click Run workflow.
-
Wait for the workflow to complete
The workflow will:
- Read the version from
Cargo.toml - Build release binaries for six targets:
- Linux x86_64
- Linux aarch64
- macOS x86_64
- macOS aarch64
- Windows x86_64
- Windows aarch64
- Package
.deb,.rpmand.msifiles for Linux and Windows targets - Create
.tar.gzor.ziparchives for all targets - Run virus scan on all build artifacts
- Create a GitHub Release with all artifacts attached
- Read the version from
-
Verify the release
Check the Releases page and confirm that the release contains the expected artifacts:
leech2-X.Y.Z-1.aarch64.rpmleech2-X.Y.Z-1.x86_64.rpmleech2-X.Y.Z-linux-aarch64.tar.gzleech2-X.Y.Z-linux-x86_64.tar.gzleech2-X.Y.Z-macos-aarch64.tar.gzleech2-X.Y.Z-macos-x86_64.tar.gzleech2-X.Y.Z-windows-aarch64.zipleech2-X.Y.Z-windows-x86_64.zipleech2-X.Y.Z-x86_64.msileech2_X.Y.Z-1_amd64.debleech2_X.Y.Z-1_arm64.deb
Update changelog.