Skip to content

Build Test and Contribute

Mike Christensen edited this page Aug 28, 2026 · 2 revisions

Build, test, and contribute

Requirements

  • .NET 8 and .NET 10 SDKs
  • Git
  • PostgreSQL only for manual database integration work; the normal unit-test suite does not require it

Build and test Core

git clone https://github.com/KitchenPC/core.git KitchenPC-Core
cd KitchenPC-Core
dotnet restore src/core.slnx
dotnet build src/core.slnx --configuration Release --no-restore
dotnet test src/UnitTests/UnitTests.csproj \
  --configuration Release --no-build --no-restore

The solution builds KitchenPC.Core, KitchenPC.DB, KitchenPC.Core.AspNetCore, and unit tests. Pull requests and pushes run the build/test workflow, audit the complete NuGet dependency graph, and create matching prerelease packages for validation.

Run end-to-end samples

Clone KitchenPC/Samples for:

  • a database-free Terminal.Gui shopping list;
  • a PostgreSQL database initializer;
  • an ASP.NET Core, React, and TypeScript recipe application;
  • backend and frontend tests.

The Samples README contains the current SDK, Node.js, Docker, and command details.

Contribution guidance

  • Open an issue for substantial behavior changes or compatibility questions.
  • Add focused tests for fixes and public behavior.
  • Preserve existing context semantics unless a breaking change is intentional and documented.
  • Include async and cancellation behavior when extending database APIs.
  • Measure startup/memory changes that affect capability indexes or the modeler graph.
  • Never commit database credentials, production snapshots, or user recipe data.
  • Update the Wiki and Samples when public setup or behavior changes.

Releases

Version tags publish matching KitchenPC.Core, KitchenPC.DB, and KitchenPC.Core.AspNetCore packages. NuGet versions are immutable, so every release needs a new version:

git tag -a v2.0.0 -m "KitchenPC 2.0.0"
git push origin v2.0.0

Maintainers should confirm CI, package contents, symbols, README links, dependency versions, and all three packages on NuGet before announcing a release.

Clone this wiki locally