Skip to content

Commit eb491a9

Browse files
committed
ci(release): dogfood the reusable release-please workflow
- release-please-config.json: release-type simple, package ".", changelog-path CHANGELOG.md - .release-please-manifest.json: bootstrap ".": "0.0.0" (org-dotgithub has zero GitHub tags today) - .github/workflows/release-please.yml: push-to-main trigger, calls release-please-reusable.yml pinned to this branch's first commit SHA - docs/RELEASE_POLICY.md: document tool choice, uniform release-type, per-repo independent SemVer, bootstrap baseline rationale, and SHA-pin policy
1 parent f288e5e commit eb491a9

4 files changed

Lines changed: 62 additions & 0 deletions

File tree

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
name: Release Please
2+
on:
3+
push:
4+
branches:
5+
- main
6+
jobs:
7+
release-please:
8+
permissions:
9+
contents: write
10+
pull-requests: write
11+
issues: write
12+
uses: Coding-Autopilot-System/.github/.github/workflows/release-please-reusable.yml@f288e5e3b67b29a2c08880b76da7b852f4a132d0

.release-please-manifest.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
".": "0.0.0"
3+
}

docs/RELEASE_POLICY.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,40 @@ rewriting published history.
2929
Repositories that are demonstrations or not yet stable must state that clearly in
3030
their README. They still require reproducible setup, validation evidence, and explicit
3131
safety boundaries.
32+
33+
## Release Automation (v1.5)
34+
35+
1. **Tool: release-please via a single reusable workflow.** All 13 portfolio repos
36+
call `.github/workflows/release-please-reusable.yml` in this repo
37+
(`Coding-Autopilot-System/.github`) instead of each hand-rolling a
38+
semver-bump/changelog script or duplicating a release-please config 13 times.
39+
release-please deterministically parses conventional commits — already enforced
40+
org-wide by pr-lint's PR-title check — rather than reinventing that parsing logic,
41+
and its default flow opens a review-gated "release PR" rather than tagging
42+
directly on every merge, which fits the existing two-party-review governance
43+
instead of fighting it.
44+
2. **Uniform `release-type: simple` across all 13 repos**, regardless of language
45+
(C#, Python, Node, PowerShell, docs-only). `simple` only manages a
46+
`CHANGELOG.md` + version manifest and never mutates a language-specific manifest
47+
file, avoiding 13 different per-language configurations.
48+
3. **Each repo keeps its own independent SemVer line** — not synced to the CAS
49+
portfolio milestone number (e.g. v1.5). gsd-orchestrator (already at v4.0.0) and
50+
cas-contracts (already at v1.1.1) already prove per-repo versioning is
51+
independent of portfolio milestone numbering; forcing a shared baseline across
52+
repos with unrelated existing tag histories would be meaningless and would
53+
collide with gsd-orchestrator's real v4.x line.
54+
4. **Bootstrap baseline.** Repos with zero existing GitHub tags (including this
55+
repo, org-dotgithub) bootstrap their `.release-please-manifest.json` at
56+
`"0.0.0"` so release-please's first run computes the genuine first version from
57+
complete commit history. Repos with a real existing latest tag on GitHub (e.g.
58+
gsd-orchestrator at `4.0.0`, cas-contracts at `1.1.1`) bootstrap their manifest
59+
from that real tag so their first automated release only covers what changed
60+
since that point. Baselines are verified against `gh api .../tags` output, not
61+
assumed from local-only tags.
62+
5. **SHA-pinned cross-repo dependency.** Other repos pin their caller workflow's
63+
`uses:` line to a specific org-dotgithub commit SHA (never `@main`), and the
64+
third-party `googleapis/release-please-action` inside this reusable workflow is
65+
itself SHA-pinned, per the existing Phase 31 org action-pinning policy. Bumping
66+
the pinned release-please-action version later requires a deliberate, reviewed
67+
SHA update in each caller — the same accepted maintenance tradeoff Phase 31
68+
already established for direct action pins.

release-please-config.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
3+
"release-type": "simple",
4+
"packages": {
5+
".": {
6+
"release-type": "simple",
7+
"changelog-path": "CHANGELOG.md"
8+
}
9+
}
10+
}

0 commit comments

Comments
 (0)