Skip to content

ci: move macOS builds and verification to Xcode 27 - #454

Merged
steipete merged 1 commit into
mainfrom
ci/macos27-20261018
Oct 19, 2026
Merged

steipete merged 1 commit into
mainfrom
ci/macos27-20261018

Conversation

@steipete

Copy link
Copy Markdown
Collaborator

Move all repository-local macOS CI and release jobs to xcode-27. Both native targets now use Apple Silicon; the Intel smoke and verifier assert Rosetta support, install it only when missing, and execute x86_64 binaries explicitly under Rosetta.

The documented macOS 13.0 floor is now enforced on every Mach-O payload in packaging, verification and native CI. Bun embeds a prebuilt runtime, so setting a deployment environment alone cannot prove the resulting target. The release rehearsal and PR CI share the same native build, signature, archive and execution checks. Node >=24, Bun 1.4.3, pnpm and package versions are unchanged.

Validation: workflow lint, ShellCheck and local release contract tests passed, including missing/newer deployment-target rejection. The documented pnpm check and pnpm test passed on a disposable AWS runner (2,270 tests passed, 27 optional tests skipped). Independent review found no actionable issues through P2. Native macOS proof runs in this PR; the merged-main release dry run will exercise both targets without publishing.

@steipete
steipete requested a review from a team as a code owner October 19, 2026 01:36
@clawsweeper

clawsweeper Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

ClawSweeper review complete

ClawSweeper finished reviewing this revision. The review result is being finalized.

View the workflow run.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 19, 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-19T01:39:18.766009Z 7040720 PR opened
ℹ️ 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.

@clawsweeper clawsweeper Bot added P2 Normal priority bug or improvement with limited blast radius. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Oct 19, 2026
@clawsweeper

clawsweeper Bot commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge.

What this changes

This PR moves macOS workflows to Xcode 27, shares native smoke checks, asserts Rosetta support, and enforces the existing macOS 13.0 binary target.

Example: A Bun build produces an arm64 mcporter binary declaring macOS 27.0.

  • Before: Packaging could proceed despite the documented macOS 13.0 requirement.
  • After: Packaging rejects the binary before signing because its deployment target is 27.0.

Review scores

Measure Result What it means
Overall readiness 🦐 gold shrimp (3/6) The focused patch has no actionable findings and passing checks; inspected behavior evidence consists of source and Actions step results rather than raw runtime output.
Proof confidence 🦐 gold shrimp (3/6) This collaborator-authored PR is exempt from the ordinary contributor proof gate; the exact-head xcode-27 job reports successful shared native smoke execution for arm64 and x86_64, while the proxy prevented inspection of raw terminal logs.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Product

Kind: Maintenance · Worth it: Yes · Fix scope: Complete
User problem: Native releases can acquire a newer macOS requirement from the embedded Bun runtime unless the documented compatibility target is checked.
Reason: The collaborator-authored direction is established, and automatic enforcement addresses a documented release failure without changing package versions or user configuration.

Merge readiness

✅ Ready for maintainer review

Keep this PR open: it is collaborator-authored, adds useful release safeguards absent from the reviewed main revision, and has no actionable correctness or security findings.

Priority: P2
Reviewed head: 7040720e0dd687cdb2fdf0b4852ae4ef5e7c21da

Before merge

None.

Findings

None.

Tests

  • Missing end-to-end proof: Raw terminal output was unavailable, so successful Actions step metadata supports execution but does not independently expose the native command traces or negative deployment-target results.
Agent review details

How this fits together

The release tooling turns repository source into native archives and verifies downloaded release candidates before publication; the changed checks inspect Mach-O metadata and execute both native architectures.

flowchart TD
  A[Repository source] --> B[Bun native build]
  B --> C[Architecture and macOS target checks]
  C --> D[Signature verification and archive]
  D --> E[Native or Rosetta CLI smoke]
  F[Downloaded release candidates] --> C
Loading

Technical review

Best possible solution:

Land the shared native checks while preserving the existing macOS 13.0, signing, and publication contracts.

Do we have a high-confidence way to reproduce the issue?

Main's packager and verifier lack deployment-target checks, and the release history records a real build embedding macOS 27; no target code was run during this read-only review.

Is this the best way to solve the issue?

The shared smoke script retains the existing rehearsal checks and adds validation at packaging and verification boundaries, directly enforcing the previously documented contract.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning medium; reviewed against 90bb83f934cb.

Provenance checked

  • Native rehearsal and signing keeps the original intent (ci: add a no-publish release rehearsal #449: Provide a credential-free release rehearsal; ci: seal native rehearsal binaries before verification #450 subsequently added explicit ad-hoc signing for invalid Bun Intel signatures.)
  • macOS CI selection changes intended behavior with a stated reason (b86eec0: Pin the macOS runner label; subsequent CI history preserves separate macOS lint handling.)
  • Official packaging and verification keeps the original intent (9aab395: Build and verify both native release architectures with protected signing, provenance, and execution checks.)

Testing

Proof path: shipped entry point.

Security

None.

Evidence

What I checked:

Likely related people:

  • Peter Steinberger: Raw commit 9d3cf4f adds docs/RELEASE.md:57 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: high; commits: 9d3cf4f4a3b0; files: docs/RELEASE.md)

Labels

Label changes:

  • add P2: This is a focused release-reliability improvement that prevents incompatible native artifacts without an established urgent user outage.
  • add rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦐 gold shrimp and patch quality is 🐚 platinum hermit.
  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR.

Label justifications:

  • P2: This is a focused release-reliability improvement that prevents incompatible native artifacts without an established urgent user outage.
  • rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦐 gold shrimp and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR.

Rating scale

6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior.

Workflow

ClawSweeper edits this one comment on every review. Comment @clawsweeper re-review for a fresh review only. Repair and merge execution lanes are retired.

Reviewed October 18, 2026, 9:49 PM ET / October 19, 2026, 01:49 UTC.

@steipete
steipete merged commit 5362d60 into main Oct 19, 2026
10 checks passed
@steipete
steipete deleted the ci/macos27-20261018 branch October 19, 2026 02:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P2 Normal priority bug or improvement with limited blast radius. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant