Skip to content

Add macOS support + bundle gomc-rest v1.6.0 - #11

Merged
Moge800 merged 4 commits into
mainfrom
claude/macos-support
Jul 22, 2026
Merged

Add macOS support + bundle gomc-rest v1.6.0#11
Moge800 merged 4 commits into
mainfrom
claude/macos-support

Conversation

@Moge800

@Moge800 Moge800 commented Jul 18, 2026

Copy link
Copy Markdown
Owner

Summary

Adds macOS (launch()) support and, since it was stacked on the v1.5.0 bump which was never published, tracks v1.6.0 directly. Supersedes #10close #10 in favor of this.

macOS support

  • _binaries.py / vendor_binaries.py: map+vendor gomc-rest-darwin-amd64 / gomc-rest-darwin-arm64.
  • release.yml: macOS wheels tagged macosx_12_0_x86_64 / macosx_12_0_arm64 (both binaries declare min OS 12 via LC_BUILD_VERSION).
  • ci.yml: test-macos runs the real suite (incl. launch()) on macos-14 (Apple Silicon).

Robust cross-build (resolves the earlier macos-13 24h-queue hang)

  • All wheels now cross-build on a single ubuntu-latest runner — a wheel just zips a pre-built binary and wheel tags forces the platform tag, so the build host's OS/arch is irrelevant (same approach as upstream gomc-rest cross-compiling from Linux). Removes dependence on scarce Windows/arm/Intel-macOS runners.
  • Intel macOS is verified offline only (SHA-256 + Mach-O inspection); GitHub's Intel runners aren't reliably schedulable.

Bundle v1.6.0

  • GOMC_REST_VERSION → v1.6.0; checksums/v1.6.0.sha256 (verified against upstream checksums.txt).
  • Drop-in vs v1.5.0: linux-amd64 still needs GLIBC_2.34, darwin-arm64 still minos 12.0 + ad-hoc signed → no wheel-tag changes. Client minimum stays v1.4.0 → no dependency change.

Verified locally

  • launch() reports server version v1.6.0; all 5 tests pass.
  • v1.6.0 asset SHA-256s match upstream; glibc/minos/signature unchanged from v1.5.0.
  • On CI, treat the test-macos (macos-14) result as the authoritative macOS launch() check.

🤖 Generated with Claude Code

claude added 2 commits July 18, 2026 22:54
Upstream changes (v1.4.0 -> v1.5.0): Apache 2.0 relicense, close PLC
connection on error. No CLI/env/endpoint changes affecting this wrapper.
gomc-rest-client's minimum supported server stays v1.4.0, so v1.5.0 is
within range; no client pin change needed.

Verified against the actual v1.5.0 release assets:
- amd64 binary: sha256 matches upstream checksums.txt, still dynamically
  linked requiring GLIBC_2.34 (manylinux_2_34_x86_64 tag unchanged).
- arm64 binary: sha256 matches, still statically linked
  (manylinux2014_aarch64 tag unchanged).
- Ran the full test suite against the real v1.5.0 binary: 5 passed.
- launch() confirms the running server reports version v1.5.0.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SQbVkPEprK2ebcjck5ouUy
gomc-rest v1.5.0 is the first release to ship darwin binaries. Wire them
up the same way as the other platforms:

- _binaries.py: map darwin/amd64 and darwin/arm64 to their binary names.
- vendor_binaries.py: add both to the asset list (checksums for v1.5.0
  were already committed in the previous PR).
- release.yml: build wheels on real macos-13 (Intel) / macos-14 (Apple
  Silicon) runners, tagged macosx_12_0_x86_64 / macosx_12_0_arm64 — both
  binaries declare a minimum OS of macOS 12 via LC_BUILD_VERSION.
- ci.yml: new test-macos job actually runs launch() on both real macOS
  runners on every PR. This is the authoritative check: the amd64 binary
  is unsigned and arm64 is only ad-hoc signed, and Gatekeeper/quarantine
  behavior can't be fully predicted by inspecting the binary offline.
- binaries/README.md, README.md, README_JP.md, RELEASING.md: updated to
  reflect macOS as a supported launch() platform, not just a sdist/
  connect()-only fallback.

Verified (offline, this sandbox has no macOS to execute on):
- Both darwin binaries' SHA-256 match the checksums.txt already committed
  for v1.5.0.
- Parsed Mach-O load commands directly: both are arm64/x86_64 PIE
  executables, LC_BUILD_VERSION minos=12.0.0, arm64 carries
  LC_CODE_SIGNATURE (ad-hoc), amd64 does not.
- Platform-resolution logic exercised locally (mocked platform.system/
  machine) resolves darwin/arm64 correctly and sets the executable bit.
- Existing Linux test suite still passes: 5 passed.

Real launch() execution on macOS is unverified until the test-macos CI
job runs on this PR's actual macOS runners — that result is the real
signal, not this offline analysis.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SQbVkPEprK2ebcjck5ouUy
Copilot AI review requested due to automatic review settings July 18, 2026 23:04

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

claude added 2 commits July 22, 2026 00:11
The Intel macOS runner (macos-13) sat queued for 24h on the previous CI
run and was auto-cancelled — GitHub's free Intel macOS runners aren't
reliably schedulable here, and the release's amd64-mac wheel job used the
same runner, so a real release could hang the same way.

A wheel only zips a pre-built binary and has its platform tag forced by
'wheel tags', so the build host's OS/arch doesn't matter. Cross-build
every wheel on one ubuntu-latest runner (same approach as upstream
gomc-rest, which cross-compiles all platforms from Linux). This also
drops the previous dependence on windows-latest and ubuntu-24.04-arm.

CI keeps a real macOS execution check on macos-14 (Apple Silicon), which
is schedulable and covers the ad-hoc-signed arm64 binary. The Intel
binary stays verified offline only (SHA-256 + Mach-O inspection).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SQbVkPEprK2ebcjck5ouUy
v1.5.0 was never published, so jump straight to v1.6.0 (persist state
transition logs without info flood). Drop-in: verified the v1.6.0
release assets — linux-amd64 still needs GLIBC_2.34, darwin-arm64 still
minos 12.0 + ad-hoc signed, so no wheel-tag changes. Client minimum
stays v1.4.0, so no dependency change.

- GOMC_REST_VERSION -> v1.6.0
- checksums/v1.5.0.sha256 -> checksums/v1.6.0.sha256 (SHA-256 of every
  v1.6.0 release asset, verified against upstream checksums.txt)
- README/README_JP bundled-version note -> v1.6.0

Verified: launch() reports server version v1.6.0; 5 tests pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SQbVkPEprK2ebcjck5ouUy
@Moge800 Moge800 changed the title Add macOS support (amd64 + arm64) Add macOS support + bundle gomc-rest v1.6.0 Jul 22, 2026
@Moge800
Moge800 merged commit 57114be into main Jul 22, 2026
3 checks passed
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.

3 participants