Skip to content

chore(release): 2.20.0 - #106

Merged
lenzhq merged 1 commit into
mainfrom
release/2.20.0
Oct 5, 2026
Merged

lenzhq merged 1 commit into
mainfrom
release/2.20.0

Conversation

@lenzhq

@lenzhq lenzhq commented Oct 5, 2026

Copy link
Copy Markdown
Owner

What changes

Promotes the CHANGELOG.md [Unreleased] section to a dated [2.20.0] - 2026-10-05 section (AssessResponse.more_claims, extract's 100-claim ceiling, the Python 3.10 floor) and leaves a fresh empty [Unreleased] header above it. Nothing else.

  • No version bump. pyproject.toml's version is git-tag-derived via hatch-vcs by design — its own comment says "Source the version from the git tag at build time so we never have to hand-bump pyproject.toml." There is nothing to bump here; 2.20.0 takes effect only when a maintainer pushes the v2.20.0 tag.
  • No openapi.json change. Diffed the committed openapi.json against a fresh manage.py emit_openapi run from the Lenz repo's current origin/main (which already includes the /assess "20 a call" copy fix) — byte-identical, and also byte-identical to the Node SDK's copy. It was already resynced in an earlier PR, so there is nothing to regenerate here.
  • No parity gap. The Node SDK's equivalent release also only has AssessResponse.more_claims/extract(100) to promote, plus its own Node-20.19-floor entry, so both SDKs stay in lockstep.

Verified locally, the way CI does

  • uv sync --all-extras
  • ruff check . — all checks passed
  • ruff format --check . — 40 files already formatted
  • mypy src/lenz_io (strict) — no issues
  • pytest -q (full suite, coverage gate) — 92.36%, floor 87%, all green
  • uv build --wheel — builds clean
  • the repo's own pre-commit hook (ruff + mypy + pytest) ran clean on commit

Post-deploy actions and prod testing

None — this PR only reshapes CHANGELOG.md. Nothing publishes from merging it.

Publish steps for after merge (per .github/workflows/release.yml and CONTRIBUTING.md): push the v2.20.0 tag on the merge commit. hatch-vcs resolves the wheel/sdist version from that tag at build time (nothing to commit beforehand), release.yml builds and publishes to PyPI via OIDC trusted publishing, runs the opt-in staging smoke test, and posts a Discord notification on success. No GitHub Release object is created by the workflow itself.

🤖 Generated with Claude Code

Promotes the Unreleased entries (AssessResponse.more_claims, extract's
100-claim ceiling, the Python 3.10 floor) to a dated 2.20.0 section and
leaves a fresh empty Unreleased header. No source or openapi.json
change needed: pyproject.toml's version stays git-tag-derived via
hatch-vcs (by design, per its own comment: "never have to hand-bump
pyproject.toml"), and openapi.json is already byte-identical to a
fresh emit from the Lenz API (confirmed by diff against a fresh
`manage.py emit_openapi` run), so the /assess "20 a call" copy-only
change needed no resync.

Verified locally the way CI does: ruff check + format, mypy --strict,
pytest (full suite, 92.41% coverage vs. 87% floor), wheel build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@lenzhq
lenzhq requested a review from paveljor as a code owner October 5, 2026 15:41
@lenzhq
lenzhq merged commit f29d3f7 into main Oct 5, 2026
13 checks passed
@lenzhq
lenzhq deleted the release/2.20.0 branch October 5, 2026 15:47
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