docs: correct the release workflow description in the README - #1232
Open
MohammedAlkindi wants to merge 2 commits into
Open
docs: correct the release workflow description in the README#1232MohammedAlkindi wants to merge 2 commits into
MohammedAlkindi wants to merge 2 commits into
Conversation
The Release Workflow section describes a flow that no longer exists. It documents a second workflow input, `claude_code_version`, and a release-branch-plus-pull-request path ending in "Review and merge the release PR". publish.yml declares exactly one workflow_dispatch input, `version`. build-and-publish.yml pushes straight to main and then tags and creates a GitHub Release; there is no gh pr create and no release branch anywhere under .github. RELEASING.md already documents the real flow, so the README contradicts it. The section was written in anthropics#283 and was accurate then. anthropics#350 removed the claude_code_version input the next day and anthropics#539 removed the PR-based release path outright; neither touched the README. Also drops the claim that a new CLI version can ship without a code change: the bundled version is pinned in _cli_version.py, which build_wheel.py reads at build time.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The "Release Workflow" section describes a release flow that no longer exists.
It documents a second workflow input,
claude_code_version, and a release-branch-plus-PR path ending in "Review and merge the release PR". Neither is real:.github/workflows/publish.ymldeclares exactly oneworkflow_dispatchinput,version.claude_code_versionappears nowhere in the repo except the README line this PR removes..github/workflows/build-and-publish.ymlhas a "Push to main" step runninggit push origin main, then tags withgit tag -a "v$VERSION"and callsgh release create. There is nogh pr create, nocheckout -b, and no release branch under.github/at all.RELEASING.mdalready documents the real flow ("pushes tomain, and creates a git tag + GitHub Release", andDEPLOY_KEYas "SSH key for direct pushes tomain"), so the README currently contradicts it.The section also claimed the two versions are tracked separately "allowing you to release a new package version with an updated CLI without code changes". The bundled CLI version is pinned in
src/claude_agent_sdk/_cli_version.pyand read byscripts/build_wheel.pyat build time, so updating it is a code change.How it drifted
The section was added in #283 (2025-11-18) and was accurate that day — that PR really did add a
claude_code_versioninput, agit checkout -b, and agh pr create. It then decayed in two steps that both skipped the README:claude_code_versioninput, touching onlypublish.yml.main(remove PR-based release path)", deletedcreate-release-tag.yml, and droppedpull-requests: writefrom the release workflows.git log -Lon these lines returns exactly one commit, #283, so the section has never been revised since it was written.What this PR changes
Corrects the section to match the workflows: one input, direct push to
main, tag + GitHub Release, and a note that the CLI version is pinned in code rather than passed in. It also adds the first link from the README toRELEASING.md, and fixes the opening sentence —publish.ymldoesn't publish anything itself, it calls the reusablebuild-and-publish.yml.I kept the corrections narrow and did not touch the "macOS, Linux, and Windows" bullet, though it's worth noting it undercounts: the matrix is five runners and
build-and-publish.ymlhard-fails unless all five platform tags are present.Happy to go the other way instead — given that
RELEASING.mdcovers all of this and the README copy has now drifted through two refactors, replacing this section with a short pointer toRELEASING.mdmay be the better fix. Say the word and I'll swap it.One thing I noticed while verifying, unrelated to this PR
The last three
auto-release.ymlruns (2026-08-21, -22, -23) all concludedfailureat the "Publish to PyPI (sdist first, then wheels)" step, with all fivebuild-wheelsjobs succeeding. The latest release is v0.2.143 from 2026-08-20, whilemainhas since taken CLI bumps to 2.1.239, 2.1.240 and 2.1.241 with no release commit after them. Flagging in case it isn't already on your radar; I haven't filed anything separately.AI assistance: I used Claude Code for this investigation. Verified myself against
upstream/mainrather than taken on trust: the singleversioninput inpublish.yml; thegit push origin main/git tag -a "v$VERSION"/gh release createsteps inbuild-and-publish.yml; that nogh pr createorcheckout -bexists under.github/; thatbuild_wheel.pyreads the pinned__cli_version__from_cli_version.py; the #283 → #350 → #539 provenance; and theauto-release.ymlrun conclusions and commit history cited above.