Skip to content

Contributing

Getting Started

Install the .NET 10 SDK. The repository's global.json selects the supported SDK feature bands and Microsoft.Testing.Platform test runner. Install Node.js 24 to work on the TypeScript contracts or demo frontend.

From the repository root:

dotnet build Filtering.slnx
dotnet test --project test/TcfOss.Filtering.Linq.Tests/TcfOss.Filtering.Linq.Tests.csproj
dotnet test --project test/TcfOss.Filtering.Programmatic.Tests/TcfOss.Filtering.Programmatic.Tests.csproj

Package consumers should start with the package usage guides rather than these contributor instructions. For a runnable example, see the demo README.

Formatting

Check formatting before opening a pull request:

dotnet format --severity info --verify-no-changes

To apply formatting fixes, run dotnet format --severity info and review the diff. Keep formatting changes scoped to the code you are changing.

Integration Tests

The LINQ integration tests use Testcontainers to start MariaDB. Run them only with Docker installed and running, and with your user able to access the Docker daemon:

dotnet test --project test/TcfOss.Filtering.Linq.IntegrationTests/TcfOss.Filtering.Linq.IntegrationTests.csproj

With that Docker environment available, run every test project in the solution:

dotnet test --solution Filtering.slnx

Pull requests run the two unit-test projects. Integration tests also run for release branches or pull requests labeled full-ci.

TypeScript Contracts

From the repository root:

cd npm/tcfoss-filtering-contracts
npm ci
npm run build
npm run typecheck

Documentation and Releases

Feedback and Pull Requests

Report bugs and feature requests on IssueTracker. Contributions use the usual fork-and-pull-request workflow. Include tests for new behavior, ensure existing tests pass, and update relevant package READMEs and documentation. See the repository contribution checklist before opening a pull request.