Skip to content

Releases v0.24.0 - #251

Merged
johnnyt merged 2 commits into
mainfrom
sp-7ghq-release-0-24-0
Sep 30, 2026
Merged

johnnyt merged 2 commits into
mainfrom
sp-7ghq-release-0-24-0

Conversation

@johnnyt

@johnnyt johnnyt commented Sep 30, 2026

Copy link
Copy Markdown
Member

Release prep for statifier_persistence 0.24.0: the version bump, the changelog promotion, the README pin, and the upgrading page's "0.23 to 0.24" section. The merge and the annotated tag v0.24.0 at the merge commit follow the family norm; mix hex.publish is the operator's. No tag and no publish here.

Why a minor

The per-chart advisory lock's key now carries the store (chart_store/1 in StatifierPersistence.Storage.Ecto, used by chart_lock/3), which a dated Amendment on ADR-0012 decides, and the shipped conformance suite renames what it defines in a host test module under one reserved prefix, the public injected conformance_forward_adapter_call/4 among them.

Closed-set check over the promoted fragments and git diff v0.23.1..origin/main -- lib: the diff touches lib/statifier_persistence/storage/ecto.ex and lib/statifier_persistence/testing/storage_conformance.ex only. No closed vocabulary a host matches grows: executions.ex, storage.ex, telemetry.ex and storage/adapter.ex are unchanged since v0.23.1, so Executions.error/0, Storage.error/0, the adapter callbacks and Telemetry.events/0 are as they were; no suite case is added or removed. No migration: nothing under lib/statifier_persistence/ecto/ changed and the migrations module still holds V01 through V08.

