Platform support and release evidence
For 0.4.0, support is scoped to the product and verification level below. The tables describe the configured checks, not a claim that an unreleased candidate has already passed them. A release must retain successful evidence for its exact source commit before claiming the corresponding support.
Conformance verifies the shared language/runtime contract. Consumer checks build and run applications using the distributed packages. CLI checks execute the relocated tool on its native platform. A CLI smoke test or a successful library build is not full Conformance on that platform.
Libraries and development toolchains
| Product | Declared package contract | CI host and toolchain | Verification |
|---|---|---|---|
| C# Runtime, Compiler, CSharpBridge, SyntaxHighlighter | .NET Standard 2.1 | Linux x64, ubuntu-latest; SDK 10.0.201, .NET 8.0.x runtime |
Full C# Conformance and native tests, allocation gate, .NET 8 package consumers, reproducibility: C# CI, job verify |
| Swift Runtime, Compiler, SwiftBridge, SyntaxHighlighter | Swift tools 6.0; root package declares macOS 10.15.4 | macOS ARM64, macos-15; runner-provided Swift/Xcode, exact Swift identity recorded in the job log |
Native Swift Conformance, C# binary interoperability, native tests and API checks: Swift CI, job native; fresh tagged package consumers and root tests: job distribution |
| Standalone Swift SyntaxHighlighter | Swift tools 6.0 | Linux x64, swift:6.0 container |
Highlighter package tests only: Swift CI job highlighter-linux |
The pinned .NET SDK is defined in global.json. Swift’s package tools version is a manifest requirement, not a claim that every product is tested with every Swift compiler from 6.0 onward. The macOS deployment target likewise does not mean that tests run on macOS 10.15.4. The local Runtime, Compiler and SyntaxHighlighter packages have no explicit Apple platform floor; the public root package also contains the CLI and Bridge. See Package.swift for the actual distribution contract.
The complete Swift corpus is currently checked on macOS ARM64; the complete C# corpus is checked on Linux x64. Other hosts below have narrower package/CLI verification. Swift Package Index results are additional build observations, not substitutes for these checks. Unity, iOS, Android, Windows Swift and other embeddings have no dedicated full Conformance jobs and are not independently qualified by this matrix. Portability of the core does not establish those platforms’ integration, threading, AOT or deployment behavior.
Standalone CLI downloads
These archives include their runtime requirements and do not require an installed
Swift or .NET SDK. The CLI distribution workflow
builds each target and executes its relocated archive before the verify job
accepts the complete set.
| Implementation / target | Native verification host | Build toolchain |
|---|---|---|
C# win-x64 |
windows-2022 |
.NET SDK 10.0.201 |
C# win-arm64 |
windows-11-arm |
.NET SDK 10.0.201 |
Swift osx-x64 |
macos-15-intel |
Runner-provided Swift/Xcode |
Swift osx-arm64 |
macos-15 |
Runner-provided Swift/Xcode |
Swift linux-x64 |
Plain Ubuntu 22.04 x64 container on ubuntu-22.04 |
Swift 6.4.0, matching Static Linux SDK |
Swift linux-arm64 |
Plain Ubuntu 22.04 ARM64 container on ubuntu-22.04-arm |
Swift 6.4.0, matching Static Linux SDK |
The Linux compiler container and SDK are pinned by digest/checksum in the workflow. Linux smoke checks run without Swift or .NET installed. The supported macOS download baseline is macOS 15; package deployment targets do not lower that tested download baseline. Other Linux distributions are not verified by these Ubuntu checks. Archive safety, complete target coverage and revision-bound verification receipts are enforced by the distribution scripts; publication is a separate guarded step. See CLI downloads.
NuGet CLI tools
The portable GameEventScript.Tool targets .NET 8. The AOT tool family supplies
six native RIDs; installation uses .NET SDK 10 or newer. Its native package
checks are separate from the standalone downloads above.
| Package target | Native package consumption host |
|---|---|
| Portable tool | ubuntu-22.04 x64 |
win-x64 |
windows-2022 |
win-arm64 |
windows-11-arm |
linux-x64 |
ubuntu-22.04 |
linux-arm64 |
ubuntu-22.04-arm |
osx-x64 |
macos-15-intel |
osx-arm64 |
macos-15 |
C# Tool Packages uses
SDK 10.0.201 and .NET 8.0.x, builds and consumes each target in job package,
and validates the complete release set in verify. Linux AOT targets are glibc
targets, not musl/Alpine targets. Native package consumption is not a full corpus
run on every RID.
WebAssembly
The Website workflow, job card-game,
builds and tests the Card Lab with pinned Swift 6.4.0 and its matching WASM
SDK, plus Node 24. Pins live in
setup-wasm.py.
This verifies the Card Lab’s embedding and WASM execution, not every root
SwiftPM product or every browser. Safari/Chrome UI checks performed locally are
not an automated browser support matrix. There is no distributed WASM CLI.
Release qualification
For each release candidate, record the revision, workflow run links, actual toolchain versions and any limitations in the release validation evidence:
- Require successful C# CI / verify and a full Swift CI / verify run,
including
native,distributionandhighlighter-linux. A documentation-only skipped native run does not qualify a release; dispatch Swift CI manually to force the full checks. - Run C# Release Candidate with publication disabled. Its package and
release-upgrade checks
must succeed. Require all native C# Tool Packages targets and their
aggregate
verifyresult. - Run CLI Distribution with the intended version and publication disabled;
require its complete
verifyresult. Require Website / card-game for the Card Lab shipped from the same revision. - Require the separate performance and allocation evidence for both implementations; hosted correctness checks do not replace measured regression checks.
- Review this matrix against the manifests, pinned SDKs and workflow matrices. Add a corresponding build-and-execute job before declaring a new target supported. Record moving runner/toolchain versions rather than treating a runner label as a compiler pin. Missing, cancelled or failed required evidence blocks the corresponding release claim.
Path-filtered PR jobs may not run on every commit. Dispatch the affected workflows on the final candidate when evidence is absent; previous-revision success is not sufficient. These requirements reuse existing checks and add no native Swift work to ordinary PR CI. Performance measurements use separate, hardware-matched profiles and do not expand this platform support matrix.