Skip to content

Publish evidence-backed QA configuration matrix - #40

Merged
asketmc merged 3 commits into
mainfrom
agent/qa-configuration-matrix
Jul 19, 2026
Merged

Publish evidence-backed QA configuration matrix#40
asketmc merged 3 commits into
mainfrom
agent/qa-configuration-matrix

Conversation

@asketmc

@asketmc asketmc commented Jul 19, 2026

Copy link
Copy Markdown
Owner

Summary

  • publish a machine-readable support contract and generated human-readable configuration matrix
  • distinguish verified system smoke, gameplay E2E, post-deployment evidence, unit-only coverage, and explicit gaps
  • add fail-closed matrix policy tests and wire them into build/release/reviewer evidence gates
  • verify the public v1.0.9 release artifact after deployment on Paper 1.20.6 and latest stable 1.21
  • add a Windows-native Paper smoke runner while retaining the Linux CI runner
  • align repository compatibility metadata to the intended 1.20.6–1.21.11 Paper/Purpur/Pufferfish contract and explicitly exclude Folia/Spigot

Follow-up QA hardening for #28.

Representative post-deployment evidence

  • release tag: v1.0.9
  • release commit: 435f3855fcf121c6bfef6b558615b22af12ecec9
  • public JAR SHA-256: dc398d13f99b15c88b500324fef3282f2374c28452b13f47f49fd8d36fdc9e6c
  • Paper 1.20.6 build 151: selftest 78/78, clean shutdown
  • Paper 1.21.11 build 132: selftest 78/78, clean shutdown
  • receipt: docs/evidence/configuration-matrix/v1.0.9-post-release-runtime.json

Deliberately visible gaps

Gameplay E2E, intermediate 1.21 patches, Purpur/Pufferfish runtime coverage, WorldGuard/Towny runtime combinations, non-default configuration runtime coverage, and Java >21 remain explicit gaps rather than inferred coverage.

Local validation

  • mvn -B -ntp clean verify — 93 tests + 38 P0, JaCoCo gate, PIT 85% mutation / 98% line coverage for mutated classes
  • configuration matrix validator + 6 negative policy tests
  • release source, release security, runtime security, Modrinth metadata, runtime-surface, and release-JAR checks
  • Semgrep 1.168.0 — 0 findings across 39 Java targets
  • actionlint and all Bash/PowerShell syntax checks
  • public-artifact post-deployment smoke on both supported Paper endpoints

@asketmc
asketmc merged commit 4e1b701 into main Jul 19, 2026
12 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d064befd8a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

if not isinstance(environments, list) or not environments:
errors.append(f"{path.relative_to(ROOT)}: receipt has no environments")
return errors
for environment in environments:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Require receipts to cover both verified endpoints

When a repository receipt backs the two green post-deployment rows, this loop validates only the environments that happen to be present and never requires the expected Paper 1.20.6 and 1.21.11 entries, or even two distinct environments. A truncated receipt with a single passing environment would still pass CI and leave both matrix rows marked verified, overstating public-artifact coverage.

Useful? React with 👍 / 👎.

name: Post-deployment Paper runtime
needs: [build-and-smoke, publish]
runs-on: ubuntu-24.04
timeout-minutes: 15

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Raise the post-deployment job timeout

This 15-minute cap covers verify-published-release-runtime.sh, which runs both Paper endpoints in one job; each underlying smoke can legitimately wait up to 300s for startup, 60s for selftest, and 90s for shutdown. If either endpoint is slow but still within its own allowed window, GitHub can cancel the job before a receipt or useful failure evidence is produced; the manual post-release workflow uses the same cap.

Useful? React with 👍 / 👎.

"size_bytes": 180060
},
"harness": {
"commit": "be5807aef8a10fac2fa6ea312f063032b3b98245",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Record a reachable harness commit in the receipt

The committed receipt points at harness commit be5807a..., but that commit is not an ancestor of the squashed commit under review, so if only this reviewed commit is published reviewers cannot retrieve the exact harness by the recorded SHA. Regenerate the receipt after the final commit, or validate the receipt against the committed script hashes, so the evidence remains durable.

Useful? React with 👍 / 👎.

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