You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .agents/skills/ci-cd/SKILL.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -690,6 +690,12 @@ One practical warning: the Ruby gem release depends on crates.io propagation. If
690
690
691
691
## Common mistakes
692
692
693
+
**SDK npm version out of sync with Rust crate version**
694
+
`sdk/npm/smbcloud-auth/package.json`must have the same version as `crates/smbcloud-auth-sdk-wasm/Cargo.toml`. The `prepare-package.mjs` script compares them at build time and throws a hard error on mismatch. When bumping workspace crate versions for a release, always update the npm package version in the same commit. Forgetting this causes the `check-npm-sdk` CI job and the `release-sdk-npm` workflow to fail.
695
+
696
+
**Tagging a release on a feature branch instead of `development`**
697
+
Always tag on `development` (the mainline branch). Tagging on a feature branch leaves `development` without the release commit, making git history confusing and future releases error-prone. Merge the feature branch into `development` first, then tag. If a tag was already placed on the wrong commit, move it with `git tag -f v<version>` and `git push origin v<version> --force`.
698
+
693
699
**Building the full workspace in release workflows**
694
700
Always pass `--package smbcloud-cli` to `cargo build` and `cargo publish`. Omitting it builds `smbcloud-auth-sdk-py` (PyO3 cdylib) which fails on platforms without a matching Python interpreter.
@@ -27,6 +30,36 @@ Use these files as the release source of truth:
27
30
- PyPI package metadata: `pypi/pyproject.toml`
28
31
- PyPI package README: `pypi/README.md`
29
32
33
+
## Version sync rules
34
+
35
+
The SDK npm package `@smbcloud/sdk-auth` must have its version in `sdk/npm/smbcloud-auth/package.json` match the version in `crates/smbcloud-auth-sdk-wasm/Cargo.toml` exactly. The `prepare-package.mjs` script enforces this at build time and will fail CI if they diverge.
36
+
37
+
When bumping workspace crate versions for a release, always update `sdk/npm/smbcloud-auth/package.json` in the same commit.
38
+
39
+
## Tagging discipline
40
+
41
+
Always tag releases on the `development` branch (the mainline). Never tag on a feature branch.
42
+
43
+
Reasoning:
44
+
45
+
- The release commit history stays clean and linear on the default branch.
46
+
-`cargo workspaces publish --allow-branch "*"` accepts any branch, but downstream workflows dispatch from the tag ref, so the tagged commit must contain all intended changes.
47
+
- Tagging on a feature branch leaves `development` without the release commit and makes git history confusing.
48
+
49
+
Workflow:
50
+
51
+
1. Merge the feature branch into `development` with `--no-ff`.
0 commit comments