Skip to content

Write down how a patch release is cut - #172

Merged
frangarcj merged 1 commit into
masterfrom
next-patch-release-doc
Aug 26, 2026
Merged

Write down how a patch release is cut#172
frangarcj merged 1 commit into
masterfrom
next-patch-release-doc

Conversation

@frangarcj

Copy link
Copy Markdown
Contributor

2026.08.1 was cut by hand last night, and both times it got stuck it was for the same reason: a release branch is the one tree that does not derive its version, and nothing in this repository had ever been one. Both are fixed — a75f24689 and 79a927840 — but the flow that produced them lived nowhere, so the next person cutting a patch starts where this one started.

docs/patch-release.md is that flow, reconstructed from the commits of the release itself. It hangs off the one rule that shapes every step: a patch does not move the target runtime. A binary built against 2026.08.0 has to keep meaning the same thing after 2026.08.1, which is why a patch branches from master and rolls the target pins back, rather than branching from the release and forward-porting the host fixes.

Seven steps: declare the version, roll newlib/vita-headers/pthread-embedded back to what the series shipped, the fixes, build, catalogue, point the channel, tag. Plus what went wrong the first time, with the commits that closed it.

Two corrections while writing it down:

  • the toolchain table said x86_64-apple-darwin.cmake requires osxcross. It has not since it was rewritten to drive the system Xcode with -arch x86_64 through scripts/setup-macos-cross.sh; osxcross is the alternative for a Linux build machine, which the file's own header says.
  • cmake/toolchains/aarch64-apple-darwin.cmake opens by saying it targets x86_64.

Step 6 describes the pair check that vitasdk/autobuilds#37 adds — that one first.


AI tools were used in preparing this PR (Claude Opus 5, Anthropic).

2026.08.1 was cut by hand, and both times it got stuck it was for the
same reason: a release branch is the one tree that does not derive its
version, and nothing in the repository had ever been one. Those two are
fixed -- a75f246 and 79a9278 -- but the flow that produced them
lived nowhere, so the next person cutting one starts where this one
started.

The rule the whole thing hangs off is that a patch does not move the
target runtime: a binary built against 2026.08.0 has to keep meaning
the same thing after 2026.08.1. That is why a patch branches from
master and rolls the target pins back, rather than branching from the
release and forward-porting host fixes.

Two corrections while writing it down. The x86_64 macOS toolchain file
has not needed osxcross since it was rewritten to drive the system
Xcode with -arch x86_64; osxcross is the alternative for a Linux build
machine, which its own header says. And the arm64 file's first line
says it targets x86_64.
@frangarcj
frangarcj merged commit c7f981c into master Aug 26, 2026
3 of 8 checks passed
@frangarcj
frangarcj deleted the next-patch-release-doc branch August 26, 2026 19:55
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