Skip to content

fix(release): preserve API compatibility and validate release candidates - #661

Merged
N0zoM1z0 merged 4 commits into
mainfrom
fix/release-breaking-version
Oct 17, 2026
Merged

N0zoM1z0 merged 4 commits into
mainfrom
fix/release-breaking-version

Conversation

@N0zoM1z0

@N0zoM1z0 N0zoM1z0 commented Oct 17, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Release PR #599 was generated as 0.1.29 despite #651 changing the public ReadResponse.target_end_line from usize to Option<usize>. Its notes also omitted the breaking marker and the caller migration. Both issues originate in the release generator: it unconditionally increments patch, and the template drops breaking descriptions.

Use the existing pinned git-cliff parser for version planning with an explicit pre-1.0 compatibility policy. The actual unreleased history now plans 0.2.0. Generated notes retain breaking markers and migration text; the same rendered file supplies the changelog and PR body. Reuse the existing autorelease PR across a version change, rejecting ambiguous multiple candidates. The release-plan CI owner now executes real Git/git-cliff fixture regressions before cargo-dist validation. Each generated candidate explicitly dispatches CI on its branch, covering the latest #599 head whose token-created pull-request run is in action_required with no executed jobs. GitHub requires approval for these automatic PR events; explicit dispatch starts validation directly, including the stable Required checks aggregate.

The separate context experiment #632 remains draft pending its owner-recall quality gate. Merging this workflow fix updates the release candidate; the release PR itself controls tagging and publication.

Validation

  • Execute the previous workflow's actual version step against current history: emits 0.1.29; the old template omits ReadResponse.target_end_line and all breaking markers.
  • Execute scripts/plan_release.py against the same real history with git-cliff 2.13.1: emits 0.2.0; rendered notes include the breaking marker and nullable-end/client migration.
  • python3 -m unittest scripts/test_plan_release.py — five real-process integration tests pass, covering compatible 0.x features, the actual fix(read)!: distinguish unknown target ends from scan frontiers #651 commit shape, footer-only and subject-only breaks, stable-version semantics, and pending-tag/no-change behavior.
  • cargo test --locked --package leantoken-xtask ci::tests -- --test-threads=1 — 17 passed; one compiler job under a memory guard, peak group RSS 0.35 GiB.
  • cargo fmt --all and git diff --check — clean.

Follow-up to the three outstanding #599 review threads. The generated release candidate, CI receipts and post-merge main will be verified before completing this follow-up.

Calculate the release version with the changelog parser and preserve Cargo
compatibility boundaries for breaking public APIs. Keep the breaking marker
and caller migration in generated notes, reuse an existing release PR across
version changes, and use one generated body for both changelog and PR.

Exercise the real planner and pinned git-cliff with disposable Git histories
in the release-plan CI lane.

Assisted-by: Reimu (gensokyo-skills:reimu-incident-triage)
Explicitly dispatch the normal bounded CI workflow after updating the release
PR, because GITHUB_TOKEN-generated PR events do not start PR validation.

Assisted-by: Reimu (gensokyo-skills:reimu-incident-triage)
@N0zoM1z0
N0zoM1z0 requested a review from morluto as a code owner October 17, 2026 04:43
@greptile-apps

greptile-apps Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[High impact] The reviewed changes appear safe to merge.

Summary

The PR replaces patch-only release planning with compatibility-aware version selection and preserves breaking-change migration notes.

  • Release versions and notes follow the changes in commit history.
  • Each release candidate reuses its open PR and gets a CI run.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  A[Main changes] --> B[Plan version with git-cliff]
  B --> C[Generate notes and update release branch]
  C --> D[Create or update release PR]
  D --> E[Dispatch candidate CI]
  E --> F[Run planned checks]
  F --> G[Verify plan and receipts]
Loading

Reviews (3) · Last reviewed commit: "docs(release): explain token-created PR ..." · Reviewed by Greptile

Comment thread .github/workflows/release-please.yml

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c91712fd03

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/release-please.yml
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-17T04:54:43.869552Z 8f527c2 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Include workflow_dispatch in the stable aggregate so candidate jobs must
provide a complete passing receipt set before the release PR can merge.

Assisted-by: Reimu (gensokyo-skills:reimu-incident-triage)
@N0zoM1z0

Copy link
Copy Markdown
Collaborator Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Hooray!

Reviewed commit: c48671f37f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Confirm the existing action_required run against current GitHub docs rather
than describing all token-created PR events as suppressed. Explicit dispatch
starts candidate validation directly.

Assisted-by: Reimu (gensokyo-skills:reimu-incident-triage)
@N0zoM1z0

Copy link
Copy Markdown
Collaborator Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Breezy!

Reviewed commit: 8f527c2b95

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@N0zoM1z0
N0zoM1z0 merged commit aeecc40 into main Oct 17, 2026
10 checks passed
@N0zoM1z0
N0zoM1z0 deleted the fix/release-breaking-version branch October 17, 2026 05:05
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