Skip to content

Commit ec0b50b

Browse files
committed
chore(ci): rename release workflow to rc-tag-release and document publish gate
- Replace release.yml with rc-tag-release.yml; keep validate:publish before changeset publish - Document maintainer flow (local validate, PR/CI, automated publish, post-publish smoke test) - Add SPDX Apache-2.0 header to guardEvidence.ts for check-boundary
1 parent d7df728 commit ec0b50b

3 files changed

Lines changed: 18 additions & 1 deletion

File tree

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
name: Release
1+
# Maintainer publish flow:
2+
# 1) Local gate: pnpm build && pnpm validate:publish (packed manifests must not contain workspace:*)
3+
# 2) Land P0 packaging changes via PR; CI runs the same validate:publish step.
4+
# 3) Merge the changesets "Version Packages" PR (chore(release)) — this workflow runs validate:publish
5+
# again before changeset publish; npm is not touched if validation fails.
6+
# 4) After publish: smoke test from a clean directory, e.g. npm install @loop-engine/sdk@<version>
7+
name: RC tag release
28

39
on:
410
push:

CONTRIBUTING.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,20 @@ Run these commands from repository root before opening a PR:
3434

3535
```bash
3636
pnpm build
37+
pnpm validate:publish # packed @loop-engine/* tarballs must not contain workspace:* (same gate as release)
3738
pnpm lint
3839
pnpm test
3940
pnpm validate-loops
4041
pnpm check-boundary
4142
```
4243

44+
## Publishing (maintainers)
45+
46+
1. **Local gate**`pnpm build && pnpm validate:publish`. This is the tarball check (not `npm publish`). It fails if any packed public package still has `workspace:` in its manifest.
47+
2. **Ship changes via PR** — packaging fixes (e.g. `package.json`, `.npmrc`, `scripts/check-no-workspace-refs.mjs`, workflow updates) go through CI like any other change.
48+
3. **Automated npm publish**[.github/workflows/rc-tag-release.yml](.github/workflows/rc-tag-release.yml) runs on pushes to `main` whose head commit message contains `chore(release)` (the changesets “Version Packages” merge). It runs `validate:publish` again before `pnpm release` / `changeset publish`; if validation fails, nothing is published.
49+
4. **Post-publish smoke test** — from an empty directory, install the new version, e.g. `npm install @loop-engine/sdk@<version>`, and confirm the install is clean before announcing.
50+
4351
## Pull request conventions
4452

4553
- Keep PR scope focused to one feature/fix area

packages/sdk/src/lib/guardEvidence.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
// @license Apache-2.0
2+
// SPDX-License-Identifier: Apache-2.0
3+
14
/**
25
* guardEvidence
36
*

0 commit comments

Comments
 (0)