From 024015d26b085bc8749072acc5639cfd2e5b4d77 Mon Sep 17 00:00:00 2001 From: Clovis Muneza Date: Wed, 7 Oct 2026 21:31:38 -0400 Subject: [PATCH 1/2] ci: add a macOS 27 arm64 lane on the xcode-27 runner GitHub has no macos-27 label. Its xcode-27 preview image has run macOS 27 since mid-September 2026 (actions/runner-images#14404), so the lane uses that label. DESIGN.md's matrix list now includes macOS 27. --- .github/workflows/ci.yml | 4 ++++ DESIGN.md | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2b35a9f0..ad74f1fc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,6 +31,10 @@ jobs: runner: macos-26 macos_major: "26" architecture: arm64 + - name: macOS 27 arm64 + runner: xcode-27 + macos_major: "27" + architecture: arm64 runs-on: ${{ matrix.runner }} timeout-minutes: 30 diff --git a/DESIGN.md b/DESIGN.md index df40b3f6..c95377ba 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -28,7 +28,7 @@ PV v1 supports macOS 14 and newer. Stabilizing the macOS application remains the macOS 13 may continue to run PV when the application and Managed Resource binaries remain compatible, but it is untested and unsupported. Dropping support does not by itself require raising binary deployment targets or republishing otherwise compatible Managed Resource artifacts. Before PV deliberately ships an application binary that cannot run on macOS 13, the application update manifest and updater must prevent an incompatible update from being activated there. -The full macOS CI quality and behavior suite covers every supported macOS major version and both supported architectures across a representative matrix rather than every version/architecture combination. The initial matrix is macOS 14 on Apple Silicon, macOS 15 on Intel, and macOS 26 on Apple Silicon. Every use of an undocumented or private macOS interface fails closed: a result that cannot prove it saw other processes is an error, never an empty success. Acceptance tests for OS behavior PV relies on, such as bind conflict rules and process identity, observe a separate process and run in every matrix lane. Behavior that depends on root is tested as root. New supported macOS major versions must be added to the matrix before PV relies on behavior there. +The full macOS CI quality and behavior suite covers every supported macOS major version and both supported architectures across a representative matrix rather than every version/architecture combination. The initial matrix is macOS 14 on Apple Silicon, macOS 15 on Intel, macOS 26 on Apple Silicon, and macOS 27 on Apple Silicon. Every use of an undocumented or private macOS interface fails closed: a result that cannot prove it saw other processes is an error, never an empty success. Acceptance tests for OS behavior PV relies on, such as bind conflict rules and process identity, observe a separate process and run in every matrix lane. Behavior that depends on root is tested as root. New supported macOS major versions must be added to the matrix before PV relies on behavior there. Linux and Windows are committed subsequent platforms. During macOS stabilization, the installed application and runtime crates compile natively on macOS, Linux, and Windows so new system boundaries do not create unnecessary portability blockers. From 6b3b2d856e44f8c2dc7810aaaab8b15df00b8da1 Mon Sep 17 00:00:00 2001 From: Clovis Muneza Date: Thu, 8 Oct 2026 01:13:09 -0400 Subject: [PATCH 2/2] ci: collect every test result without failing fast --- .config/nextest.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/.config/nextest.toml b/.config/nextest.toml index 5ea6f499..dec521b8 100644 --- a/.config/nextest.toml +++ b/.config/nextest.toml @@ -1,2 +1,3 @@ [profile.ci] +fail-fast = false slow-timeout = { period = "60s", terminate-after = 2, grace-period = "10s" }