[Sprint 7] docs(adr): record xUnit v3 migration decision + performance analysis#169
Conversation
…166) - Document pilot scope: Domain.Tests in Sprint 7 - Include v3 rationale: MTP adoption, performance gains, ecosystem alignment - Provide rollout plan: Sprints 7–13, per-project versioning strategy - Add performance analysis: baseline metrics (104ms Domain.Tests), projected 5–15% improvement - Include migration examples: before/after test code, API changes - Outline risk mitigation: incremental rollout, measurement plan, fallback strategy Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
🏗️ PR Added to Squad Triage QueueThis PR has been labeled with Next steps:
|
- Appended Sprint 7 work summary to .squad/agents/pippin/history.md - Documented ADR structure, validation, learnings, and team coordination - Recorded performance metrics (104ms baseline, 5–15% projected improvement) - Outlined rollout plan (Sprints 7–13) and next steps for Gimli Note: Decision record created in .squad/decisions/inbox/pippin-xunit-v3-adr.md for Scribe to merge into decisions.md per squad workflow.
There was a problem hiding this comment.
Pull request overview
Adds a new Architecture Decision Record (ADR) documenting the Sprint 7 decision to pilot an incremental migration from xUnit v2 to xUnit v3 (starting with tests/Domain.Tests), including rationale, consequences, performance analysis, and a rollout plan.
Changes:
- Introduces a new ADR describing the xUnit v3 pilot decision and incremental rollout strategy.
- Documents estimated performance impact and a measurement plan for validating improvements.
- Provides migration notes and an appendix example to illustrate expected source-level changes.
| --- | ||
| post_title: "ADR: Migrate to xUnit v3 (Pilot)" | ||
| author1: "Pippin" | ||
| post_slug: "adr-sprint7-xunit-v3-migration" |
There was a problem hiding this comment.
PR/issue #166 acceptance criteria call for a new ADR in docs/decisions/ and for it to be linked from docs/decisions/index.md, but this PR adds the ADR under docs/adr/ and does not update the decisions index (currently only ADR-001 is listed). Either move/rename this to the decisions folder + add an index entry, or update the PR/issue description to match the intended docs/adr/ location.
| <ItemGroup> | ||
| <PackageVersion Include="xunit" Version="2.9.3" /> | ||
| <PackageVersion Include="xunit.v3" Version="3.0.x" /> | ||
| <PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5" /> | ||
| </ItemGroup> |
There was a problem hiding this comment.
The ADR example shows <PackageVersion Include="xunit.v3" Version="3.0.x" />, but Directory.Packages.props requires an explicit NuGet version (no x wildcard). This example is likely to be copy/pasted and will fail restore/build; consider using a concrete version (or clearly mark it as a placeholder with a non-copyable token).
| ## Rationale | ||
|
|
||
| **Why a pilot?** | ||
| - xUnit v3 is a major version with new APIs (e.g., `[Fact]` becomes `[Test]`, `TheoryData<T>` changes). Broad, fast migration risks introducing bugs. |
There was a problem hiding this comment.
This states [Fact] becomes [Test], which reads like a required rename. The repo’s xUnit v3 guidance indicates [Fact] remains supported for backward compatibility (see .github/prompts/xunit.prompt.md:231). Suggest rephrasing to "prefer [Test]" (or "[Test] is the v3 default") to avoid implying migrations must rewrite every [Fact].
| - xUnit v3 is a major version with new APIs (e.g., `[Fact]` becomes `[Test]`, `TheoryData<T>` changes). Broad, fast migration risks introducing bugs. | |
| - xUnit v3 is a major version with new APIs (e.g., `[Test]` is the v3 default and is preferred over `[Fact]`, `TheoryData<T>` changes). Broad, fast migration risks introducing bugs. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## sprint/7-xunit-v3-pilot #169 +/- ##
========================================================
Coverage 72.12% 72.12%
========================================================
Files 43 43
Lines 721 721
Branches 112 112
========================================================
Hits 520 520
Misses 150 150
Partials 51 51 🚀 New features to boost your workflow:
|
Closes #166
Summary
This ADR documents the xUnit v3 migration decision and pilot strategy for Domain.Tests in Sprint 7.
Contents
Validation
Related