From 57c1ebf1f3604f65911adcfb5e9a8438de73557b Mon Sep 17 00:00:00 2001 From: JohnnyT Date: Sat, 10 Oct 2026 16:29:28 -0600 Subject: [PATCH] Accepts ADR-0018, the release workflow record The release workflow has published a version of this package: statifier_persistence 0.24.1 from the tag v0.24.1, its one run green in every step. Every claim of the record was re-verified on main, so the Status line flips to accepted naming 0.24.1, a dated foot Note gives the evidence and the verified SHA, and the index row reads accepted. No other line changes. --- ...ase-workflow-publishes-on-a-version-tag.md | 37 ++++++++++++++++++- docs/adr/README.md | 2 +- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/docs/adr/0018-the-release-workflow-publishes-on-a-version-tag.md b/docs/adr/0018-the-release-workflow-publishes-on-a-version-tag.md index f54942d..967f491 100644 --- a/docs/adr/0018-the-release-workflow-publishes-on-a-version-tag.md +++ b/docs/adr/0018-the-release-workflow-publishes-on-a-version-tag.md @@ -1,6 +1,6 @@ # ADR-0018: The release workflow publishes to Hex on a version tag, and only when the tagged commit is on the default branch, names the version in `mix.exs` and passes the full gate there -Status: proposed (2026-10-04) +Status: accepted (2026-10-10, statifier_persistence 0.24.1) ## Context @@ -104,3 +104,38 @@ the toolchain read out of `mise.toml` and the gate command read out of they are in the run's log. - The toolchain, cache, dependency and gate steps are a copy of `ci.yml`'s. A change to one is made to both in the same change. + +## Note (2026-10-10): accepted + +This Note decides nothing and changes no decision; it records the flip of +the Status line above from proposed to accepted. The record was to be +accepted once the release workflow had published a version of this +package; that these records flip together on that first publish, one pull +request per repository, was ruled by the operator, 2026-10-06. + +- **The first publish through the workflow.** statifier_persistence + 0.24.1: the tag `v0.24.1` on commit `019710344401bce3a7c3607978b9a0e8b39c8bb5`, + published by the workflow run + https://github.com/riddler/statifier_persistence/actions/runs/37307983702 + (started 2026-10-05T12:12:57Z, on a tag push, first attempt), every step + of the job green: the ancestry check, the version check, the Hex check, + the full quality gate, the publish and the printed addresses. Hex shows + the version. +- **Later publishes through the workflow.** None: that run is the only run + of the release workflow. +- **Verified at.** Every claim of the Context, the Decision and the + Consequences was re-read on `main` at + `f14c8a642c684071cc3b679e165072f0b968cbcb` on the day of this Note, in + `.github/workflows/release.yml`, `.github/workflows/ci.yml`, + `.claude/wurk.json` `gate.full`, `.claude/wurk/release.md` ("What a + release here still is not"), `CLAUDE.md` (the release row and the + "Release preps" paragraph), `mix.exs` and `mise.toml`; each holds. No + commit after the tag touches any of those files. +- **The Context's "Nothing runs on a tag push today".** That sentence + describes the repository when the record was written; decision 1 is the + change that made it no longer so, and the record is unchanged. + +That the Note gives the first publish, the later ones and the verified +SHA, and that the Status line names the first version published through +the workflow, were decided by the conductor under a standing consent, +2026-10-10. diff --git a/docs/adr/README.md b/docs/adr/README.md index f739f2f..c6444e6 100644 --- a/docs/adr/README.md +++ b/docs/adr/README.md @@ -19,7 +19,7 @@ | [0015](0015-the-tree-migration.md) | The tree migration: `Executions.migrate_tree/4` takes one ADR-0013 plan per node by execution id, reads the tree through the linkage, validates every node before any is written and writes children first in one store unit through a new optional adapter callback, applies `on_failure: :refuse \| :park` to the whole tree, reports ADR-0013's event once per node moved, and rewrites a migrated child's linkage pin in the same unit | accepted | | [0016](0016-pruning-finished-executions.md) | Pruning a finished execution: `Retention.prune/3` nulls the position blob and deletes the input log of every `:completed`, `:failed` or `:cancelled` execution whose `ended_at` is before a host-supplied `DateTime`, in idempotent batches through one optional adapter callback; the execution row is kept whole as the tombstone, the positions table is not touched, no duration and no default window, and a read after a prune is not yet distinct from an empty log | accepted | | [0017](0017-migrating-the-executions-on-a-chart.md) | Migrating the executions on a chart: `Executions.migrate_batch/3` applies one plan per pair of chart hashes to every `:active` and `:needs_migration` execution on `from`, with a dry run answering `:would_migrate`, `:would_refuse` or `:skipped` per execution, `on_failure: :refuse` by default and `:park` on request, linked executions through `migrate_tree/4`, classes as a composition, one report and one `[:statifier_persistence, :execution, :migrate_batch]` span, rollback as a reverse plan, and a status-set listing by content hash behind the existing capability | accepted | -| [0018](0018-the-release-workflow-publishes-on-a-version-tag.md) | The release workflow publishes to Hex on a `v*.*.*` tag push and nothing else, only when the tagged commit is on the default branch (read from the push event), the tag equals `@version` in `mix.exs` there and the full gate is green there; the `HEX_API_KEY` secret reaches the publish step alone, the docs publish with the package, a failed run is never retried by the workflow, and a published version stands | proposed | +| [0018](0018-the-release-workflow-publishes-on-a-version-tag.md) | The release workflow publishes to Hex on a `v*.*.*` tag push and nothing else, only when the tagged commit is on the default branch (read from the push event), the tag equals `@version` in `mix.exs` there and the full gate is green there; the `HEX_API_KEY` secret reaches the publish step alone, the docs publish with the package, a failed run is never retried by the workflow, and a published version stands | accepted | New ADRs: next number, same three-section format (Context, Decision, Consequences). Pick the number against a freshly fetched remote. A bare