Repository navigation
ci: migrate macOS jobs to Xcode 27 - #12
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Codex review: needs maintainer review before merge. What this changesThis PR adopts Go 1.27.2 and Xcode 27 runners, raises the macOS minimum to 13, adds release dry runs and Rosetta checks, and stabilizes watch cancellation tests. Example: A user downloads the next macOS release on macOS 12 Monterey.
Review scores
ProductKind: Maintenance · Worth it: Yes · Fix scope: Complete Merge readiness✅ Ready for maintainer review Keep this PR open: the owner-approved toolchain and macOS migration remains absent from main, and review found no actionable introduced defect. Priority: P2 Before mergeNone. FindingsNone. Tests
Agent review detailsHow this fits togetherGitHub Actions reads the Go toolchain and GoReleaser configuration to build platform binaries; the shared release workflow signs, verifies, and publishes those artifacts unless dry-run mode suppresses publication. flowchart TD
A[Repository source and Go toolchain] --> B[Xcode 27 CI]
B --> C[GoReleaser platform binaries]
C --> D[macOS deployment target gate]
D --> E[Native and Rosetta smoke checks]
A --> F[Shared release workflow]
F --> G[Signed and verified artifacts]
G --> H[Publication unless dry run]
Technical reviewBest possible solution: Land the consistent owner-approved migration after required checks pass, then perform the documented non-publishing release rehearsal on main. Do we have a high-confidence way to reproduce the issue? This is an intentional infrastructure migration; source confirms the existing toolchain and runner settings, while the claimed nine vulnerabilities and watch timing failure were not independently reproduced. Is this the best way to solve the issue? The patch updates the existing build and release owners consistently, uses the shared workflow's established dry-run contract, and replaces timing-dependent test cancellation with cancellation after observed output. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 4752fb36bd43. Provenance checked
TestingProof path: shipped entry point. SecurityNone. EvidenceWhat I checked:
Likely related people:
LabelsLabel changes:
Label justifications:
Rating scale6/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. WorkflowClawSweeper edits this one comment on every review. Comment Reviewed October 19, 2026, 7:12 AM ET / 11:12 UTC. |
Move the macOS test and release-build jobs to
xcode-27, and update the repository-local shared release caller to the current immutable v1 pin with an explicitdry_runinput. The shared workflow performs native arm64 and Rosetta x86_64 verification; local snapshot CI now also asserts/installs Rosetta and executes the Intel binary.Use Go 1.27.2 for CI, tests, Docker, and release builds to fix the nine reachable standard-library vulnerabilities found with Go 1.26.8. Go 1.27 requires macOS 13, so this change explicitly raises the supported macOS minimum from 12 to 13, as approved by the maintainer. Update the README, release guide, GoReleaser deployment target, and all-slice minimum-OS gate/tests together. The Go source directive remains 1.25.0, and no version, tag, or release is created by this PR.
Keep the required status context
test (macos-latest)on the real macOS test job while running it onxcode-27. This preserves the existing branch-protection contract without changing repository security settings.The race-enabled validation also reproduced a watch-test timing failure: cancelling 10 ms after the server writes can happen before the client prints. Cancel from the output writer instead, with a bounded deadline; application behavior is unchanged.
Validation: Go 1.27.2 tests and race tests, 50 race-enabled repetitions of each watch cancellation test, tidy check, lint, and govulncheck on Crabbox; local GoReleaser snapshot with all six targets, both Darwin binaries verified at minos 13.0 and smoke-tested natively/under Rosetta; four target-gate tests; actionlint; independent Codex review with no actionable P0–P2 findings. After merge, verify main CI and dispatch the release workflow with the unchanged current version and
dry_run=trueonly.