Skip to content

docs: define test project-reference boundaries - #441

Merged
SunSi12138 merged 3 commits into
devfrom
docs/431-test-project-reference-boundaries
Aug 30, 2026
Merged

docs: define test project-reference boundaries#441
SunSi12138 merged 3 commits into
devfrom
docs/431-test-project-reference-boundaries

Conversation

@SunSi12138

Copy link
Copy Markdown
Owner

Motivation

Issue #431 split test-originating ProjectReference topology out of the production-only boundary work from #371. The repository has a non-trivial test graph (including shared contracts/plugins, package-rooting projects, AOT artifacts, load-test support, and fixture projects) but no canonical policy describing which direct edges and modes are intentional.

Closes #431.

Changes

  • Add doc/test-project-reference-boundaries.yml as a machine-readable, default-deny policy for ProjectReference edges originating under test/.
  • Inventory the current dev graph at 3e772ef0de75bda9f79d5f3508ef01f573bb6254: 107 direct test-originating edges.
  • Classify normal test-to-production edges as allowed and test-to-test/support edges as intentional_test_infrastructure; there are currently no debt exceptions.
  • Define exact assembly, analyzer, and build_only mode semantics, including ReferenceOutputAssembly=false build/order-only dependencies.
  • Cover solution and non-solution fixtures, including MultiCluster contracts, RollbackPlugin, StaticCodecOwner contracts, package-rooting support, and the generated API4 fixture.
  • Keep doc/project-reference-boundaries.yml authoritative for all src/ origins; this policy cannot relax production rules.
  • Add the new boundary document to doc/index.md.
  • Do not add or change CI enforcement.

Compatibility

  • Public API: no change.
  • Protocol/wire format: no change.
  • Generated code or contract manifest: no change.
  • NativeAOT and platform behavior: no change.

Validation

  • Compared the policy against every current top-level test/*.csproj project and the nested test/fixtures project set on the baseline commit.
  • Verified the grouped policy expands to 107 direct ProjectReference edges.
  • Verified current reference metadata falls into the documented assembly, analyzer, or build_only modes.
  • Verified the branch changes only documentation/policy files and does not modify CI enforcement.
  • Non-incremental Release build: not run; this is a documentation/design-only PR with no build inputs changed.
  • Runtime/unit/integration tests: not run for the same reason.

Evidence

@SunSi12138
SunSi12138 merged commit 7721257 into dev Aug 30, 2026
28 checks passed
@SunSi12138
SunSi12138 deleted the docs/431-test-project-reference-boundaries branch August 30, 2026 06:35
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