This repo uses Architecture Decision Record in the adr folder.
Releases are automated via GitHub Actions. The full source of truth for the
release process is the smbcloud-cli-release skill under .agents/skills/ — read
it before cutting a release. The short version:
- Prepare the bump on a
release/v<version>branch offdevelopmentwith the Makefile —make patch | minor | major | custom VERSION=<version>. This bumps every workspace crate in lockstep, syncs the npm/PyPI/gem manifests and lockfiles, and commitsRelease <version>. - Once CI is green, merge into
developmentwith--no-ff, then tag ondevelopment:git tag v<version>. - Push both:
git push origin development && git push origin v<version>.
Pushing the v*.*.* tag triggers .github/workflows/release-crate.yml, which
publishes the workspace crates to crates.io and fans out to the npm, PyPI, NuGet,
and Ruby-gem distribution workflows. You do not publish by hand — the tag push
is the trigger.
A local publish (cargo workspaces publish --publish-as-is) exists only as a
fallback for when CI is unavailable; it is not the normal path. See the
smbcloud-cli-release skill for per-channel details, version-sync rules, and
trusted-publishing setup.