Make macOS support best effort
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
**Base Policy Version:** 0.1.0
|
||||
|
||||
**Last Updated:** 2026-09-07
|
||||
**Last Updated:** 2026-09-12
|
||||
|
||||
## Purpose
|
||||
|
||||
@@ -35,6 +35,20 @@ can still break consumers. Human diagnostic wording is stable only where a
|
||||
contract expressly promises it. Minimum Go version and platform support changes
|
||||
also require an explicit compatibility assessment.
|
||||
|
||||
### Platform support
|
||||
|
||||
Linux is the release-validated platform. macOS has best-effort support: keeping
|
||||
it working remains desirable, but neither native macOS validation nor Darwin
|
||||
cross-builds are release gates. Missing macOS evidence or a macOS-specific failure
|
||||
does not by itself block a release. Voluntary checks and fixes are welcome; there
|
||||
is no guarantee that each release has been validated on macOS.
|
||||
|
||||
The [release procedure](../release.md#release-identity-and-support) owns target
|
||||
architectures and required Linux checks. This support change applies to upcoming
|
||||
releases; historical release notes and their validation records remain unchanged.
|
||||
The next release note must explain the change in Compatibility, with version
|
||||
selection following this policy's existing compatibility rules.
|
||||
|
||||
## Release Model
|
||||
|
||||
A release consists of:
|
||||
|
||||
@@ -14,11 +14,14 @@ binary, container image, generated package, or separate registry publication.
|
||||
- Tags: stable Semantic Versions such as `v0.1.0`; prerelease tags are not supported
|
||||
- Minimum Go language/toolchain line: Go 1.25, tested with a supported patched
|
||||
Go 1.25 toolchain and one newer supported toolchain
|
||||
- Build targets: Linux and macOS on amd64 and arm64
|
||||
- Release-gated build targets: Linux on amd64 and arm64
|
||||
- Best-effort targets: macOS on amd64 and arm64, under the
|
||||
[platform support policy](policy/release.md#platform-support)
|
||||
|
||||
The automated checker cross-builds all four targets. Before release, the maintainer
|
||||
must also obtain native test, race, symlink, and permission-fixture evidence on Linux
|
||||
and macOS; cross-compilation is not native execution evidence.
|
||||
The automated checker cross-builds the Linux targets. Before release, the maintainer
|
||||
must also obtain native test, race, symlink, and permission-fixture evidence on Linux;
|
||||
cross-compilation is not native execution evidence. Native macOS checks and Darwin
|
||||
cross-builds are optional and do not gate publication.
|
||||
|
||||
## 1. Prepare access and tools
|
||||
|
||||
@@ -97,10 +100,10 @@ release note until there is a real candidate and reviewed content.
|
||||
|
||||
## 4. Validate the source candidate
|
||||
|
||||
Run the complete checker from the repository root after dependencies have been
|
||||
Run the complete checker on Linux from the repository root after dependencies have been
|
||||
acquired. It validates module manifests in a disposable copy, both supported Go
|
||||
toolchains, offline default tests, the native race detector, vet, native builds,
|
||||
CGO-disabled cross-builds, formatting and whitespace (including untracked files),
|
||||
CGO-disabled Linux cross-builds, formatting and whitespace (including untracked files),
|
||||
examples, package isolation, and local documentation links.
|
||||
|
||||
```sh
|
||||
@@ -120,9 +123,9 @@ Complete these manual gates and record their evidence with the candidate:
|
||||
- The maintainer inspects `git status --short`, `git diff`, and the candidate file
|
||||
list for credentials, private data, generated output, unintended files, and
|
||||
unrelated changes.
|
||||
- The maintainer records successful native checker runs on Linux and macOS, including
|
||||
filesystem capability tests. If either host is unavailable, release remains
|
||||
blocked unless platform support is formally narrowed in current documentation.
|
||||
- The maintainer records a successful native checker run on Linux, including
|
||||
filesystem capability tests. Missing required Linux evidence blocks release;
|
||||
no macOS run, sign-off, or cross-build result is required.
|
||||
- The maintainer removes completed, obsolete documents under `docs/roadmap/`, repairs
|
||||
inbound links, and reruns the checker. ADR rationale remains historical.
|
||||
- The maintainer reviews the exact version-matched release note for accuracy and
|
||||
|
||||
@@ -48,5 +48,5 @@ selected.
|
||||
|
||||
Publication remains a maintainer decision. Release preparation must choose the
|
||||
version, write a version-matched note, retire this completed roadmap with link
|
||||
repair, obtain exact-candidate Linux/macOS evidence, and follow the
|
||||
repair, obtain the required exact-candidate Linux evidence, and follow the
|
||||
[release procedure](../release.md).
|
||||
|
||||
Reference in New Issue
Block a user