Skip to content

Commit 1c50dc8

Browse files
committed
docs(planning): add v1.4 ship follow checklist and point STATE at it
Single ordered path for Hex publish, bookkeeping, and milestone close; STATE Next Command defers to FOLLOW-SHIP-v1.4.md. Made-with: Cursor
1 parent c92a663 commit 1c50dc8

2 files changed

Lines changed: 107 additions & 6 deletions

File tree

.planning/FOLLOW-SHIP-v1.4.md

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# v1.4 ship — follow in order
2+
3+
Do **step 1 → end** in order. Deep detail and failure recovery: **`docs/releasing.md`**.
4+
5+
**Replace `X.Y.Z`** below with the **semver only** (no `v`) of the release Release Please just produced — the same string as `@version` in `mix.exs` on the release tag.
6+
7+
---
8+
9+
## 1. Secrets (skip if already set)
10+
11+
- [ ] In the GitHub repo: **Settings → Secrets and variables → Actions**
12+
- [ ] `HEX_API_KEY` exists and can publish **`scrypath`**
13+
14+
## 2. Push what is on your machine
15+
16+
```bash
17+
cd /path/to/scrypath # this repo
18+
git status # should be clean
19+
git push origin main
20+
```
21+
22+
- [ ] Push succeeded (CI green on `main` is normal before the release PR).
23+
24+
## 3. Optional local confidence (2 minutes)
25+
26+
```bash
27+
mix verify.phase11
28+
```
29+
30+
- [ ] Command finished without error (or you are comfortable trusting CI only).
31+
32+
## 4. Release Please PR
33+
34+
- [ ] On GitHub: **Pull requests** → find the **Release Please** release PR (version/changelog/manifest bump; not random feature PRs).
35+
- [ ] Open it. In the diff, confirm **one** new version: `mix.exs`, `.release-please-manifest.json`, and `CHANGELOG.md` **top entry** all match **`X.Y.Z`** / **`vX.Y.Z`** consistently.
36+
37+
## 5. Merge the release PR
38+
39+
- [ ] **Merge** that PR to **`main`** (use the project’s normal merge policy).
40+
41+
## 6. Watch the publish workflow
42+
43+
GitHub runs **`.github/workflows/release-please.yml`**. When it creates a release, the **publish** job tags and runs **`mix hex.publish`**, then **`mix verify.release_publish`**, then **`mix verify.release_parity`** on the server.
44+
45+
```bash
46+
gh run list --workflow release-please.yml --limit 5
47+
# pick the latest run id, then:
48+
gh run watch <RUN_ID>
49+
```
50+
51+
- [ ] Workflow finished **green** (especially the **publish** / Hex job).
52+
53+
## 7. Record the version you actually shipped
54+
55+
After green:
56+
57+
```bash
58+
git fetch origin --tags
59+
git tag --sort=version:refname | tail -n 5
60+
```
61+
62+
- [ ] You wrote down **`X.Y.Z`** = semver from the new **`vX.Y.Z`** tag (example: tag `v0.3.1`**`X.Y.Z` = `0.3.1`**).
63+
64+
## 8. Quick sanity in the browser (optional but easy)
65+
66+
- [ ] Package: `https://hex.pm/packages/scrypath` shows **`X.Y.Z`**.
67+
- [ ] Docs: `https://hexdocs.pm/scrypath/X.Y.Z` loads.
68+
69+
## 9. Tick planning checkboxes (only after step 6 is green)
70+
71+
Edit in this repo:
72+
73+
| File | What to change |
74+
|------|----------------|
75+
| **`.planning/ROADMAP.md`** | Line with **Phase 24** — change `- [ ]` to `- [x]` and add completion date if you want (match style of Phase 25/26). |
76+
| **`.planning/REQUIREMENTS.md`** | **SHIP-01**, **SHIP-02**, **SHIP-03** bullets — change `- [ ]` to `- [x]`. |
77+
| **`.planning/REQUIREMENTS.md`** | Traceability table (`SHIP-01` / `SHIP-02` / `SHIP-03` rows) — change **Pending** to **Complete** (or your house style). |
78+
79+
- [ ] All three edits saved and committed (example message: `docs: mark v1.4 SHIP complete after X.Y.Z publish`).
80+
81+
## 10. Close the milestone in GSD
82+
83+
In Cursor:
84+
85+
```text
86+
/gsd-complete-milestone v1.4
87+
```
88+
89+
- [ ] Command finished; milestone archived / `PROJECT.md` / roadmap updated per that workflow.
90+
91+
## 11. Push again if needed
92+
93+
```bash
94+
git push origin main
95+
```
96+
97+
- [ ] Remote has your bookkeeping commit(s).
98+
99+
---
100+
101+
## If something failed
102+
103+
Stop and read **`docs/releasing.md`** from **“Recovering Tag or Version Drift”** and **“Recovering a Failed Publish”** — do not hand-bump versions or invent a second publish path unless that doc tells you to.

.planning/STATE.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ current_phase_name: Public Hex release & parity gates
77
current_plan: "24-01, 24-02, 24-03"
88
status: at_release_gate
99
stopped_at: "Phase 26 closed (verified + automated UAT via mix verify.phase26). v1.4 engineering complete except SHIP: tick Phase 24 when published, then /gsd-complete-milestone."
10-
last_updated: "2026-04-17T22:30:00Z"
10+
last_updated: "2026-04-17T23:45:00Z"
1111
last_activity: 2026-04-17
1212
progress:
1313
total_phases: 3
@@ -65,11 +65,9 @@ See: `.planning/PROJECT.md` (updated 2026-04-17)
6565

6666
## Next Command
6767

68-
0. Read **`.planning/v1.4-MILESTONE-AUDIT.md`** — confirms engineering vs **SHIP** boundary.
69-
1. **`git push`** when you are ready for CI / collaborators.
70-
2. **Publish** per **`docs/releasing.md`** (Release Please → merge release PR → Actions publish).
71-
3. **Tick** Phase **24** `[x]` in **`ROADMAP.md`** and **`SHIP-01..03`** in **`REQUIREMENTS.md`** when the published version and parity checks match maintainer intent.
72-
4. **`/gsd-complete-milestone v1.4`** — archive roadmap + requirements, evolve **PROJECT.md**, tag only when you intentionally name the shipped semver (may be **`0.3.1`**, **`0.4.0`**, or another Release Please outcome — align with **`mix.exs`** / manifest / tag).
68+
**Start here:** open **`.planning/FOLLOW-SHIP-v1.4.md`** and check boxes top to bottom. It is the only path you need until the milestone is closed.
69+
70+
Background (optional): **`.planning/v1.4-MILESTONE-AUDIT.md`** — engineering vs **SHIP** boundary. Full narrative: **`docs/releasing.md`**.
7371

7472
**Resume file:** `.planning/phases/24-public-hex-release-parity-gates/24-VERIFICATION.md`
7573

0 commit comments

Comments
 (0)