Skip to content

chore: align the repository layout with tabular (#3) - #237

Merged
vaceslav merged 7 commits into
mainfrom
chore/project-structure
Oct 3, 2026
Merged

vaceslav merged 7 commits into
mainfrom
chore/project-structure

Conversation

@vaceslav

@vaceslav vaceslav commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Description

Aligns the repository layout with TriasDev/tabular: projects grouped in src/, tests/, benchmarks/, samples/ and tools/, an .slnx solution with matching solution folders, and layered Directory.Build.props. No library code changes; the NuGet package is identical.

Spec: docs/superpowers/specs/2026-10-03-project-structure-design.md · Plan: docs/superpowers/plans/2026-10-03-project-structure.md

Before After
TriasDev.Templify/ src/TriasDev.Templify/
TriasDev.Templify.Tests/, .Tools.Tests/, .Converter.Tests/ tests/...
TriasDev.Templify.Benchmarks/ benchmarks/...
TriasDev.Templify.Demo/ samples/...
TriasDev.Templify.Converter/, .Gui/, .DocumentGenerator/ tools/...
templify.sln templify.slnx

Type of Change

  • Code refactoring
  • Documentation update

Related Issues

Fixes #3

Changes Made

Commits (review them one by one; the aggregate diff is mostly renames):

  1. git mv of all projects + project references, CI, release-please, .gitignore, converter scripts (.sh/.cmd)
  2. templify.sln → templify.slnx; DocumentGenerator finds the repo root by templify.slnx; CodeQL/SonarQube workflows
  3. src/Directory.Build.props (package metadata, Source Link, public API guard) and tests/Directory.Build.props (xUnit packages, IsPackable=false) importing the root props
  4. Documentation paths (CLAUDE.md, CONTRIBUTING, READMEs, docs site, GitHub links)
  5. Review fix: DocumentGenerator .env fallback now points to tools/ (new test), script snippets in scripts/README.md

Out of scope (unchanged): Central Package Management, lock files, VSTest (no switch to MTP), analyzers, target frameworks, package ID, namespaces.

Testing

Test Environment

  • .NET 10
  • .NET 9
  • .NET 8

Tests Added/Updated

  • Unit tests added/updated (RepositoryPaths smoke tests: .slnx root, generator .env path)
  • All existing tests pass
  • Test coverage maintained or improved

Manual Testing

  • dotnet build -c Release -p:ContinuousIntegrationBuild=true: 0 warnings, 0 errors; dotnet format --verify-no-changes: clean; dotnet restore --locked-mode: lock files valid
  • Test counts equal to main: Templify.Tests 2349 × net10/net9/net8, Converter.Tests 95, Tools.Tests 64 (63 + 1 new)
  • LibreOffice round trips: 15/15 passed, 0 skipped
  • Package equivalence vs. a pack of main: same .nupkg and .snupkg file lists, nuspec identical except the repository commit; package validation against 1.9.0 passes; RS0016 still fires for an undeclared public type
  • scripts/{validate,analyze,clean,convert}.sh run against an example document (exit 0)
  • dotnet run --project tools/TriasDev.Templify.DocumentGenerator -- --skip-images finds the repository root (regenerated examples differ only in OpenXML's random relationship id, not committed)
  • mkdocs build --strict: OK

Documentation

  • README updated
  • Documentation site updated

Performance Impact

  • No performance impact

Breaking Changes

None for package consumers (public API impact: none). For contributors:

  • External links to old GitHub paths (e.g. .../blob/main/TriasDev.Templify/Examples.md) break; GitHub does not redirect moved files. In-repo links are updated; the NuGet page picks up the new README links with the next release.
  • Local bin/, obj/ and IDE folders under the old project directories can be deleted after pulling. IDEs need .slnx support (VS 2022 17.13+, Rider 2024.3+).

Checklist

  • My code follows the project's coding standards
  • I have performed a self-review of my code
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

Additional Context

  • In the aggregate diff the three test .csproj files appear as delete + add (commit 3 removed most of their content); per commit they are renames and history follows.
  • Three relative links were already broken before this change (DocumentGenerator README images, ../docs/quick-start.md in the GUI README); left as is.
  • Dependabot keeps directory: "/" (central package versions live at the root); confirm with its next run.

@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@vaceslav
vaceslav merged commit 9839436 into main Oct 3, 2026
12 checks passed
@vaceslav
vaceslav deleted the chore/project-structure branch October 3, 2026 19:31
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.

Evaluate project structure improvements

2 participants