Skip to content

statifier_oban 0.17.0 release prep - #143

Merged
johnnyt merged 1 commit into
mainfrom
sob-l20-release-0-17-0
Sep 29, 2026
Merged

johnnyt merged 1 commit into
mainfrom
sob-l20-release-0-17-0

Conversation

@johnnyt

@johnnyt johnnyt commented Sep 29, 2026

Copy link
Copy Markdown
Member

Release prep for statifier_oban 0.17.0 (bead sob-l20). The tag and the Hex publish stay outside this PR: once it merges, the version is tagged v0.17.0 at the merge commit, and the publish is the maintainer's.

What it changes

Exactly the files .claude/wurk/release.md names for a release commit:

  • mix.exs: @version 0.16.0 -> 0.17.0
  • CHANGELOG.md: a new ## [0.17.0] 2026-09-28 section (the local date) holding the changelog.d/sob-46l.md bullet byte for byte under ### Added; no lead paragraph; the header's changelog.d/ link moved from blob/v0.16.0 to blob/v0.17.0 (release.md step B.7)
  • changelog.d/sob-46l.md: deleted, promoted above; changelog.d/ now holds only its README.md
  • README.md: install pin ~> 0.16.0 -> ~> 0.17.0

The shape matches the last release prep, d81ccf4 (Releases v0.16.0).

Why a minor

Since v0.16.0 the one host-visible change is additive: StatifierOban.Timer.Delivery.deliver/2 may answer {:snooze, seconds} (the new snooze/0 type in its @callback), and StatifierOban.Timer.Worker.perform/1 takes it in a new guarded clause and hands it to Oban unchanged. That grows the set of answers the callback accepts, so this is a minor. Nothing a host already relies on changes: a delivery that never snoozes gets the job outcomes it did before, and no telemetry event, reason or outcome is added (ADR-0010). The other lib/ changes since v0.16.0 are moduledoc and comment text in StatifierOban.Invoke.Handler, StatifierOban.Timer and StatifierOban.Timer.Delivery. mix.exs moved no dependency requirement; mix.lock moved only the locked development versions of statifier, statifier_persistence and predicator.

Verification

  • mix quality green on the committed tree: format, compile (warnings as errors), doc links, dependencies, credo, docs, tests 313 of 313 at 97.1% coverage, dialyzer. The gate ran on the staged tree that was committed (same git write-tree), so the commit was made directly on that run.
  • mix hex.build builds statifier_oban 0.17.0.
  • The promoted bullet is byte-identical to the deleted fragment's.

Review

Tier: contract (a release prep); the cold review is dispatched separately. My own read of the diff against the bead's acceptance: @version reads 0.17.0, the only fragment is promoted and deleted, the README pin reads ~> 0.17.0, and no file outside the release recipe's list is touched. ADR-0010 keeps a dated line saying mix.exs read 0.16.0 when it was written; records are append-only and it stays as written.

Release prep only: the tag, the Hex publish and the GitHub release stay
outside this commit. A minor, not a patch: the release grows the set of
answers `StatifierOban.Timer.Delivery.deliver/2` may give by one member,
`{:snooze, seconds}` (the `snooze/0` type on the callback, taken by the
new `{:snooze, seconds} when is_integer(seconds) and seconds > 0` clause
of `StatifierOban.Timer.Worker.perform/1`), and removes and changes
nothing a host already relies on: a delivery that never snoozes gets
exactly the job outcomes it did before. No telemetry event name, reason
or outcome is added.

- mix.exs: @Version 0.16.0 -> 0.17.0
- CHANGELOG.md: new [0.17.0] 2026-09-28 section (the local date), the
  sob-46l fragment's Added bullet carried over byte for byte under one
  Added heading; no lead paragraph, since mix.exs carries no dependency
  requirement move since 0.16.0 (mix.lock moved only the locked dev and
  test versions of statifier, statifier_persistence and predicator, which
  a host does not inherit) and the bullet says everything a host needs;
  the header's changelog.d link moved from v0.16.0 to v0.17.0
- changelog.d/sob-46l.md: deleted, promoted into the section above; it
  was the only fragment the directory held
- README.md: install pin `~> 0.16.0` -> `~> 0.17.0`, in the exact-minor
  `~> X.Y.0` form the pre-1.0 banner recommends

Gate: `mix quality` green on this tree (format, compile, doc links,
deps, credo, docs, 313 of 313 tests / 97.1% coverage, dialyzer) under
the repo gate lock and a machine slot, held across the commit; the
staged tree is the tree that ran. `mix hex.build` succeeds at 0.17.0.

Refs: sob-l20
@johnnyt
johnnyt merged commit cab60c5 into main Sep 29, 2026
1 check passed
@johnnyt
johnnyt deleted the sob-l20-release-0-17-0 branch September 29, 2026 04:36
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