Development
This guide covers the local workflow for changing Universal Data Generator.
Set up
Install the .NET 10 SDK and, on Windows, the Windows desktop workload. Build the solution:
dotnet build UniDataGen.slnx
The change loop
- Make the code change in the relevant project.
- Add or update tests in
tests/UniDataGen.Core.Testsortests/UniDataGen.Targets.Tests. - Run the tests.
- Update the documentation in the same change. See the documentation rule below.
- Add a changelog entry under
Unreleased.
dotnet build UniDataGen.slnx
dotnet test tests/UniDataGen.Core.Tests
dotnet test tests/UniDataGen.Targets.Tests
Project layout
The libraries live under src/, the hosts under hosts/, and the tests under tests/. The
dependency direction is one way: hosts depend on the libraries, the libraries depend on
UniDataGen.Abstractions. Keep it that way. A new target adapter belongs in UniDataGen.Targets; a new
value provider implements IValueProvider and lives in its own project.
The documentation rule
Documentation is part of every change. When you add, alter, or remove a feature:
- Update the affected guide under ../guides/.
- Update the affected API reference under ../api/.
- Add a changelog entry under
Unreleasedin ../../CHANGELOG.md. - Add an ADR under ../architecture/decisions/ for a substantive design decision.
Building in a sandbox
The Core and Targets test projects build and run with no network. When NuGet cannot write to a mounted or read-restricted folder, build a copy of the source on a local path.