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" } 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.