Skip to content

build: migrate versioning to MinVer#261

Draft
ChrisPulman wants to merge 1 commit into
mainfrom
CP_migrate-minver-versioning
Draft

build: migrate versioning to MinVer#261
ChrisPulman wants to merge 1 commit into
mainfrom
CP_migrate-minver-versioning

Conversation

@ChrisPulman

Copy link
Copy Markdown
Member

What kind of change does this PR introduce?

Build and release infrastructure migration.

What is the new behavior?

  • Versioning now uses MinVer with a v tag prefix, a 3.2 minimum major/minor floor, minor auto-increment, and alpha.0 prerelease identifiers for untagged builds.
  • BuildDeploy.yml is now a manual unsigned release workflow with MinVer version/tag calculation, unsigned NuGet package artifacts, NuGet OIDC trusted publishing, and GitHub release creation.
  • BuildOnly.yml no longer runs the NBGV action and its test step builds before running MTP/TUnit tests.

What is the current behavior?

  • Versioning is driven by Nerdbank.GitVersioning through version.json, Nuke build references, and dotnet/nbgv GitHub Actions steps.
  • BuildDeploy uses the old NBGV/Nuke deploy flow and publishes with a NuGet API key.

Checklist

  • Tests have been added or updated (for bug fixes / features)
  • Docs have been added or updated (for bug fixes / features)
  • Changes target the main branch
  • PR title follows Conventional Commits

Additional information

Validation completed locally:

  • dotnet restore Extensions.Hosting.slnx
  • dotnet pack Extensions.Hosting.SingleInstance\Extensions.Hosting.SingleInstance.csproj -c Release produced CP.Extensions.Hosting.SingleInstance.3.2.0-alpha.0.218.nupkg
  • dotnet build Extensions.Hosting.slnx -c Release -warnaserror --no-restore /m:1
  • dotnet build ..\build\_build.csproj -c Release --no-restore
  • dotnet test --solution Extensions.Hosting.slnx -c Release --coverage --coverage-output-format cobertura --results-directory .\TestResults -- --output Detailed passed 352/352

This PR intentionally configures the release as unsigned because no signing certificate is available yet. The release workflow expects NuGet trusted publishing via secrets.NUGET_USER.

Versioning:

- Replace Nerdbank.GitVersioning configuration with MinVer MSBuild properties.

- Remove version.json and NBGV package/tool references from the Nuke build.

- Keep MinVer centrally versioned and reference it privately from Directory.Build.props.

CI:

- Remove dotnet/nbgv from BuildOnly.

- Rework BuildDeploy into a manual unsigned MinVer release flow with unsigned package artifacts, OIDC NuGet publishing, and GitHub release creation.

Validation:

- dotnet restore Extensions.Hosting.slnx

- dotnet pack Extensions.Hosting.SingleInstance generated 3.2.0-alpha.0.218

- dotnet build Extensions.Hosting.slnx -c Release -warnaserror --no-restore /m:1

- dotnet build ..\\build\\_build.csproj -c Release --no-restore

- dotnet test --solution Extensions.Hosting.slnx -c Release --coverage --coverage-output-format cobertura --results-directory .\\TestResults -- --output Detailed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant