refactor: Reorganize source into subsystem folders/namespaces#46
refactor: Reorganize source into subsystem folders/namespaces#46Malcolmnixon merged 4 commits intomainfrom
Conversation
Move source files into subsystem-aligned subdirectories: - Context.cs → Cli/Context.cs (namespace DemaConsulting.VersionMark.Cli) - VersionMarkConfig.cs → Configuration/VersionMarkConfig.cs (namespace DemaConsulting.VersionMark.Configuration) - VersionInfo.cs → Capture/VersionInfo.cs (namespace DemaConsulting.VersionMark.Capture) - MarkdownFormatter.cs → Publishing/MarkdownFormatter.cs (namespace DemaConsulting.VersionMark.Publishing) - Lint.cs → Linting/Lint.cs (namespace DemaConsulting.VersionMark.Linting) - Validation.cs → SelfTest/Validation.cs (namespace DemaConsulting.VersionMark.SelfTest) - PathHelpers.cs → SelfTest/PathHelpers.cs (namespace DemaConsulting.VersionMark.SelfTest) Move test files into matching subdirectories with updated namespaces. Add cross-namespace using statements to all affected files. Add Folder Layout section to docs/design/introduction.md. Build succeeds with zero warnings. All 141 tests pass. Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
|
@copilot You've renamed subsystems, but you didn't rename the design documentation or the review-set names. |
- Rename docs/design/subsystem-command-line.md to subsystem-cli.md - Rename docs/design/subsystem-publish.md to subsystem-publishing.md - Rename docs/design/subsystem-lint.md to subsystem-linting.md - Rename docs/design/subsystem-validation.md to subsystem-selftest.md - Rename docs/reqstream/subsystem-command-line.yaml to subsystem-cli.yaml - Rename docs/reqstream/subsystem-publish.yaml to subsystem-publishing.yaml - Rename docs/reqstream/subsystem-lint.yaml to subsystem-linting.yaml - Rename docs/reqstream/subsystem-validation.yaml to subsystem-selftest.yaml - Update file references in docs/design/definition.yaml - Update file references in requirements.yaml - Update review-set IDs, titles, and file paths in .reviewmark.yaml - Update subsystem headings in renamed design files - Update subsystem names in introduction.md and system.md - Add selftest/SelfTest to cspell dictionary Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
…lRequirements review sets Agent-Logs-Url: https://github.com/demaconsulting/VersionMark/sessions/4a6bcc95-cf77-43a6-af3d-8074ddf2e09f Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Done in commits
Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
@copilot I notice the Validation class doesn't have an associated ValidationTests.cs - software units should have unit-tests. |
There was a problem hiding this comment.
Pull request overview
Refactors VersionMark to mirror a subsystem-aligned folder/namespace layout (matching the structure adopted by ReqStream), while updating tests and the documentation/review configuration to follow the new organization.
Changes:
- Reorganized
src/into subsystem folders with matchingDemaConsulting.VersionMark.<Subsystem>namespaces. - Reorganized
test/files into matching subsystem folders/namespaces and updated references/usings. - Renamed/realigned design + reqstream docs and updated
.reviewmark.yaml(including switching some review sets to glob patterns).
Reviewed changes
Copilot reviewed 26 out of 30 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/DemaConsulting.VersionMark/Program.cs | Adds subsystem namespace imports after moving types into subsystem namespaces. |
| src/DemaConsulting.VersionMark/Cli/Context.cs | Moves Context into Cli/ folder + ...VersionMark.Cli namespace. |
| src/DemaConsulting.VersionMark/Configuration/VersionMarkConfig.cs | Moves configuration types into Configuration/ folder + namespace; updates cross-subsystem using. |
| src/DemaConsulting.VersionMark/Capture/VersionInfo.cs | Moves VersionInfo into Capture/ folder + namespace. |
| src/DemaConsulting.VersionMark/Publishing/MarkdownFormatter.cs | Moves markdown formatter into Publishing/ folder + namespace. |
| src/DemaConsulting.VersionMark/Linting/Lint.cs | Moves lint logic into Linting/ folder + namespace; updates references to Cli.Context. |
| src/DemaConsulting.VersionMark/SelfTest/Validation.cs | Moves validation runner into SelfTest/ folder + namespace; updates cross-subsystem imports. |
| src/DemaConsulting.VersionMark/SelfTest/PathHelpers.cs | Moves path helpers into SelfTest/ folder + namespace. |
| test/DemaConsulting.VersionMark.Tests/ProgramTests.cs | Adds subsystem usings required by the new production namespaces. |
| test/DemaConsulting.VersionMark.Tests/IntegrationTests.cs | Adds subsystem usings required by the new production namespaces. |
| test/DemaConsulting.VersionMark.Tests/Cli/ContextTests.cs | Moves tests under Cli/ folder + ...Tests.Cli namespace; updates usings. |
| test/DemaConsulting.VersionMark.Tests/Configuration/VersionMarkConfigTests.cs | Moves tests under Configuration/ folder + namespace; updates usings. |
| test/DemaConsulting.VersionMark.Tests/Capture/VersionInfoTests.cs | Moves tests under Capture/ folder + namespace; updates usings. |
| test/DemaConsulting.VersionMark.Tests/Publishing/MarkdownFormatterTests.cs | Moves tests under Publishing/ folder + namespace; updates usings. |
| test/DemaConsulting.VersionMark.Tests/Linting/LintTests.cs | Moves tests under Linting/ folder + namespace; updates usings. |
| test/DemaConsulting.VersionMark.Tests/SelfTest/PathHelpersTests.cs | Moves tests under SelfTest/ folder + namespace; updates usings. |
| requirements.yaml | Updates included reqstream file names to the new subsystem naming. |
| docs/reqstream/subsystem-cli.yaml | Adds renamed subsystem requirements file for CLI. |
| docs/reqstream/subsystem-publishing.yaml | Adds renamed subsystem requirements file for Publishing. |
| docs/reqstream/subsystem-linting.yaml | Adds renamed subsystem requirements file for Linting. |
| docs/reqstream/subsystem-selftest.yaml | Adds renamed subsystem requirements file for SelfTest. |
| docs/design/introduction.md | Updates subsystem names and adds a folder layout section describing the new tree. |
| docs/design/system.md | Updates subsystem naming references in the system interaction diagrams/text. |
| docs/design/subsystem-cli.md | Renames subsystem doc title to “Cli”. |
| docs/design/subsystem-publishing.md | Renames subsystem doc title to “Publishing”. |
| docs/design/subsystem-linting.md | Renames subsystem doc title to “Linting”. |
| docs/design/subsystem-selftest.md | Renames subsystem doc title to “SelfTest”. |
| docs/design/definition.yaml | Updates the design definition input file list to the renamed subsystem docs. |
| .reviewmark.yaml | Updates review set IDs/titles and switches some sets to glob patterns for future-proofing. |
| .cspell.yaml | Adds SelfTest/selftest to project word list to avoid spelling false-positives. |
Comments suppressed due to low confidence (4)
docs/design/subsystem-selftest.md:5
- The header was renamed to “SelfTest Subsystem”, but the overview text still describes it as the “validation subsystem”. Update the narrative to consistently use the new subsystem name (e.g., “SelfTest Subsystem” / “Self-Validation”).
docs/design/subsystem-cli.md:5 - The title uses “Cli Subsystem”, but the overview text still refers to the “command-line interface subsystem”. Update the narrative to consistently use the new subsystem name to avoid mixed terminology.
docs/design/subsystem-publishing.md:5 - The title is “Publishing Subsystem”, but the overview text still calls it the “publish subsystem”. Update the wording to consistently use “Publishing Subsystem” throughout this document.
docs/design/subsystem-linting.md:5 - The title is “Linting Subsystem”, but the overview text still refers to the “lint subsystem”. Update the narrative to consistently use “Linting Subsystem” to match the renamed subsystem/folder.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Mirrors the folder/namespace subsystem structure recently adopted by ReqStream. Each subsystem gets its own subdirectory and child namespace; the test project mirrors the same layout.
Source restructure
Program.csDemaConsulting.VersionMarkContext.csCli/DemaConsulting.VersionMark.CliVersionMarkConfig.csConfiguration/DemaConsulting.VersionMark.ConfigurationVersionInfo.csCapture/DemaConsulting.VersionMark.CaptureMarkdownFormatter.csPublishing/DemaConsulting.VersionMark.PublishingLint.csLinting/DemaConsulting.VersionMark.LintingValidation.cs+PathHelpers.csSelfTest/DemaConsulting.VersionMark.SelfTestFolder names
LintingandSelfTestare deliberately chosen to avoidLint.LintandValidation.Validationnamespace/class collisions.Test restructure
Test files moved to matching subsystem subfolders (
Cli/,Configuration/,Capture/,Publishing/,Linting/,SelfTest/) with namespaces updated accordingly. Root-level files (Runner.cs,IntegrationTests.cs,ProgramTests.cs,AssemblyInfo.cs) remain at root.Documentation and review-set alignment
subsystem-command-line.md→subsystem-cli.md,subsystem-publish.md→subsystem-publishing.md,subsystem-lint.md→subsystem-linting.md,subsystem-validation.md→subsystem-selftest.mdsubsystem-command-line.yaml→subsystem-cli.yaml, etc..reviewmark.yaml:VersionMark-CommandLine-Subsystem→VersionMark-Cli-Subsystem,VersionMark-Lint-Subsystem→VersionMark-Linting-Subsystem,VersionMark-Publish-Subsystem→VersionMark-Publishing-Subsystem,VersionMark-Validation-Subsystem→VersionMark-SelfTest-SubsystemVersionMark-DesignandVersionMark-AllRequirementsreview sets switched to glob patterns (docs/design/**/*.mdanddocs/reqstream/**/*.yaml) so future files are automatically includeddocs/design/introduction.mdgains a Folder Layout section with the annotated source tree, and all subsystem names updated throughout design docs andsystem.mddefinition.yaml,requirements.yaml, and.reviewmark.yamlType of Change
Pre-Submission Checklist
Before submitting this pull request, ensure you have completed the following:
Build and Test
dotnet build --configuration Releasedotnet test --configuration Releasedotnet run --project src/DemaConsulting.VersionMark --configuration Release --framework net10.0--no-build -- --validateCode Quality
dotnet format --verify-no-changesQuality Checks
Please run the following checks before submitting:
cspell "**/*.{md,cs}"markdownlint "**/*.md"yamllint .Testing
Documentation
Additional Notes
Pure structural refactor — no logic, API, or behavior changes. All 141 tests pass unchanged.
⚡ Quickly spin up Copilot coding agent tasks from anywhere on your macOS or Windows machine with Raycast.