Skip to content

ci(regen): seed changelog under [Unreleased], drop version bump#121

Merged
zfarrell merged 2 commits into
mainfrom
ci/regen-no-version-bump
Jun 19, 2026
Merged

ci(regen): seed changelog under [Unreleased], drop version bump#121
zfarrell merged 2 commits into
mainfrom
ci/regen-no-version-bump

Conversation

@zfarrell

Copy link
Copy Markdown
Contributor

The regenerate workflow auto-bumped pyproject.toml (patch) and minted a dated ## [X.Y.Z] CHANGELOG section per run. That mints a version that may never publish (e.g. 0.4.1 sat bumped-but-unreleased until #120 rolled #118 into it).

A regen is just a set of changes; which release ships them — and the bump kind — is scripts/release.sh prepare's job. This makes regen seed its note under ## [Unreleased] and stop touching the version.

  • Removes the version-bump step; regen no longer changes pyproject.toml.
  • Seeds the regen title under [Unreleased] (prepends to ### Changed, creating it if absent; idempotent).
  • Drops packageVersion from the generator call — unused (version reads from package metadata).
  • check-release.py is a no-op when the version is unchanged, and regen still touches CHANGELOG.md, so the wheel build/import smoke test still runs. Updated the stale comments that assumed a version bump.

Comment thread .github/workflows/regenerate.yml Outdated
end = start + nxt.start() if nxt else len(text)
body = text[start:end]

if bullet in body:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

super nit: the idempotency guard uses a substring check (bullet in body), so a title that is a prefix/substring of an already-listed bullet (e.g. seeding - Add foo when - Add foobar already exists) would be treated as already-present and silently skipped, dropping the regen note. A line-exact match would be more robust, e.g. if any(line.strip() == bullet for line in body.splitlines()). Minor since regen titles are typically long/unique. (not blocking)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch — switched to a line-exact match (any(line.strip() == bullet ...)) so a prefix/substring title can't be silently dropped. Applied here and in the matching sdk-rust PR.

claude[bot]
claude Bot previously approved these changes Jun 19, 2026

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed. Logic is correct and consistent with the release tooling (update_changelog.py rolls the [Unreleased] body into the version section on release). One non-blocking super nit left inline.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed: regen now seeds notes under [Unreleased] and drops the version bump. Logic traced against the current CHANGELOG and the release flow (update_changelog.py/release.sh consume [Unreleased]); check-release.py is a no-op for unchanged versions, so regen PRs still pass while the wheel smoke test runs on the CHANGELOG touch. Idempotency uses the line-exact match. LGTM.

@zfarrell zfarrell merged commit 37f628c into main Jun 19, 2026
4 checks passed
@zfarrell zfarrell deleted the ci/regen-no-version-bump branch June 19, 2026 15:25
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