@outcomeeng/spx 0.6.15 → 0.6.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -177,7 +177,12 @@ The project uses GitHub Actions for continuous integration and publishing:
177
177
 
178
178
  ### Publishing a Release
179
179
 
180
- 1. Sync `main` with `origin/main`: `git pull --ff-only origin main`
180
+ Run every step in the canonical main checkout. Keep `main` checked out there for
181
+ the entire release so Git refuses attempts to check out `main` in a linked
182
+ worktree.
183
+
184
+ 1. Confirm `git branch --show-current` reports `main`, then sync it with
185
+ `origin/main`: `git pull --ff-only origin main`
181
186
  2. Bump the version with `pnpm version patch --no-git-tag-version`, unless the
182
187
  release request specifies `minor`, `major`, or an exact version
183
188
  3. Run `pnpm run publish:check`
@@ -194,22 +199,25 @@ npm view @outcomeeng/spx version
194
199
  npm audit signatures
195
200
  ```
196
201
 
197
- 8. Refresh the operator-visible CLI from the release tag in the main worktree
198
- and confirm it reports the released version:
202
+ 8. Require current `main` to equal the release tag commit, then rebuild the
203
+ operator-visible CLI and confirm it reports the released version:
199
204
 
200
205
  ```bash
201
- git fetch --tags origin
202
- git switch --detach vX.Y.Z
203
- pnpm run build
204
- spx --version
205
- git switch main
206
- git pull --ff-only origin main
206
+ git fetch --tags origin &&
207
+ test "$(git branch --show-current)" = main &&
208
+ test "$(git rev-parse HEAD)" = "$(git rev-parse 'vX.Y.Z^{commit}')" &&
209
+ test "$(git rev-parse origin/main)" = "$(git rev-parse 'vX.Y.Z^{commit}')" &&
210
+ pnpm run build &&
211
+ spx --version
207
212
  ```
208
213
 
209
214
  Do not refresh the CLI with `pnpm install`, global `pnpm add -g`, or package
210
215
  manager update commands during release close-out. The operator-visible binary
211
- comes from the release tag after the main worktree checks out that tag and
212
- rebuilds it; return the worktree to current main after the version check.
216
+ comes from the canonical main checkout only while its HEAD and fetched
217
+ `origin/main` both equal the release tag commit. Stop before the build if either
218
+ ref advanced. On a mismatch, leave the CLI unchanged and complete the refresh
219
+ through a later release that starts from newly synced `main`; never move `main`
220
+ backward to retry the old release. The checkout remains on `main` throughout.
213
221
 
214
222
  ## Technical Stack
215
223