test(tiers): T504 Host tier guard, workflow tier comments, CONTRIBUTING tier table (gh-#777) - #800
Merged
Merged
Conversation
…NG tier table (gh-#777) SPEC F177. TierTraitConventionGuard (reflection, tier 1) rejects any Host test class that consumes KokoroFixture or a stack fixture (RequestsArtworkFlywheelFixture) without Category=Integration at class level or on every fact; HostTierTraitConventionGuard runs it over the assembly on every PR. Story230's flywheel scenario needs the live compose stack, so it now carries the trait and runs nightly. ci.yml/release.yml comments state the three tiers instead of "on-demand on a dev box"; CONTRIBUTING gains the tier table. Story439 pins the filter, the comments, the table and the MediaLibrary guard's hash.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR-10 of gh-#777 · STORY-439 · T504
🧪 What changes
TierTraitConventionGuard.FindViolationswalks the assembly by reflection and reports any test class that consumesKokoroFixtureor a stack fixture (today:RequestsArtworkFlywheelFixture) withoutCategory=Integrationat class level or on every fact. Detection coversIClassFixture<>,ICollectionFixture<>,[Collection(name)]resolved to its definition, and constructor parameters.HostTierTraitConventionGuardruns it on every PR. The MediaLibrary guard is untouched and its hash is pinned.run:line or filter changed (F177.4).✅ Proof
dotnet test tests/GenWave.Host.Tests --filter "Category=Integration" --list-testslists the two flywheel facts, so they moved to tier 2.🔍 Review
One round, PASS-WITH-NOTES (a CONTRIBUTING row implied release.yml runs per PR, a stale "red at plan time" header, a missing note that inherited facts are not checked). Fixed as doc edits. The root guard class is named
HostTierTraitConventionGuardbecause a rootTierTraitConventionGuardwould shadow the Support type inside the Specs namespace.