Skip to content

Prepares 0.9.1 - #143

Merged
johnnyt merged 1 commit into
mainfrom
sr-u3l4-release-0-9-1
Sep 30, 2026
Merged

johnnyt merged 1 commit into
mainfrom
sr-u3l4-release-0-9-1

Conversation

@johnnyt

@johnnyt johnnyt commented Sep 30, 2026

Copy link
Copy Markdown
Member

Prepares 0.9.1

The release prep for statifier_router 0.9.1, a patch for the V03 migration on SQLite. It does the bump and the changelog promotion and nothing else, in three of the four files the release recipe names (.claude/wurk/release.md, "The files a release commit touches"):

  • mix.exs: @version goes from 0.9.0 to 0.9.1.
  • CHANGELOG.md: a ## [0.9.1] 2026-09-30 section directly below the header, with a lead paragraph and then the one fragment's ### Fixed bullet carried over byte for byte. The header's changelog.d/ link moves to blob/v0.9.1 (step 7).
  • changelog.d/sr-zb9m.md: deleted. It was the only fragment added since v0.9.0 (git diff v0.9.0..origin/main --stat lists no other file under changelog.d/). changelog.d/README.md stays.
  • README.md: untouched. The install pin stays at ~> 0.9.0; a patch release leaves the pin alone.

No tag and no publish. The merge and the annotated tag at the merge SHA belong to the conductor, and mix hex.publish belongs to the operator. mix hex.build builds 0.9.1. The tar it wrote was deleted before the commit.

Why a patch

git diff v0.9.0..origin/main --stat -- lib is non-empty: lib/statifier_router/migrations.ex and lib/statifier_router/migrations/v03.ex. Nothing in it grows or changes a public surface:

  • StatifierRouter.Migrations.V03's private rename_index/3 skips its ALTER INDEX when the repo's adapter is Ecto.Adapters.SQLite3. On every other adapter it runs the same statement as in 0.9.0, so a Postgres host sees the same SQL.
  • V03.up/1 and V03.down/1 keep their names, arities and specs; only their @doc strings gain "on SQLite, nothing". The rest is moduledoc text in V03 and StatifierRouter.Migrations saying the same.
  • No module, function, option, configuration key or migration version is added or removed. StatifierRouter.Migrations.up/1 and down/1 walk the same versions as in 0.9.0.
  • mix.exs adds ecto_sqlite3 with only: :test, beside postgrex. It does not ship in the package and no host sees it.

The fix turns a migration that failed on SQLite into one that succeeds there, which is a bug fix, not a new surface.

Gate

Full mix quality ran on this exact tree (git write-tree 0e565499 before and after the run). The repo gate lock and a machine slot were held from the run through the commit. The run's output:

Running quality checks...

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

Running analysis stages in parallel...

○ Doctor: skipped (:doctor not installed)
○ Gettext: skipped (:gettext not installed)
○ Sobelow: skipped (:sobelow not installed)
✓ Isolated tests: Passed (1.9s)
✓ Doc links: 1 link checked (9ms)
✓ Dependencies: No unused dependencies (815ms)
✓ Docs: No warnings (1.8s)
✓ Credo: No issues (1.8s)
✓ Tests: 422 of 422 passed, 97.7% coverage (4.0s)
⋯ Dialyzer: building PLT (this is a one-time cost)
✓ Dialyzer: No warnings (PLT built this run) (50.9s)

✓ All quality checks passed!

Refs: sr-u3l4

The bump and the changelog promotion, and nothing else: `mix.exs`'s
`@version`, which `StatifierRouter.version/0` and the docs'
`source_ref` both read; the one `changelog.d/` fragment on main
(sr-zb9m) assembled into a `## [0.9.1] 2026-09-30` section under a
lead paragraph, and deleted in the same commit, its bullet carried over
byte for byte; and the header's `changelog.d/` link moved to
`blob/v0.9.1`. The README install pin stays at `~> 0.9.0`, as a patch
leaves it.

A patch, because nothing grows or changes a public surface: since
v0.9.0, lib/ changes only `StatifierRouter.Migrations.V03`'s private
`rename_index/3`, which skips the `ALTER INDEX` when the repo's adapter
is `Ecto.Adapters.SQLite3`, and the moduledoc and `@doc` text that say
so. `up/1`, `down/1` and every spec are unchanged, no module, function,
option or migration version is added, and a Postgres host sees the same
SQL. `ecto_sqlite3` is a test-only dependency and does not ship.

No tag and no publish: the merge and the tag are the conductor's, the
publish the operator's. `mix hex.build` builds 0.9.1; the tar it wrote
was deleted before this commit.

Full `mix quality` green under the repo gate lock and a machine slot on
this exact tree (write-tree 0e56549 before and after the run), held
across this commit: format, compile, isolated tests, doc links, deps,
docs, credo, 422 of 422 tests at 97.7% coverage, dialyzer.

Refs: sr-u3l4
@johnnyt
johnnyt merged commit c4f96ff into main Sep 30, 2026
1 check passed
@johnnyt
johnnyt deleted the sr-u3l4-release-0-9-1 branch September 30, 2026 18:01
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