Table of Contents

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

  1. Make the code change in the relevant project.
  2. Add or update tests in tests/UniDataGen.Core.Tests or tests/UniDataGen.Targets.Tests.
  3. Run the tests.
  4. Update the documentation in the same change. See the documentation rule below.
  5. 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:

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.