Versioning
Workflow templates and the CLI are versioned together via the VERSION file at the repo root (semver). The version is embedded into the CLI at compile time.
Version strategy
Section titled “Version strategy”| Tag type | Example | Purpose |
|---|---|---|
| Immutable semver | v1.2.3 | Permanent, never moves |
| Floating major | v1 | Always points to latest v1.x.y |
Consuming repos pin to the floating major tag (@v1), so they automatically get patch and minor updates.
Releases
Section titled “Releases”To create a release:
- Edit
VERSION(e.g.,1.0.43→1.0.44or2.0.0) - Push to
main - The
release.ymlworkflow creates tags and a release with CLI binaries
CLI binaries
Section titled “CLI binaries”The release workflow cross-compiles for:
| Platform | Architecture | Binary name |
|---|---|---|
| macOS | ARM64 | bucky-aarch64-apple-darwin |
| macOS | x86_64 | bucky-x86_64-apple-darwin |
| Linux | ARM64 | bucky-aarch64-unknown-linux-gnu |
| Linux | x86_64 | bucky-x86_64-unknown-linux-gnu |
Binaries are uploaded as release assets.
Major version bumps
Section titled “Major version bumps”On a major version bump (e.g., v1 → v2):
- Update
VERSIONto the new major version - Update consumer workflow refs from
@v1to@v2 - Update docs and consumer references
Plugin versioning
Section titled “Plugin versioning”Plugins with skills use the version field in .claude-plugin/plugin.json. Bump the patch version when modifying any file in a skill-based plugin. Do not bump for metadata-only changes to plugin.json itself.