Skip to content

Build Package and Contribute

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

Build, package, and contribute

Repository layout

src/
  Imp/          framework project
  Imp.Tests/    framework unit tests
Samples/
  TodoApp/      runnable ASP.NET Core sample
  TodoApp.Tests/

Root files contain solution/build configuration, README, license, and community metadata.

Build and test

Install the .NET 10 SDK, then:

git clone https://github.com/KitchenPC/Imp.git
cd Imp
dotnet restore Imp.slnx
dotnet build Imp.slnx --configuration Release --no-restore
dotnet test Imp.slnx --configuration Release --no-build --no-restore

Run the sample:

dotnet run --project Samples/TodoApp/TodoApp.csproj

Build a package

dotnet pack src/Imp/Imp.csproj \
  --configuration Release \
  --output artifacts

Inspect the package before release. It should contain the library, XML documentation, root README, and MIT license. Do not commit bin, obj, package, or artifact outputs.

CI and releases

Pushes and pull requests restore, build, test, and create a prerelease package artifact. Version tags run the NuGet publication workflow. Package versions are immutable:

git tag v0.1.1
git push origin v0.1.1

Increment the version for every release. Use patch versions for backward-compatible fixes, minor versions for additive features, and major versions for breaking public API/behavior changes.

Contribution guidance

  • Add tests for routing, binding, lifecycle, compiler, or response behavior changes.
  • Add an HTTP integration check when behavior depends on Kestrel or the real middleware pipeline.
  • Keep templates well-formed and exercise new embedded resources.
  • Preserve terminal-middleware behavior unless a deliberate design change is discussed.
  • Document security responsibilities—encoding, antiforgery, authentication, and authorization.
  • Update the Todo sample when it can demonstrate a feature without becoming a production-sized application.
  • Open an issue before large API or template-language changes.

See CONTRIBUTING, SECURITY, and the MIT License.

Clone this wiki locally