@smbcloud / cli / commits / 16d87a9

docs(release): correct stale "no CI publish" claim in development.md

The "Publish Update" section claimed there is no GitHub action to publish and that you publish manually with `cargo workspaces publish`. That is wrong: pushing a `v*.*.*` tag triggers `.github/workflows/release-crate.yml`, which publishes the workspace crates and dispatches the distribution workflows. Rewritten to defer to the `smbcloud-cli-release` skill (source of truth). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

keypair34 committed Jun 28, 2026 at 22:35 UTC 16d87a9a3a8777dab28c36f113adf3cbb1b90d72
1 file changed +23 -17
docs/development.md
+23 -17
@@ -2,20 +2,26 @@
2
3 This repo uses [Architecture Decision Record](https://github.com/joelparkerhenderson/architecture-decision-record) in the `adr` folder.
4
5 -# Publish Update
6 -
7 -There's no GitHub action to automatically publish the package for now. Publishing task can also be done locally.
8 -
9 -To update the crate in the [crate.io](https://crate.io), use [cargo workspaces](https://github.com/pksunkara/cargo-workspaces) subcommand.
10 -
11 -Steps to publish new package:
12 -
13 -```bash
14 -$ cargo workspaces publish --publish-as-is
15 -```
16 -
17 -It will ask whether should bump the vesions of the packages or not. To update version separately:
18 -
19 -```bash
20 -$ cargo workspaces version
21 -```
5 +# Releasing
6 +
7 +Releases are **automated** via GitHub Actions. The full source of truth for the
8 +release process is the `smbcloud-cli-release` skill under `.agents/skills/` — read
9 +it before cutting a release. The short version:
10 +
11 +1. Prepare the bump on a `release/v<version>` branch off `development` with the
12 + Makefile — `make patch | minor | major | custom VERSION=<version>`. This bumps
13 + every workspace crate in lockstep, syncs the npm/PyPI/gem manifests and
14 + lockfiles, and commits `Release <version>`.
15 +2. Once CI is green, merge into `development` with `--no-ff`, then tag on
16 + `development`: `git tag v<version>`.
17 +3. Push both: `git push origin development && git push origin v<version>`.
18 +
19 +Pushing the `v*.*.*` tag triggers `.github/workflows/release-crate.yml`, which
20 +publishes the workspace crates to crates.io and fans out to the npm, PyPI, NuGet,
21 +and Ruby-gem distribution workflows. **You do not publish by hand** — the tag push
22 +is the trigger.
23 +
24 +A local publish (`cargo workspaces publish --publish-as-is`) exists only as a
25 +fallback for when CI is unavailable; it is not the normal path. See the
26 +`smbcloud-cli-release` skill for per-channel details, version-sync rules, and
27 +trusted-publishing setup.