Runbook for shipping Nj.EntityFrameworkCore.LibSql / Nj.LibSql.Data /
Nj.LibSql.Bindings to NuGet.org.
Prefer Trusted Publishing (OIDC → short-lived API key) over long-lived NuGet API keys.
- On nuget.org → Trusted Publishing,
add a policy owned by your nuget.org account (or org):
- Repository Owner:
nareshjois - Repository:
Nj.EntityFrameworkCore.LibSQL - Workflow File:
package.yml(file name only) - Environment: leave empty (workflow does not use a GitHub Environment)
- Repository Owner:
- In GitHub → Settings → Secrets → Actions, add
NUGET_USER: your nuget.org profile username (not email). Used byNuGet/login@v1. - First successful publish permanently activates the policy (IDs from GitHub’s token). Private-repo policies may be temporarily active for 7 days until then.
-
Green
main— CI + integration (sqld) + driver suites as required. -
Changelog — move notes under
[10.0.0-preview.N]in CHANGELOG.md. -
Version —
Directory.Build.propsVersionPrefix/VersionSuffixmatch the tag (currently10.0.0+preview.2). -
Tag (annotated):
git tag -a v10.0.0-preview.2 -m "Nj.EntityFrameworkCore.LibSql 10.0.0-preview.2" git push origin v10.0.0-preview.2 -
Pack + publish CI — tag push runs
.github/workflows/package.yml: nupkgs, SBOM, provenance, then OIDC login +dotnet nuget push.To republish without a new tag (e.g. after fixing Trusted Publishing setup):
gh workflow run package.yml -f publish=true
-
Verify — create a throwaway console app:
dotnet new console -n PreviewSmoke cd PreviewSmoke dotnet add package Nj.EntityFrameworkCore.LibSql --prerelease # UseLibSql + SELECT 1 / EnsureCreated on a temp file
-
GitHub Release — attach notes from CHANGELOG; link compatibility + C-019.
Only if Trusted Publishing is unavailable:
export NUGET_API_KEY=… # do not commit
dotnet nuget push artifacts/packages/*.nupkg \
--api-key "$NUGET_API_KEY" \
--source https://api.nuget.org/v3/index.json \
--skip-duplicateNot required for Preview NuGet; track before labeling 10.0.0:
- Advertise additional RIDs only after smoke (
win-arm64,linux-arm64,osx-x64, musl) — deferred; Preview keeps three RIDs — deployment.md - Drive unexplained compliance skips toward zero / document remaining
- Package signing (if required by policy)
- API compatibility baselining for public surface
- Support window + upgrade/rollback notes
- Prefer two-maintainer approval when available
See release-policy.md and SECURITY.md.
