Skip to content

Give zlib a new bottle identity after the build runner changed - #29

Merged
brandonpayton merged 1 commit into
mainfrom
rollout/zlib-revision4-20260719
Jul 19, 2026
Merged

Give zlib a new bottle identity after the build runner changed#29
brandonpayton merged 1 commit into
mainfrom
rollout/zlib-revision4-20260719

Conversation

@brandonpayton

Copy link
Copy Markdown
Contributor

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 on zen3. 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_3 again cannot resolve that conflict; zlib needs a fresh supported identity.

Evidence:

What changed

Only the zlib Formula revision changes:

  • revision 3 → 4
  • package identity 1.3.1_31.3.1_4

There 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.toml do not change

This 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.toml revision 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.
  • Diff is exactly one Formula revision line.

Rollout

Do not merge while the active bzip2 pilot is verifying/finalizing. After the tap is quiet:

  1. Rebase this one-line change onto the exact accepted tap main.
  2. Merge it.
  3. Submit a fresh zlib wasm32 publication; do not rerun the failed job.
  4. Require all six publication jobs, clean tap validation, the public repository-linked package record, and credential-free complete OCI index import.
  5. Keep tap PR getconf: report Kandelo's real POSIX configuration #4 unmerged until both zlib and bzip2 pilots are fully accepted.

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
brandonpayton force-pushed the rollout/zlib-revision4-20260719 branch from ddb84b6 to f81e5ac Compare July 19, 2026 20:12
@brandonpayton
brandonpayton merged commit ea64f35 into main Jul 19, 2026
2 checks passed
@brandonpayton
brandonpayton deleted the rollout/zlib-revision4-20260719 branch July 19, 2026 20:16
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