From be2ec2cd4c783e2b78224b3b526de0d27adb3496 Mon Sep 17 00:00:00 2001 From: JohnnyT Date: Tue, 29 Sep 2026 19:17:08 -0600 Subject: [PATCH 1/2] Carries the 0.23.1 patch in the upgrading page The upgrading page places a patch as its own subsection under the minor's section, as "0.14 to 0.15" does for 0.15.0 and 0.15.1. The "0.22 to 0.23" section's existing text moves under a "0.23.0" heading unchanged, and a "0.23.1" subsection says what a host changes: NONE. A host that runs the shipped conformance suite from two or more async modules against one Postgres database no longer meets the deadlock, because each using module now retires chart hashes of its own. The page's title, its opening pin list and its schema sentence are left as they are; carrying them forward is another bead's work. A change touching no Elixir code; the full gate runs on the release commit's tree, which carries this one. Refs: sp-zllw --- docs/upgrading.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/upgrading.md b/docs/upgrading.md index 6c87af0..0358e06 100644 --- a/docs/upgrading.md +++ b/docs/upgrading.md @@ -362,6 +362,8 @@ Schema: **NONE**. The `statifier` floor stays `~> 2.9`. ## 0.22 to 0.23 +### 0.23.0 + Schema: **NONE**. The `statifier` floor stays `~> 2.9`. - **If a create, migration or tree migration can run while the same @@ -403,3 +405,15 @@ Schema: **NONE**. The `statifier` floor stays `~> 2.9`. step answers the same error and the rollback, if any, is yours. A budget-exhausted step still commits its `:failed` record. A host whose position saves never fail: **NONE**. + +### 0.23.1 + +**NONE.** Schema: **NONE**, the `statifier` floor stays `~> 2.9`, and no +answer a host matches is added or removed. + +- **If you run `StatifierPersistence.Testing.StorageConformance` from two + or more async test modules against one Postgres database**, the suite + no longer deadlocks (`40P01`) in the tombstone-check case or in the + cases that retire a hash after a create's or a migration's first + check: each module that uses the suite now retires chart hashes of its + own, derived from the module's name. Nothing in your suite changes. From caa482957e569c0d6148abad4fdce43196051903 Mon Sep 17 00:00:00 2001 From: JohnnyT Date: Tue, 29 Sep 2026 19:19:22 -0600 Subject: [PATCH 2/2] Releases v0.23.1 Bumps @version to 0.23.1. The README install pin stays `~> 0.23.0`, which already admits a patch; only a major or minor moves it. A patch, not a minor: the one fix since v0.23.0 is in the shipped conformance suite, which a host runs, so it is host-visible and cut (ruled by the operator, 2026-09-29). No closed set a host matches grows. Read in the lib/ diff since v0.23.0: - StatifierPersistence.Testing.StorageConformance derives a hash suffix from the using module's name (@conformance_hash_suffix in its `using` block) and retires only hashes carrying it, including a private own_chart_a/0 for the tombstone-check case. The suite's case names and what each case asserts are unchanged. Fragment sp-gbyk.md. - executions.ex changes one comment in batch_one/3 and nothing else. Executions.error/0, Storage.error/0, the adapter behaviour's callbacks and telemetry events/0 are unchanged. No runtime floor moves: the statifier floor stays ~> 2.9. docs/upgrading.md carries the 0.23.1 subsection in the commit before this one. Promotes changelog.d/sp-gbyk.md (Fixed) into a `## [0.23.1] 2026-09-29` section and deletes the file. The bullet is 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.23.1. No link-reference block is added. No published section is edited. Gate: full `mix quality` green on this exact staged tree, write-tree c722cb628c436c514b0cb7c8da7d386e956d3322 (format, compile with warnings-as-errors, doc links, deps, docs, credo, 1,347 of 1,347 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.23.1. No tag, no publish. Refs: sp-zllw --- CHANGELOG.md | 17 ++++++++++++++++- changelog.d/sp-gbyk.md | 3 --- mix.exs | 2 +- 3 files changed, 17 insertions(+), 5 deletions(-) delete mode 100644 changelog.d/sp-gbyk.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 7493eac..dc4e51e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,10 +6,25 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). Entries for unreleased work are not written here directly. Each issue drops a -fragment in [`changelog.d/`](https://github.com/riddler/statifier_persistence/blob/v0.23.0/changelog.d/README.md); the fragments are assembled +fragment in [`changelog.d/`](https://github.com/riddler/statifier_persistence/blob/v0.23.1/changelog.d/README.md); the fragments are assembled into a version section at release. See that README for the format and for when a change warrants an entry at all. +## [0.23.1] 2026-09-29 + +Patch release: `StatifierPersistence.Testing.StorageConformance` no +longer deadlocks when two or more modules run it asynchronously against +one Postgres database. The package's own adapters answer what they +answered in 0.23.0. + +Upgrading: nothing to change. No schema migration, the `statifier` +floor stays `~> 2.9`, and no answer a host matches is added or +removed. See `docs/upgrading.md`, "0.22 to 0.23". + +### Fixed + +- `StatifierPersistence.Testing.StorageConformance` retires only chart hashes derived from the using module's name, so two or more modules running it asynchronously against one Postgres database no longer deadlock (`40P01`) in the tombstone-check case or in the cases that retire a hash after a create's or a migration's first check. + ## [0.23.0] 2026-09-28 Feature release: under the default serialization strategy, a create, diff --git a/changelog.d/sp-gbyk.md b/changelog.d/sp-gbyk.md deleted file mode 100644 index 4219c6a..0000000 --- a/changelog.d/sp-gbyk.md +++ /dev/null @@ -1,3 +0,0 @@ -### Fixed - -- `StatifierPersistence.Testing.StorageConformance` retires only chart hashes derived from the using module's name, so two or more modules running it asynchronously against one Postgres database no longer deadlock (`40P01`) in the tombstone-check case or in the cases that retire a hash after a create's or a migration's first check. diff --git a/mix.exs b/mix.exs index c9fcba2..a1b5f56 100644 --- a/mix.exs +++ b/mix.exs @@ -1,7 +1,7 @@ defmodule StatifierPersistence.MixProject do use Mix.Project - @version "0.23.0" + @version "0.23.1" @source_url "https://github.com/riddler/statifier_persistence" def project do