This checklist keeps the release flow deterministic and mirrors the Telegram.Bot / VkNet cadence.
- Ensure every user-facing change is documented in
CHANGELOG.mdunder[Unreleased]. - Confirm
src/Max.Bot/Max.Bot.csprojhas the correct<Version>/<PackageId>metadata. - Verify secrets:
NUGET_API_KEY(GitHub),MAX_BOT_TOKEN(local testing) stay out of source control.
dotnet format Max.Bot.sln --verify-no-changes
dotnet format analyzers Max.Bot.sln --verify-no-changes --no-restore
dotnet test Max.Bot.sln -c Release /p:CollectCoverage=true /p:CoverletOutputFormat=\"cobertura%2copencover\" /p:CoverletOutput=TestResults/Coverage/ /p:Threshold=60 /p:ThresholdType=line /p:ThresholdStat=total
dotnet pack src/Max.Bot/Max.Bot.csproj -c Release /p:ContinuousIntegrationBuild=trueInspect the generated .nupkg/.snupkg locally (e.g., nuget package -Expanded or nuget locals) to ensure README and XML docs are embedded.
- Bump
VersioninMax.Bot.csprojif needed (0.3.0-alpha, etc.). - Commit the changes and tag:
git tag v0.3.0-alpha
git push origin v0.3.0-alpha- Tag push triggers
.github/workflows/release.yml. - Workflow steps: restore → format → analyzers → build → tests (with coverage) →
dotnet pack→ upload artifacts →dotnet nuget push(skipping duplicates). - Monitor the run at
https://github.com/MaxBotNet/MaxBotNet/actions. The run must be green before announcing the release.
- Confirm package visibility on NuGet.org.
- Smoke test the package in a clean project:
dotnet new console -n MaxBotNet.ReleaseSmoke
cd MaxBotNet.ReleaseSmoke
dotnet add package MaxMessenger.Bot --prerelease- Create a GitHub Release that references the changelog entry and attaches any notable artifacts if necessary.
Following these steps keeps parity with the Telegram.Bot / VkNet release discipline and prevents drift between libraries, docs, and shipped packages.