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.