From df946d888e63cb6a027208fbe90dd3b1a697b9ca Mon Sep 17 00:00:00 2001 From: Cole Speelman Date: Sun, 16 Aug 2026 17:32:41 -0400 Subject: [PATCH] docs: make Linux the supported release platform Sanitized snapshot of private source e6784dc71e34681eca4ac52b0f9fe9efc9ce26ca.\n\nAI-assisted implementation reviewed by Cole Speelman. Signed-off-by: Cole Speelman --- .gitea/workflows/cross-platform.yml | 54 ----------------------------- README.md | 5 +++ scripts/public-snapshot.allow | 2 -- scripts/verify.ps1 | 41 ---------------------- 4 files changed, 5 insertions(+), 97 deletions(-) delete mode 100644 .gitea/workflows/cross-platform.yml delete mode 100644 scripts/verify.ps1 diff --git a/.gitea/workflows/cross-platform.yml b/.gitea/workflows/cross-platform.yml deleted file mode 100644 index 42575cb..0000000 --- a/.gitea/workflows/cross-platform.yml +++ /dev/null @@ -1,54 +0,0 @@ -# SPDX-License-Identifier: AGPL-3.0-only -name: cross-platform-release-gate -on: - workflow_dispatch: -permissions: - contents: read -jobs: - verify: - name: ${{ matrix.os }} / Go ${{ matrix.go }} - runs-on: ${{ matrix.runner }} - timeout-minutes: 30 - strategy: - fail-fast: false - matrix: - include: - - os: Linux - runner: himesan-go1266 - go: '1.26.6' - - os: Windows - runner: himesan-windows-go1266 - go: '1.26.6' - steps: - - name: Require the repository owner on Linux - if: matrix.os != 'Windows' - run: test "$GITHUB_ACTOR" = gamertan - - name: Require the repository owner on Windows - if: matrix.os == 'Windows' - shell: pwsh - run: if ($env:GITHUB_ACTOR -ne 'gamertan') { throw 'untrusted actor' } - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - fetch-depth: 0 - persist-credentials: false - - name: Assert the pinned runner toolchain - if: matrix.os != 'Windows' - run: test "$(go env GOVERSION)" = "go${{ matrix.go }}" - - name: Assert the pinned Windows toolchain - if: matrix.os == 'Windows' - shell: pwsh - run: if ((& go env GOVERSION) -ne 'go${{ matrix.go }}') { throw 'unexpected Go toolchain' } - - name: Verify on Linux - if: matrix.os != 'Windows' - run: ./scripts/verify.sh - - name: Verify on Windows - if: matrix.os == 'Windows' - shell: pwsh - run: ./scripts/verify.ps1 - - name: Require an unchanged checkout on Linux - if: matrix.os != 'Windows' - run: test -z "$(git status --porcelain=v1 --untracked-files=all)" - - name: Require an unchanged checkout on Windows - if: matrix.os == 'Windows' - shell: pwsh - run: if (& git status --porcelain=v1 --untracked-files=all) { throw 'dirty checkout' } diff --git a/README.md b/README.md index ed144a4..e83f80e 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,11 @@ The first preview targets modest Linux servers, local files, SQLite, and normal Go binaries. It requires no Redis, message broker, hosted identity provider, telemetry service, or JavaScript framework. +Linux is the required and supported release platform. WSL may be used as a +Linux development environment. Native Windows is not a release gate or support +promise; downstream users may evaluate the ordinary Go packages elsewhere +without turning that portability into a maintained compatibility claim. + ## Packages - `requestmeta`: trusted-proxy resolution, HTTPS/origin metadata, and request IDs. diff --git a/scripts/public-snapshot.allow b/scripts/public-snapshot.allow index da9ad23..3fd9c99 100644 --- a/scripts/public-snapshot.allow +++ b/scripts/public-snapshot.allow @@ -2,7 +2,6 @@ .gitattributes .gitea/workflows/assurance.yml -.gitea/workflows/cross-platform.yml .gitea/workflows/verify.yml .gitignore CHANGELOG.md @@ -47,7 +46,6 @@ scripts/export-public.sh scripts/public-snapshot.allow scripts/test-public-snapshot.sh scripts/verify.sh -scripts/verify.ps1 starters/basic/.env.example starters/basic/README.md starters/basic/main.go diff --git a/scripts/verify.ps1 b/scripts/verify.ps1 deleted file mode 100644 index e7cba53..0000000 --- a/scripts/verify.ps1 +++ /dev/null @@ -1,41 +0,0 @@ -# SPDX-License-Identifier: AGPL-3.0-only -$ErrorActionPreference = "Stop" -$root = (Resolve-Path (Join-Path $PSScriptRoot "..")).Path -Push-Location $root -try { - $failed = $false - Get-ChildItem -Recurse -File | ForEach-Object { - $relative = [IO.Path]::GetRelativePath($root, $_.FullName).Replace('\', '/') - if ($relative.StartsWith('.git/') -or $relative.StartsWith('LICENSES/') -or $relative -eq 'go.sum') { return } - if ($relative.StartsWith('starters/') -or $relative.StartsWith('examples/')) { $expected = '0BSD' } - elseif ($relative.StartsWith('scripts/') -or $relative.StartsWith('.gitea/') -or $relative.StartsWith('services/')) { $expected = 'AGPL-3.0-only' } - else { $expected = 'MPL-2.0' } - $header = (Get-Content -LiteralPath $_.FullName -TotalCount 5) -join "`n" - if (-not $header.Contains("SPDX-License-Identifier: $expected")) { - Write-Error "license mismatch: $relative expected $expected" - $failed = $true - } - } - if ($failed) { throw "license boundary failed" } - - $unformatted = & gofmt -l . - if ($LASTEXITCODE -ne 0 -or $unformatted) { throw "gofmt check failed: $unformatted" } - & go test ./... - if ($LASTEXITCODE -ne 0) { throw "go test failed" } - & go test -race ./... - if ($LASTEXITCODE -ne 0) { throw "race test failed" } - & go vet ./... - if ($LASTEXITCODE -ne 0) { throw "go vet failed" } - $build = Join-Path ([IO.Path]::GetTempPath()) ("gamertan-web-" + [guid]::NewGuid().ToString('N')) - New-Item -ItemType Directory -Path $build | Out-Null - try { - & go build -trimpath -o (Join-Path $build 'basic.exe') ./starters/basic - if ($LASTEXITCODE -ne 0) { throw "starter build failed" } - } finally { - Remove-Item -LiteralPath $build -Recurse -Force - } - & git diff --check - if ($LASTEXITCODE -ne 0) { throw "git diff check failed" } -} finally { - Pop-Location -}