Skip to content

Add universal macOS release verification#73

Open
jmcte wants to merge 2 commits into
mainfrom
codex/issue-53-universal-binaries
Open

Add universal macOS release verification#73
jmcte wants to merge 2 commits into
mainfrom
codex/issue-53-universal-binaries

Conversation

@jmcte
Copy link
Copy Markdown
Contributor

@jmcte jmcte commented May 23, 2026

Summary

  • Adds a universal macOS release build helper that builds apw for aarch64-apple-darwin and x86_64-apple-darwin, combines the CLI with lipo, and builds APW.app with SwiftPM --arch arm64 --arch x86_64.
  • Adds a lipo verifier plus a fake-lipo regression test, and wires the verifier into fast checks and the release workflow.
  • Keeps universal release builds on the vendored OpenSSL path, with a fast contract test proving the release helper no longer depends on Homebrew/pkg-config OpenSSL discovery.
  • Updates local release packaging and release docs so archives are expected to contain universal CLI and app binaries.

Closes #53.

Verification

  • bash scripts/test-verify-universal-binaries.sh
  • bash scripts/test-universal-release-config.sh
  • bash -n scripts/build-universal-release.sh scripts/test-universal-release-config.sh scripts/ci/run-fast-checks.sh
  • bash -n scripts/build-native-app.sh scripts/build-universal-release.sh
  • bash scripts/ci/run-fast-checks.sh
  • ruby -e 'require "yaml"; YAML.load_file(".github/workflows/release.yml")'
  • git diff --check
  • ./scripts/build-universal-release.sh
    • verified apw: x86_64 arm64
    • verified APW.app: x86_64 arm64
  • ./scripts/build-apw-release.sh --skip-version --no-archive-smoke
    • produced dist/apw-macos-v2.0.0.tar.gz
    • verified apw: x86_64 arm64
    • verified APW.app: x86_64 arm64

Notes

  • Full hardware smoke on both Intel and Apple Silicon should still be captured during an actual signed/notarized release run.

@jmcte jmcte requested a review from pheidon as a code owner May 23, 2026 22:53
@athena-omt athena-omt added area:infra Infrastructure, CI, release, governance, scripts, or repo setup. lane:hephaestus Hephaestus build/repo-ops lane. review:athena Athena review governance requested. risk:medium Medium-risk change; normal care required. state:waiting-checks Waiting for CI/check status to settle. status:needs-review PR is ready for Athena review. labels May 23, 2026
pheidon
pheidon previously approved these changes May 24, 2026
Copy link
Copy Markdown
Contributor

@pheidon pheidon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved from Pheidon second-pass review. Universal release verification has dedicated script/test coverage and the full PR Fast CI, Rust, and Native App Swift checks are green.

@jmcte jmcte enabled auto-merge (squash) May 24, 2026 01:45
@pheidon pheidon force-pushed the codex/issue-53-universal-binaries branch 2 times, most recently from deba4c4 to 7daeea6 Compare May 24, 2026 02:07
Build release CLI and APW.app artifacts with arm64 and x86_64 slices, verify them with lipo, and wire the gate into release and fast checks.

Closes #53.
@pheidon pheidon force-pushed the codex/issue-53-universal-binaries branch from 7daeea6 to 406f29b Compare May 24, 2026 02:08
@jmcte jmcte removed the state:waiting-checks Waiting for CI/check status to settle. label May 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:infra Infrastructure, CI, release, governance, scripts, or repo setup. lane:hephaestus Hephaestus build/repo-ops lane. review:athena Athena review governance requested. risk:medium Medium-risk change; normal care required. status:needs-review PR is ready for Athena review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Roadmap: universal binary verification (Apple Silicon + Intel) in release

3 participants