Skip to content

Repository files navigation

.NET Build & Test codecov Contributors Issues MIT License

Kontent.ai .NET

Important

This is the home of the Kontent.ai .NET SDKs. All five products have moved here with their full history, and packages are published from this repository.

The former per-product repositories are frozen — they are kept for reference and for the release history of versions published before the move. Open issues and pull requests here instead:

Former repository Now at
delivery-sdk-net src/delivery
management-sdk-net src/management
sync-sdk-net src/sync
aspnetcore-extensions src/aspnetcore
model-generator-net src/model-generator

Package IDs and public APIs are unchanged by the move.

About

A monorepo for the Kontent.ai .NET SDKs and tooling — one place for the client libraries, the model generator, integrations and samples, so that a change touching several of them is one pull request rather than a coordinated release across five repositories.

Layout

src/<product>/     each product, with its own CHANGELOG.md and package metadata
eng/               version source of truth, release routing, build scripts
.github/workflows/ CI and the tag-routed release pipeline

Currently migrated:

Product Path Packages
ASP.NET Core extensions src/aspnetcore Kontent.Ai.AspNetCore
Delivery SDK src/delivery Kontent.Ai.Delivery, Kontent.Ai.Delivery.Abstractions, Kontent.Ai.Delivery.Caching, Kontent.Ai.Delivery.SourceGeneration, Kontent.Ai.Urls
Management SDK src/management Kontent.Ai.Management
Model generator src/model-generator Kontent.Ai.ModelGenerator, Kontent.Ai.ModelGenerator.Core
Sync SDK src/sync Kontent.Ai.Sync, Kontent.Ai.Sync.Abstractions

Building

Requires the .NET SDK pinned in global.json.

dotnet build          # everything
dotnet test           # everything, with per-product coverage gates

Each product also has its own solution under src/<product>/ if you only want to open one.

Releasing

Versions live in eng/Versions.props, one property per product. A release is a version bump plus a changelog entry, then a tag.

Actions → Prepare release is the normal route. Each product has its own dropdown defaulting to none, so one run can bump several products at once and opens a single PR covering the batch.

After merging that PR, Actions → Publish batch creates a GitHub Release for every product whose declared version is not yet on NuGet — in dependency order, waiting for each to publish before starting the next. Release notes come from each product's changelog. It defaults to a dry run, so you can see the plan and the notes before anything is created.

Nothing about that is required: a release is just a GitHub Release tagged <product>-v<version>, so creating them by hand works exactly the same. Releases stay independent either way — any one can be published or dropped without affecting the rest.

The same bump can be done locally if you prefer:

dotnet run eng/scripts/update-version.cs -- <product> <prerelease|release|patch|minor|major>
# review, commit, merge, then tag <product>-v<version>

Publishing is routed by the tag: aspnetcore-v0.17.0 packs and publishes only the ASP.NET Core product. The pipeline refuses to publish if the tag disagrees with eng/Versions.props, if the changelog has no entry for that version, or if a package would depend on a Kontent.Ai.* version that is not yet on NuGet. Packages belonging to the same product are exempt from that last check — they are published together.

Prepared but not released

Preparing and publishing are separate steps, so a batch can bump several products and then only some get released. To see where each product stands:

dotnet run eng/scripts/release-status.cs

A PREPARED, NOT PUBLISHED product is a normal intermediate state, not a problem. Resolve it whichever way matches your intent:

  • Releasing it later — do nothing. The version property and changelog entry are already valid; tag <product>-v<version> whenever you are ready.
  • Abandoning it — undo the preparation: restore the version in eng/Versions.props, and delete the ## <version> (<date>) heading so its notes sit under ## Unreleased again.

The one thing to avoid is preparing the same product again while it is in this state — the bump would move on from a version that was never published, silently skipping it.

Contributing

See CONTRIBUTING.md and CODE_OF_CONDUCT.md.

License

Distributed under the MIT License. See LICENSE.md for more information.

About

A monorepo containing all .NET tools for Kontent.ai

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages