Skip to content

Versioning

Actions and workflow templates are versioned together via the VERSION file at the repo root (semver). The version is embedded into the CLI at compile time.

Tag typeExamplePurpose
Immutable semverv1.2.3Permanent, never moves
Floating majorv1Always points to latest v1.x.y

Consuming repos pin to the floating major tag (@v1), so they automatically get patch and minor updates.

The version-bump.yml workflow automatically bumps the patch version when any of these paths change on main:

  • .github/actions/
  • workflow-templates/
  • .github/workflows/bucky-*.yml

It then:

  1. Bumps the patch version in VERSION
  2. Creates/moves the immutable semver tag (v1.2.3)
  3. Creates/moves the floating major tag (v1)
  4. Creates a GitHub Release with pre-built CLI binaries

For major or minor version bumps:

  1. Edit VERSION directly (e.g., 1.0.432.0.0 or 1.1.0)
  2. Push to main
  3. The release.yml workflow creates tags and a release with CLI binaries

Both release workflows call build-cli.yml (reusable workflow) which cross-compiles for:

PlatformArchitectureBinary name
macOSARM64bucky-aarch64-apple-darwin
macOSx86_64bucky-x86_64-apple-darwin
LinuxARM64bucky-aarch64-unknown-linux-gnu
Linuxx86_64bucky-x86_64-unknown-linux-gnu

Binaries are uploaded as release assets.

On a major version bump (e.g., v1v2):

  1. Update VERSION to the new major version
  2. Update composite action refs inside reusable workflows (.github/workflows/bucky-*.yml) from @v1 to @v2
  3. Update docs and consumer references

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.