eiriktsarpalis/nosln
61.9
Adequate · 3 October 2026
779
lines of production code
F#
primary language
2
measurements over time
What this system is
This system is a .NET toolset designed to automatically generate solution files from directory structures. It provides both a command-line interface and a reusable library that create .sln and .slnx files by analyzing project paths, handling references, and respecting gitignore rules. The implementation supports multiple .NET versions, including legacy .NET Framework and modern .NET 10 targets.
Features
Added .NET Framework 4.6.1 example application
A new example project (TestApp.Net461) has been added to the examples directory, demonstrating how to use the Argu library for command-line argument parsing in a .NET Framework 4.6.1 context. This complements the existing examples by providing a reference implementation for users targeting older .NET Framework versions.
examples · high confidence
Initial release of dotnet-nosln CLI tool
Introduces dotnet-nosln, a command-line tool that automatically generates .NET solution files from the directory structure. The tool supports filtering projects and files via globbing patterns, respects .gitignore rules, and can launch an IDE with the generated solution. It requires the .NET 10 SDK and is distributed as a global .NET tool.
(repo-wide) · high confidence
Introduce NoSln library for generating .slnx solution files
Adds the NoSln library, a new capability for programmatically generating solution files (specifically the .slnx format) from a list of project and file paths. The library handles building a solution tree with nested folders, resolving project-to-project references (including transitive dependencies), and writing the resulting XML structure to disk. It includes cross-platform path utilities to ensure correct relative path generation and file system handling on both Windows and Linux.
src/NoSln · high confidence
Introduce dotnet-nosln tool for generating .slnx solution files
The \src/NoSln.Tool\ directory now contains the source code for the \dotnet-nosln\ CLI tool, which generates .slnx solution files from a directory of projects. The tool supports various options to control project inclusion/exclusion via globbing patterns, respects .gitignore files, and allows users to flatten project structures or use absolute paths. It also includes a \--start\ flag to automatically open the generated solution in the default IDE. The tool is configured with a runtime template that allows major version roll-forward, ensuring compatibility across different .NET runtime versions.
src/NoSln.Tool · high confidence
Test coverage
Added tests for solution generation and structure
Added a new test project (NoSln.Tests) that verifies the generated solution file places test projects and solution items in the correct folders, handles flattened folder structures, manages transitive project-to-project references, outputs XML format, and uses the .slnx file extension.
tests · high confidence
Dependencies
Centralized dependency management and .NET 10 upgrade
The project now uses central package version management via Directory.Packages.props, explicitly defining versions for Argu (6.2.5), Fake.IO.FileSystem (6.1.4), FSharp.Core (10.1.302), MinVer (7.0.0), and xunit (2.9.3). This change accompanies a shift to .NET 10.0 for the CLI tool and test projects, while the core library remains on netstandard2.0. Example projects have been added to demonstrate usage on both net461 and net10.0 targets.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 64 → 62 (-1.8)
- Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 98 → 97 (-1.7)
- Architecture 99 → 99 (+0.5)
- Maturity 59 → 53 (-6.6)
- Readiness 50 → 50 (+0.0)
- Security 89 → 89 (+0.0)
New (2)
- Cli.processArguments (cognitive 21) (src/NoSln.Tool/Cli.fs)
- Documentation: no architecture or design documentation
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
eiriktsarpalis/nosln was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 228a39be8ec77d83f701f321e33d2e021ec45ab0 — the exact code this score is about.
- Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-4f4226d619ea.