Give zlib a new bottle identity after the build runner changed - #29
Merged
Conversation
The retry ran on a zen3 host instead of the zen4 host recorded in the existing retained Homebrew receipt. That truthful build-environment difference changed the immutable bottle bytes, so move zlib from 1.3.1_3 to the unused 1.3.1_4 identity rather than overwriting the public index.
brandonpayton
force-pushed
the
rollout/zlib-revision4-20260719
branch
from
July 19, 2026 20:12
ddb84b6 to
f81e5ac
Compare
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.
Why
Zlib's fresh publication retry rebuilt and tested successfully, but the immutable version index correctly rejected the new child at
1.3.1_3.wasm32_kandelo.The existing public bottle was built on a runner whose retained Homebrew receipt records CPU family
zen4. The retry ran onzen3. Kandelo deliberately retains truthful Homebrew build-environment metadata in the bottle, so that CPU change produced different archive bytes even though the Formula, support closure, target outputs, installed size, and bottle byte count were otherwise unchanged.An immutable Homebrew reference must never be overwritten with different bytes. Retrying
1.3.1_3again cannot resolve that conflict; zlib needs a fresh supported identity.Evidence:
zen4):sha256:9aa823777633cad51e986cb0c3a74950d7ae87a2a09500ed43a02f809c0c0f36zen3):sha256:72099bbcc409f455d04336145d1e7cb7983fdae5d1de7a6a144ff9ddaede705dWhat changed
Only the zlib Formula revision changes:
1.3.1_3→1.3.1_4There is no handwritten bottle block. A successful publication remains responsible for generating the bottle block and all Kandelo sidecars.
The old top index, child manifest, bottle layer, and failure evidence remain immutable and are not deleted or replaced. The newly uploaded but unindexed content-addressed child also remains harmless audit evidence.
Why target binaries and
build.tomldo not changeThis change gives the outer Homebrew distribution artifact a new identity. It does not change zlib source, checksum, SDK/sysroot, compiler flags, build steps, target library, headers, tests, or Kandelo package archive inputs. Therefore no Kandelo
build.tomlrevision or ABI change is required.Validation
ruby -c Formula/zlib.rb— passed.brew style Formula/zlib.rb— one file inspected, no offenses.bash Kandelo/test-workflow-trust.sh— passed.git diff --check— passed.Rollout
Do not merge while the active bzip2 pilot is verifying/finalizing. After the tap is quiet:
main.