Skip to content

Conformance: badge row, hardware-tested section, actionlint lane, all six 64-bit arches - #2

Merged
tannevaled merged 3 commits into
mainfrom
conformance
Aug 25, 2026
Merged

tannevaled merged 3 commits into
mainfrom
conformance

Conversation

@tannevaled

Copy link
Copy Markdown
Contributor

Brings the repo to the fleet's organisation-conformance standard. No prose was rewritten; the README's own voice, measurements and honest limits are untouched.

What was missing

  • No badge row at all.
  • No actionlint lane — a workflow that fails to parse reports nothing, so no other lane can say it is broken.
  • The cross matrix built two of Go's six 64-bit architectures (amd64, arm64).
  • No section separating hardware that was connected and exercised from what is known only from Apple's documentation.

What was added

  • The fleet badge row: CI, Go Reference, Go Report Card, coverage, licence. The coverage badge reads "100% portable layer" rather than "100%", because that is exactly what the CI gate is — the purego bindings cannot be covered without a display and a TCC grant.
  • A ## Tested against real hardware section in the shape go-xrkit/desk established: hardware connected and exercised / not proven on hardware / send us hardware. It states plainly that whole-display capture and other-process window capture are not proven (no Screen Recording grant on the build machine — the refusal path is asserted, the pixels are not), that no Intel Mac ever ran this, and that only macOS 26.6.2 was run.
  • An actionlint lane, first in the file.
  • linux/riscv64, loong64, ppc64le, s390x in the cross matrix. All four verified to build locally before pushing.

No coverage gate was weakened.

Co-Authored-By: Claude Opus 5 noreply@anthropic.com

tannevaled and others added 2 commits August 25, 2026 21:51
The README had no badge row at all, the workflow had no actionlint lane, and
the cross matrix covered two of Go's six 64-bit architectures.

- README: the fleet badge row (CI, Go Reference, Go Report Card, coverage,
  licence). The coverage badge says "portable layer", because that is what the
  gate actually is -- the purego bindings cannot be covered without a display
  and a TCC grant, and a badge claiming a total would be a lie.
- README: a "Tested against real hardware" section in the shape go-xrkit/desk
  established -- what was connected and exercised, and, separately, what was
  NOT proven: whole-display capture (no Screen Recording grant on the build
  machine, though the refusal path IS asserted), Intel Macs, and every macOS
  below 26.6.2. Plus the invitation to send us hardware.
- ci.yml: an actionlint lane. A workflow that fails to parse reports nothing at
  all, so no other lane can tell you it is broken.
- ci.yml: linux/riscv64, loong64, ppc64le and s390x added to the cross matrix,
  so all six 64-bit architectures are built and vetted. Verified locally first.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
goreportcard.com now answers every badge request, for every module, with

    aria-label="go report: retired"

and its home page says "After more than a decade, Go Report Card has been
sunset." Checked against this module, against another repo in the fleet that
has carried the badge for months, and against gin-gonic/gin: all three render
the same grey "retired" pill.

A badge that can only ever say "retired" is worse than no badge -- it is the
same failure as one pointing at a workflow that does not exist, and a reader
cannot tell a retired service from a repository nobody grades. So it comes out
rather than staying as a decoration.

This affects far more than this repository: every repo in the fleet carrying a
Go Report Card badge is showing the same thing right now.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@tannevaled

Copy link
Copy Markdown
Contributor Author

Correction, pushed as a follow-up commit on this branch: the Go Report Card badge is gone again.

goreportcard.com has been sunset. Every badge request, for every module, now answers aria-label="go report: retired" — verified against this module, against a fleet repo that has carried the badge for months, and against gin-gonic/gin. The home page says so outright: "After more than a decade, Go Report Card has been sunset."

A badge that can only ever say "retired" is worse than no badge — the same failure mode as one pointing at a workflow that does not exist. So it is out, and where this repo already carried one, that one is out too.

This is a fleet-wide matter, not a matter for this PR: every repository in every org that carries a Go Report Card badge is rendering the grey "retired" pill right now.

…he old one

Two things, both about where a screen capture may be written.

1. The README said "The live suite writes a PNG to
   testdata/artifacts/window-capture.png". It has not done that for a while --
   the code writes to captureDir(t), outside every work tree -- and the
   sentence described exactly the behaviour the rule exists to prevent. Anyone
   reading it would believe a capture of their desktop lands in a public
   repository, which is both wrong and, if it had been true, the defect. It now
   says what the code does, including that the walk-up refuses a .git that is a
   FILE, which is what a worktree has.

2. captureDir, chooseCaptureDir and repoRootOf move from live_darwin_test.go --
   which is behind `darwin && integration` and needs a window server no CI
   runner has -- into an UNTAGGED capturedir_test.go. A guard that only compiles
   where the live suite runs is a guard nobody runs. The rule is plain
   filesystem reasoning with nothing macOS in it, so it now compiles and runs on
   the linux and windows lanes as well, on every push.

   The decision is split out of the test plumbing as chooseCaptureDir so the
   REFUSAL can be exercised -- a guard whose failing branch never runs is not
   known to work, and that branch is the entire reason it exists. Four
   committable paths are refused, including the directory the committed frame
   lives in and a relative path, and the default is asserted to be usable and
   absolute. This is the shape go-mswin/screencapture settled on.

The committed frame under testdata/artifacts/ stays: it was put there by hand
from a disposable machine, and nothing a test runs can land there again.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@tannevaled
tannevaled merged commit e89b389 into main Aug 25, 2026
15 checks passed
@tannevaled
tannevaled deleted the conformance branch August 25, 2026 20:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant