Repository navigation
fix(ci): fail when tracked projects are missing from the solution - #4575
Merged
iancooper merged 4 commits intoOct 11, 2026
Merged
Conversation
Check Git-tracked projects against Brighter.slnx with explicit exclusions and shell regression coverage. Document the local check and run it in CI. Refs BrighterCommand#4273
…into fix/4273-solution-project-guard
gabisonia
requested review from
DevJonny,
holytshirt,
iancooper and
preardon
as code owners
October 10, 2026 12:48
Member
|
Thanks @gabisonia |
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description
A Git-tracked
.csprojomitted fromBrighter.slnxcan silently escape the CI build. Add a guard before the build that compares all tracked projects with actual solution project entries and fails with a diff when they disagree.The guard parses solution XML, preserves Git path casing, ignores untracked files, and supports documented exact-path exclusions for standalone diagnostics. Stale exclusions also fail. Add fixture tests and contributor instructions for maintaining project registration.
Related Issues
Fixes #4273.
Type of Change
Checklist
Additional Notes
Validation on macOS:
bash test_check_solution_projects.sh: 23 cases, 39 assertions passed.bash check_solution_projects.sh: passed against the repository.shellcheck check_solution_projects.sh test_check_solution_projects.sh: passed.git diff --check: passed.Coverage includes missing projects across repository folders, casing mismatches, spaces, exclusions, comments, solution-file entries, XML quoting/formatting/entities, and malformed solutions. No public API changes. The guard requires Python 3's standard library; GitHub's Ubuntu CI run remains the Linux verification.
Please merge with a merge commit, as requested by the contributing guide.