Skip to content

fix(macos): lower swift helper deployment target from 14.0 to 12.0 - #132

Merged
ErikBjare merged 1 commit into
masterfrom
fix/lower-macos-target-12
Jul 22, 2026
Merged

fix(macos): lower swift helper deployment target from 14.0 to 12.0#132
ErikBjare merged 1 commit into
masterfrom
fix/lower-macos-target-12

Conversation

@ErikBjare

Copy link
Copy Markdown
Member

Why

The 14.0 target from #126 was chosen to stop the runner-default target (macOS 15) from leaking into the binary — not because the code needs macOS 14 APIs. The measured floor is macOS 12: Swift concurrency (Task) needs 10.15 and Date.now needs 12. The helper compiles cleanly at 12.0 for both x86_64 and arm64, and fails at 11.0 and below.

Lowering to 12.0:

Changes

  • Makefile: MACOSX_DEPLOYMENT_TARGET ?= 14.012.0
  • .github/workflows/build.yml: build/package env and the otool minos check updated to match

Verified locally: swiftc -target arm64-apple-macosx12.0 builds and otool -l reports minos 12.0.

14.0 (#126) was chosen to stop the runner-default target (macOS 15)
from leaking into the binary, not because the code needs macOS 14 APIs.
The actual floor is macOS 12: Swift concurrency (Task) needs 10.15 and
Date.now needs 12; the helper compiles cleanly at 12.0 for both x86_64
and arm64, and fails at 11.0 and below.

Lowering the floor keeps the helper usable on Monterey-era machines
(Intel Macs back to ~2014-15) ahead of restoring x86_64 bundle builds
(ActivityWatch/activitywatch#1263), and matches the bundle repo which
now builds everything with MACOSX_DEPLOYMENT_TARGET=12.0
(ActivityWatch/activitywatch#1363). Still fixes the #125 Sonoma dyld
crash, which only required an explicit target <= the user's OS.

Verified locally: swiftc -target arm64-apple-macosx12.0 builds and
otool reports 'minos 12.0'.
@greptile-apps

greptile-apps Bot commented Jul 22, 2026

Copy link
Copy Markdown

Greptile Summary

This PR lowers the Swift helper’s minimum supported macOS version to 12.0.

  • Changes the Makefile deployment-target default from 14.0 to 12.0.
  • Uses macOS 12.0 for CI build and package steps.
  • Checks that the built helper reports a 12.0 minimum OS version.

Confidence Score: 5/5

This looks safe to merge.

  • The Makefile and CI use the same deployment target.
  • The workflow checks the resulting binary’s minimum OS version.
  • No blocking issue was found in the changed code.

Important Files Changed

Filename Overview
Makefile Lowers the default deployment target passed to the Swift compiler from macOS 14.0 to 12.0.
.github/workflows/build.yml Aligns the macOS build, package, and binary-version checks with the new 12.0 deployment target.

Reviews (2): Last reviewed commit: "fix(macos): lower swift helper deploymen..." | Re-trigger Greptile

@TimeToBuildBob TimeToBuildBob left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Reviewed the full diff and CI. This correctly makes 12.0 the single default across the Makefile, macOS build/package jobs, and the Mach-O minos assertion. The measured API floor and ActivityWatch/activitywatch#1363 now agree; all CI is green and Greptile is 5/5. LGTM.

@ErikBjare

Copy link
Copy Markdown
Member Author

@greptileai review

@ErikBjare
ErikBjare merged commit c9732d5 into master Jul 22, 2026
7 checks passed
@ErikBjare
ErikBjare deleted the fix/lower-macos-target-12 branch July 22, 2026 11:36
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.

2 participants