Share explicit build test project list - #1693
Conversation
Replace duplicated hardcoded test project lists with framework-aware discovery shared by the primary and net48 coverage workflows.
ReviewThis is a build-tooling-only change ( What it does well
Minor nits (non-blocking)
Test coverage: Reasonable for a CI script change — author validated manually (discovery returns all 4 projects for both TFMs, PS 7/5.1, full net10 run, partial net48 run) per the PR description. No automated test for Overall: solid, well-scoped DRY fix for the exact problem it says it's solving. No blocking issues found. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1693 +/- ##
========================================
+ Coverage 97% 98% +1%
========================================
Files 237 514 +277
Lines 18503 24141 +5638
========================================
+ Hits 18013 23748 +5735
+ Misses 490 393 -97
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
ReviewThis PR is scoped entirely to build tooling ( What it does well
Minor issues
Test coverageNo automated test exercises Overall: a reasonable, self-contained improvement to CI robustness with no impact on the library itself. The two minor points above are worth a look but not blocking. |
ReviewSmall, low-risk build-script change — no impact on the public API, generated code, or unit/quantity definitions, so most of the usual review checklist (breaking changes, new units, generator changes) doesn't apply here. What it does: hoists the Feedback
Non-issues checked
Overall this is a reasonable, low-risk cleanup that does what the description says. 🤖 Generated with Claude Code |
ReviewSmall, well-scoped build-infra change — no C#, JSON unit definitions, or generated code touched, so most of the review checklist (breaking changes, quantities/units, generated-code diffs) doesn't apply here. Breaking changes: None — this only affects build/CI scripts, not the published library. Behavior change worth confirming intentional: The net48 workflow's hardcoded list previously had 6 projects and excluded Style/conventions:
Test coverage: N/A (build tooling only) — the PR description lists manual validation commands for both Windows PowerShell and Overall this is a clean, minimal refactor that does what the description says. Nice job keeping the list explicit rather than switching to project discovery/MSBuild evaluation, which avoids extra build-time cost per the stated motivation. |
ReviewScope: this PR only touches build tooling ( Behavior change worth flaggingThe net48 workflow's hard-coded list previously had 6 projects and was missing This looks like a good fix for a pre-existing inconsistency (the csproj already multi-targets Style / consistency
CorrectnessGood catch on the underlying goal (single source of truth for the test project list) — this removes real duplication risk where the three lists could silently drift, which is exactly what happened here (net48 workflow silently missing a project). Test coverage / validationThe PR description's validation steps confirm the function resolves correctly and the module imports cleanly, but don't call out that the net48 job will now run an extra test project. Recommend explicitly confirming the net48-compatibility CI result on this PR shows No breaking changes, security concerns, or performance issues identified. |
ReviewSmall, well-scoped build-tooling refactor — no library code, generated code, or unit/quantity definitions touched. Breaking changes: None. This only affects internal build/CI scripts, not the published packages or public API. Behavior change worth calling out: The net48 workflow's old hard-coded list was missing Style/conventions: Consistent with the existing PowerShell in Minor nit: Generated code: N/A — no changes to New quantities/units: N/A. Test coverage: N/A for a build-script change; the PR description documents manual validation ( Security: None — no untrusted input, no new external calls, purely internal script consolidation. Overall this is a clean DRY-up that removes a real duplication bug (the net48/build-functions list drift). LGTM once the SystemTextJson.Tests inclusion is confirmed intentional. |
ReviewThis is a build-tooling-only change (PowerShell scripts + workflow YAML) — no impact on the public API, quantities/units, or generated code, so most of the usual review checklist doesn't apply here. Nice cleanup of the duplicated test-project list. Behavior change worth confirming (not just a refactor)Before this PR,
After this PR, both consume the same shared Minor style notes
Test coverageNo automated tests are applicable here (build scripts), and the PR description lists reasonable manual validation (importing both modules under No breaking changes, security concerns, or issues with the generated-code pipeline — this PR doesn't touch |
Motivation
The build scripts should keep the actual test project list easy to see and avoid project discovery or MSBuild evaluation on every build. The net48 compatibility workflow runs the same main test projects on .NET Framework, so it should not duplicate the project names or import the full build-functions module just to get the list.
Changes
Build/test-projects.psm1Get-TestProjectPathsGet-TestProjectPathsexplicitly fromBuild/build-functions.psm1and the net48 compatibility workflowmasterValidation
powershell -NoProfile -ExecutionPolicy Bypass -Command 'Import-Module ./Build/test-projects.psm1 -Force; @(Get-TestProjectPaths) | ForEach-Object { $_ }'pwsh -NoProfile -Command 'Import-Module ./Build/test-projects.psm1 -Force; @(Get-TestProjectPaths) | ForEach-Object { $_ }'powershell -NoProfile -ExecutionPolicy Bypass -Command 'Import-Module ./Build/build-functions.psm1 -Force'pwsh -NoProfile -Command 'Import-Module ./Build/build-functions.psm1 -Force'git diff --check -- Build/test-projects.psm1 Build/build-functions.psm1 .github/workflows/net48-compatibility.yml