Commits

  1. Carries the 0.24.0 minor in the upgrading page (docs/upgrading.md only). A "0.23 to 0.24" section in the page's minor shape, one section with no patch subsection as "0.21 to 0.22" is: Schema NONE; the store-scoped lock key (two stores in one database no longer wait on each other; the first key is unchanged, so a host whose own locks use another first key sees no overlap it did not see before); the suite's reserved prefix (a host test module that called a suite helper by its old name adds the prefix). The title, opening paragraph, pin chain and schema sentence move on to 0.24.
  2. Releases v0.24.0, following .claude/wurk/release.md:
    • Step A, "the version carrier: None. mix.exs's @version is the only place this package's version string lives": @version moves to 0.24.0.
    • Step B, "promote the changelog fragments": changelog.d/sp-b3y4.md and changelog.d/sp-j6vh.md (both ### Changed) become a ## [0.24.0] 2026-09-30 section (the local date from date +%F, no - separator) above 0.23.1, with a lead paragraph (the release kind and the upgrade note, the host-visible rename in bold); both bullets carried byte for byte (checked line by line against the fragments at the commit before); no link reference; the fragments deleted; the header's changelog.d/README.md link moved to blob/v0.24.0.
    • "The README install pin": {:statifier_persistence, "~> 0.24.0"}, the exact-minor form with a literal 0.
    • "The files a release commit touches": exactly mix.exs, README.md, CHANGELOG.md and the two deleted fragments.

Gate

Full mix quality, quoted whole from the run on the release commit's exact staged tree (write-tree ed0a57c6), with the repo gate lock and a machine slot held across the run and the commit; Postgres answered on 5432:

✓ Format: No changes needed (304ms)
✓ Compile: dev + test compiled (warnings as errors) (17.2s)

Running analysis stages in parallel...

○ Doctor: skipped (:doctor not installed)
○ Gettext: skipped (:gettext not installed)
○ Sobelow: skipped (:sobelow not installed)
✓ Doc links: 8 links checked (18ms)
✓ Dependencies: No unused dependencies (397ms)
✓ Credo: No issues (2.5s)
✓ Docs: No warnings (2.6s)
✓ Tests: 1,427 of 1,427 passed, 95.8% coverage (11.1s)
⋯ Dialyzer: building PLT (this is a one-time cost)
✓ Dialyzer: No warnings (PLT built this run) (42.6s)

✓ All quality checks passed!

The tree committed is byte-identical to the tree that ran green, so the commit carries that run rather than a second one. mix hex.build built statifier_persistence 0.24.0.

Provenance

  • The upgrading section rides its own commit ahead of the release commit, as the 0.23.1 prep did ("Carries the 0.23.1 patch in the upgrading page", then "Releases v0.23.1"), because the release recipe's file table allows no other file in the release commit.
  • The lead paragraph bolds the one host-visible rename, per the recipe's "A breaking change is called out in bold here too".

Refs: sp-7ghq

Adds a "0.23 to 0.24" section in the page's minor shape, one section
with no patch subsection, as "0.21 to 0.22" is. Schema: NONE; the
migrations module still holds V01 through V08, and nothing under
lib/statifier_persistence/ecto/ changed since v0.23.1. It names the two
things a host sees:

- the per-chart advisory lock is keyed by the store as well as the
  content hash, so two stores in one Postgres database no longer wait
  on each other; the first key is unchanged, so a host whose own locks
  use another first key sees no overlap it did not see before;
- the conformance suite's names in a using module carry one reserved
  prefix, so a host test module that called a suite helper by its old
  name adds the prefix.

The title, the opening paragraph, the pin chain and the schema
sentence move on to 0.24.

A change touching no Elixir code; the full gate runs on the release
commit's tree, which carries this one.

Refs: sp-7ghq
Bumps @Version to 0.24.0 and moves the README install pin to
`~> 0.24.0`.

A minor, not a patch: the per-chart advisory lock's key now carries
the store (chart_store/1 in StatifierPersistence.Storage.Ecto), which
a dated Amendment on the retention record decides, and the shipped
conformance suite renames the names it defines in a host test module
under one reserved prefix, a public injected function among them. Read
in the lib/ diff since v0.23.1:

- storage/ecto.ex: chart_lock/3 hashes chart_store(opts) with the
  content hash as the second key; the first key, @chart_lock_namespace,
  is unchanged. Two private helpers, chart_store/1 and
  quote_identifier/1. Fragment sp-j6vh.md.
- testing/storage_conformance.ex: every injected attribute, private
  helper and nested module moves under `conformance_` / `Conformance`,
  and __conformance_forward_adapter_call__/4 becomes
  conformance_forward_adapter_call/4. No case is added or removed.
  Fragment sp-b3y4.md.

No closed set a host matches grows: Executions.error/0, Storage.error/0,
the adapter behaviour's callbacks and telemetry events/0 are unchanged.
No migration: the migrations module holds V01 through V08, and nothing
under lib/statifier_persistence/ecto/ changed. The statifier floor stays
~> 2.9. docs/upgrading.md carries the "0.23 to 0.24" section in the
commit before this one.

Promotes changelog.d/sp-b3y4.md and changelog.d/sp-j6vh.md (both
Changed) into a `## [0.24.0] 2026-09-30` section and deletes them. The
bullets are carried over byte for byte; the lead paragraphs are the
only prose written here: the release kind and the upgrade note. The
heading carries no `-` separator and the date is this machine's local
date. The header's changelog.d/ link moves to v0.24.0. No
link-reference block is added. No published section is edited.

Gate: full `mix quality` green on this exact staged tree, write-tree
ed0a57c (format, compile with
warnings-as-errors, doc links, deps, credo, docs, 1,427 of 1,427 tests
at 95.8% coverage, dialyzer), with the repo gate lock and a machine
slot held across the run and this commit; Postgres answered on 5432.
`mix hex.build` built statifier_persistence 0.24.0.

No tag, no publish.

Refs: sp-7ghq
@johnnyt
johnnyt merged commit 9f9eaa0 into main Sep 30, 2026
1 check passed
@johnnyt
johnnyt deleted the sp-7ghq-release-0-24-0 branch September 30, 2026 06:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant