Releases¶
This project uses Git tags to drive both:
- GitHub Releases (engine binaries)
- NuGet releases for the .NET bindings
Tag scheme¶
Pre-RTM engine releases¶
- Tag:
v0.1.X - GitHub: pre-release
- NuGet:
1.0.0-rc.X
Examples:
v0.1.1-> NuGet1.0.0-rc.1v0.1.13-> NuGet1.0.0-rc.13
Release candidates (optional explicit tags)¶
- Tag:
v1.0.0-rc.X - GitHub: pre-release
- NuGet:
1.0.0-rc.X
RTM¶
- Tag:
v1.0.0 - GitHub: full release
- NuGet:
1.0.0
Minor and patch releases¶
- Tag:
v1.Y.Z(e.g.v1.1.0,v1.1.1) - GitHub: full release
- NuGet:
1.Y.Z
Workflows¶
GitHub release binaries¶
- Workflow:
.github/workflows/release.yml - Trigger: tags
v* - Output: release artifacts containing the DecentDB CLI and the native library for Linux/Windows/macOS.
NuGet publishing¶
- Workflow:
.github/workflows/nuget.yml - Trigger: tags
v* - Packages:
DecentDB.AdoNetDecentDB.MicroOrmDecentDB.EntityFrameworkCoreDecentDB.EntityFrameworkCore.DesignDecentDB.EntityFrameworkCore.NodaTime- Target framework:
.NET 10only (net10.0) - Publishing targets:
- GitHub Packages: Automatically published using
GITHUB_TOKEN(no configuration needed) - NuGet.org: Published if
NUGET_API_KEYsecret is configured
Required secrets:
NUGET_API_KEY(optional) - API key for publishing to NuGet.org- Obtain from: https://www.nuget.org/account/apikeys
- Create a new API key with "Push" permission for the published
DecentDB.*packages - Add the secret to repository settings: Settings → Secrets and variables → Actions → New repository secret
- If not configured, packages will still be published to GitHub Packages
Both publish steps use continue-on-error: true, so if one target fails, the other will still be attempted.
Creating a pre-release¶
- Ensure
mainis green (tests). - Choose the next build number
X. - Create and push the tag:
GitHub Actions will:
- create a GitHub pre-release and attach binaries
- publish all
DecentDB.*NuGet packages as1.0.0-rc.X