Skip to content

chore(release): 0.2.1 — the first release in which a green result is evidence - #70

Merged
samarthputhraya merged 2 commits into
mainfrom
chore/release-0.2.1
Sep 2, 2026
Merged

chore(release): 0.2.1 — the first release in which a green result is evidence#70
samarthputhraya merged 2 commits into
mainfrom
chore/release-0.2.1

Conversation

@samarthputhraya

Copy link
Copy Markdown
Owner

Version bump only — the substance shipped in #67, #68 and #69.

The first release in which a GREEN result is evidence. Until now, two reachable paths let modelpin check report "looks safe to adopt" over something it never measured, and PyPI's 0.2.0 still contains both.

What a user gets that they did not have

  • MP-159 — the channel census counted a tool that was declared, not one that was called. [M] On a real six-scenario suite against openai/gpt-oss-120b, all six declared tools and only four ever called one: a third of the suite was collecting a clearance it had not earned.
  • MP-160 — a scenario with no baseline vanished from the PR comment entirely and the run still exited 0. [M] In the reproduction that scenario was a proven regression, reported as adoptable.
  • MP-161 / MP-170 — the first error a stranger without the SDK extra hits told them to run pip install 'modelpin': the command they had just run. Rich was eating [providers] as a style tag.

Verified before tagging

  • [M] 749 passed + 4 xfailed (753 collected), 95% of 2085; ruff + black clean.
  • [M] twine check PASSES on both the wheel and the sdist.
  • [M] Clean-venv install of the actual 0.2.1 wheel, no extras, empty directory: version → 0.2.1, init --demo → 0, baseline → 0, check → exit 1 with the regression, scan → 0. The README quickstart runs verbatim from the shipped artifact.
  • [M] modelpin/data/models.json is absent from the wheel by designwatcher/registry.py mirrors it into Python precisely because "under pip install there is no such file", and sniffing the cwd was judged worse than the failure.

Release mechanics

Publishing is Trusted Publishing (OIDC) from release.yml, fired by a published GitHub Release — not by pushing a tag. After merge: tag v0.2.1 at the merge commit, re-point the floating v1 to the same commit (it currently points at 63a8bbb, and v1 must resolve to a commit containing the root action.yml or every consumer's workflow breaks), then publish the Release.

The first release in which a GREEN result is evidence.

Two ways a run could report `looks safe to adopt` over something it never
measured are closed (MP-159, MP-160), and the first error a stranger hits no
longer hands them the command they just ran (MP-161/MP-170).

`[M]` 749 passed + 4 xfailed (753 collected), 95% of 2085, ruff + black clean.
`[M]` Verified from a clean-venv wheel install: init --demo / baseline / check
all behave as the README documents.
…at was wrong a fifth time

The pre-release claims audit BLOCKED 0.2.1 on two doc defects, neither in code.

1. CHANGELOG link definitions were stale: `[Unreleased]` still compared from
   v0.2.0, and there was no `[0.2.1]` definition at all, so the new heading
   rendered unlinked.

2. The 0.2.1 summary claimed 'the first release in which a GREEN result is
   evidence'. Refuted three ways: ADR-0033's own stated accepted failure mode (a
   run exits 0 over a scenario it never measured), the strict xfail pinning
   MP-165, and MP-44 -- which the auditor proved live by RENDERING a Report,
   showing `_report_header` branches on five conditions and never on
   `meta.skipped`, so a document that measured 1 of 14 still leads with 'No
   behavioral change observed'. The entry now says what is true: two specific
   holes are closed, and a green exit code is still not proof of full coverage.

Also fixed, and it is the same mistake a fifth time: README's exit-code paragraph
omitted provider rejection, though `check` exits 3 whenever `unmeasured or
rejected`. The MP-160 commit claimed the contract was 'restored on all four'
surfaces. There were five.

Added the missing CHANGELOG entry for MP-161/MP-170 -- the summary advertised the
fix while the document carried no record of it, including the user-visible
`scan` and `init` path corruption.

`[M]` 749 passed + 4 xfailed; README's 749 / 753 / 95% independently reconfirmed
by the auditor, along with both suite hashes.
@samarthputhraya
samarthputhraya merged commit 873281c into main Sep 2, 2026
4 checks passed
@samarthputhraya
samarthputhraya deleted the chore/release-0.2.1 branch September 2, 2026 14:48
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