[SDK] Add darwin-x64 (Intel macOS) as the sixth per-platform package (#571)#575
Draft
MGudgin wants to merge 1 commit into
Draft
[SDK] Add darwin-x64 (Intel macOS) as the sixth per-platform package (#571)#575MGudgin wants to merge 1 commit into
MGudgin wants to merge 1 commit into
Conversation
…571) This PR adds Intel macOS (`darwin-x64`) support to the SDK's per-platform binary delivery model introduced in #512, shipping `mxc-exec-mac` for `x86_64-apple-darwin` as a sixth `@microsoft/mxc-sdk-darwin-x64` optional-dependency package. The Seatbelt backend is architecture-agnostic (it spawns `/usr/bin/sandbox-exec`, present on every macOS), so this is a build-and-ship change, not a runtime-capability change. Built on top of #512. Details * New platform package `sdk/platform-packages/darwin-x64/` (manifest + README), mirroring `darwin-arm64`. `darwin-x64` is added to `SUPPORTED_TUPLES` in both the SDK (`platform.ts`) and the postinstall `.cjs` copy; the meta package's `optionalDependencies` pin was stamped via `scripts/sync-platform-package-versions.js` (now six packages, lockfile refreshed). * Unsupported-host messaging (`platform.ts`, `helper.ts`, `postinstall-check.cjs`) no longer calls Intel macOS unsupported; it now describes the shipped set as win32/linux/darwin × (x64, arm64). * `build-mac.sh` already cross/native-builds `x86_64-apple-darwin`; it now stages the binary into the darwin-x64 package (the manifest gate is satisfied). * CI builds and tests the x64 slice natively on Intel runners: GHA `Build.MacOS.Job.yml` is a {arm64: macos-14, x64: macos-13} matrix; the GHA package + integration jobs gain darwin-x64 (integration on `macos-13`). ADO `Mac.Build.Job.yml` is parametrized (triplet/jobName/vmImage) and instantiated twice from `1ES.Build.Stages.yml` (arm64 `macOS-15-arm64`, x64 `macOS-13`), with darwin-x64 added to the ADO package targets and integration matrix. * Tests that asserted darwin-x64 was unsupported are flipped to "supported"; the release-completeness / version-sync "zombie package" fixtures now use a genuinely-fictional tuple (`freebsd-x64`) instead of the now-real darwin-x64. * Docs updated to "six packages" (`sdk/README.md`, `.azure-pipelines/README.md`, `.github/copilot-instructions.md`). Tests * SDK unit suite: 284 tests, 276 pass / 8 skip / 0 fail (incl. the bidirectional `SUPPORTED_TUPLES == on-disk dirs` invariant, now 6/6, and the flipped darwin-x64 supported-tuple / supported-but-missing cases). Script tests: 32 pass / 0 fail. `sync --check` OK (6 packages). `tsc --noEmit` clean. All touched GHA + ADO YAML validates. * Not verifiable locally (CI-only, flagged for review): the actual `x86_64-apple-darwin` build/test on the Intel runners, the darwin-x64 packaging (release-completeness gate over real artifacts), the Intel integration E2E, and ADO ESRP signing/notarization of the x64 slice. The `macos-13` Intel image is Apple's last hosted Intel runner and is being deprecated — the lane may need revisiting (Rosetta-on-arm64 or removal) when it is retired. Closes #571 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Generated-with: claude-opus-4.8
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
Stacked on #512. This PR's base is
user/gudge/mxc-512-phase6-tests-docs,so the diff shows only the single darwin-x64 commit. It must merge after
#512. Once #512 lands on
main, retarget this PR's base tomain(GitHubauto-retargets when the base branch is deleted on merge).
.github/copilot-instructions.md.Summary
Adds Intel macOS (
darwin-x64) support to the SDK's per-platform binarydelivery model introduced in #512, shipping
mxc-exec-macforx86_64-apple-darwinas a sixth@microsoft/mxc-sdk-darwin-x64optional-dependency package.
The Seatbelt backend is architecture-agnostic — it spawns
/usr/bin/sandbox-exec, which ships on every macOS — so there is noarch-specific code in the backend (
grepfinds onlycfg(target_os = "macos"),no
target_arch). #512 excludeddarwin-x64purely for delivery/CI reasons, notcapability; this PR reverses that as a build-and-ship change.
Closes #571
Details
sdk/platform-packages/darwin-x64/(manifest + README),mirroring
darwin-arm64.darwin-x64added toSUPPORTED_TUPLESin bothplatform.tsand the postinstall.cjscopy; metaoptionalDependenciesstamped to six packages via
scripts/sync-platform-package-versions.js(lockfile refreshed).
platform.ts,helper.ts,postinstall-check.cjs)now describes the shipped set as win32/linux/darwin × (x64, arm64) — Intel
macOS is no longer called unsupported.
build-mac.shalready buildsx86_64-apple-darwin; it now stages the binaryinto the darwin-x64 package.
Build.MacOS.Job.ymlis a{arm64: macos-14, x64: macos-13}matrix; the GHApackage + integration jobs gain darwin-x64 (integration on
macos-13). ADOMac.Build.Job.ymlis parametrized (triplet/jobName/vmImage) and instantiatedtwice from
1ES.Build.Stages.yml(macOS-15-arm64+macOS-13), withdarwin-x64 added to the ADO package targets and integration matrix.
release-completeness / version-sync "zombie package" fixtures now use a
genuinely-fictional
freebsd-x64.sdk/README.md,.azure-pipelines/README.md,.github/copilot-instructions.md).Tests
SUPPORTED_TUPLES == on-disk dirsinvariant, now 6/6). Script tests:32 pass.
sync --checkOK (6 packages).tsc --noEmitclean. All touchedGHA + ADO YAML validates.
x86_64-apple-darwinbuild/test on the Intel runners, darwin-x64 packaging (release-completeness
gate over real artifacts), the Intel integration E2E, and ADO ESRP
signing/notarization of the x64 slice.
Reviewer notes
macos-13is Apple's last hosted Intel runner and is being deprecated(GitHub + Azure). The x64 build/test/integration lanes depend on it; when it
is retired they will need revisiting (cross-compile + Rosetta-on-arm64, or
removal). Calling this out as a known maintenance risk, not a blocker.
mxc-exec-mac(x86_64), and the darwin-x64 packaging + integration lanesbehave as expected — these are the parts that cannot be exercised off-pipeline.
Microsoft Reviewers: Open in CodeFlow