Skip to content

Commit bd2c489

Browse files
docs: record the release log automation in CURRENT_STATE (#153)
Records the release log automation from Issue #151 and PR #152. This is the kind of entry the automation deliberately does not write: #152 machines the release facts and leaves narrative to humans, so the story of why it exists is hand-written. Adds the structural cause of the drift (the changesets release PR never touched this file, so three releases went stale and needed catch-up PRs #146 and #150), how the fix hooks into the changeset version step, which two spots are machine-owned versus hand-written, and the test coverage. Notes in the header which parts are now automatic, so nobody hand-edits between the RELEASE-LOG markers, and books the one unproven link: the changesets action committing this file into the version PR is not exercised until the next release.
1 parent fcd5338 commit bd2c489

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

‎CURRENT_STATE.md‎

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
# CURRENT_STATE.md
22

33
> Living document — updated inside every PR before merge.
4+
>
5+
> Since #151 the release facts (the Release Log and the Package Status Table
6+
> version) are maintained automatically by the release workflow. Everything else
7+
> here is hand-written.
48
59
## Current Version
610

@@ -365,6 +369,31 @@ scenario, `TIMEOUT_NO_HEARTBEAT` (#137, assigned) and `REPEATED_BOOT_NOTIFICATIO
365369
Scenario arithmetic to the v1.0 target of 20+: 17 today, plus #108, #137 and #139
366370
lands at 20, at which point all 16 detection rules are covered.
367371

372+
### Release Log Automation (Issue #151, PR #152)
373+
374+
- ✅ This document went stale after three consecutive releases (`0.3.2`, `0.4.3`,
375+
`0.4.4`), each needing a manual catch-up PR (#146, #150). The cause was
376+
structural: the changesets release PR bumps `package.json` and `CHANGELOG.md`
377+
and never touched this file, so the version drifted every cycle.
378+
- ✅ `scripts/update-current-state.mjs` now runs immediately after
379+
`changeset version`, wired through a `version:packages` root script that the
380+
release workflow's `version` command calls. The edit rides the existing
381+
"version packages" PR, which already gets CI and a human merge, so nothing
382+
pushes directly to protected `main` and no extra PR is created.
383+
- ✅ Two spots are machine-owned: the `@ocpp-debugkit/toolkit` row in the Package
384+
Status Table, and the Release Log between its `RELEASE-LOG` markers. The
385+
editorial prose, including the Current Version narrative, stays hand-written by
386+
design, since a per-release sentence is commentary rather than a fact.
387+
- ✅ The script is idempotent and uses only Node built-ins, so it adds no
388+
dependency. `scripts/update-current-state.test.ts` covers changelog parsing,
389+
the table replace, insert ordering, idempotency, and both error paths.
390+
- ✅ An eslint override supplies Node globals for `scripts/**/*.mjs`, which run
391+
outside the TypeScript build.
392+
- 🔜 One link is unproven until it runs for real: the changesets action committing
393+
this file into the version PR. Standard changesets behaviour commits whatever
394+
the version command produces, so the next release is the check. If the entry is
395+
missing from the next "version packages" PR, that step is where to look.
396+
368397
## What's Next
369398

370399
1. **v0.5.0 - OCPP 2.0.1 Support** - extend the engine beyond 1.6J: message

0 commit comments

Comments
 (0)