Bump versions after release
5.8 KiB
Release Plan
Versioning strategy
Coverlet is versioned with Semantic Versioning 2.0.0 that states:
Given a version number MAJOR.MINOR.PATCH, increment the:
MAJOR version when you make incompatible API changes,
MINOR version when you add functionality in a backwards-compatible manner, and
PATCH version when you make backwards-compatible bug fixes.
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
Release Calendar
We release 3 components as NuGet packages:
coverlet.msbuild.nupkg coverlet.console.nupkg coverlet.collector.nupkg
We plan 1 release once per quarter if there is at least 1 new commit of source code on master. This release may be a major, minor, or patch version upgrade from the previous release depending on impact to consumers. We release intermediate packages in case of severe bug or to unblock users.
Current versions
| Package | Version |
|---|---|
| coverlet.msbuild | 3.0.0 |
| coverlet.console | 3.0.0 |
| coverlet.collector | 3.0.0 |
Proposed next versions
We bump version based on Semantic Versioning 2.0.0 spec:
- If we add features to coverlet.core.dll we bump MINOR version of all packages.
- If we do breaking changes on coverlet.core.dll we bump MAJOR version of all packages.
- We MANUALLY bump versions on production release, so we have different release plan between prod and nigntly packages.
| Release Date | coverlet.msbuild | coverlet.console | coverlet.collector | commit hash | notes |
|---|---|---|---|---|---|
| 09 January 2021 | 3.0.0 | 3.0.0 | 3.0.0 | 1e77f9d218 |
Align versions numbers |
| 30 May 2020 | 2.9.0 | 1.7.2 | 1.3.0 | 83a38d45b3 |
deterministic build support |
| 04 April 2020 | 2.8.1 | 1.7.1 | 1.2.1 | 3f81828821 |
|
| 03 January 2019 | 2.8.0 | 1.7.0 | 1.2.0 | 72a688f1c4 |
|
| 23 September 2019 | 2.7.0 | 1.6.0 | 1.1.0 | 4ca01eb239 |
|
| 01 July 2019 | 2.6.3 | 1.5.3 | 1.0.1 | e159335949 |
|
| 06 June 2019 | 2.6.2 | 1.5.2 | 1.0.0 | 3e7eac9df0 |
first collector release |
*< date > Expected next release date
To get the list of commits between two version use git command
git log --oneline hashbefore currenthash
How to manually release packages to nuget.org
This is the steps to release new packages to nuget.org
- Update projects version in file
version.jsonin root of repo (remove-preview.{height}and adjust version)
Update core lib project file version https://github.com/coverlet-coverage/coverlet/blob/master/src/coverlet.core/coverlet.core.csproj.
The version of core lib project file is the version we'll report on github repo releases https://github.com/coverlet-coverage/coverlet/releases
Do a PR and merge to master.
-
Clone repo, remember to build packages from master and not from your fork or metadata links will point to your forked repo. . Run
git log -5from repo root to verify last commit. -
From new cloned, aligned and versions updated repo root run pack command
dotnet pack -c release /p:TF_BUILD=true /p:PublicRelease=true
...
coverlet.console -> D:\git\coverlet\src\coverlet.console\bin\Release\netcoreapp2.2\coverlet.console.dll
coverlet.console -> D:\git\coverlet\src\coverlet.console\bin\Release\netcoreapp2.2\publish\
Successfully created package 'D:\git\coverlet\bin\Release\Packages\coverlet.msbuild.2.8.1.nupkg'.
Successfully created package 'D:\git\coverlet\bin\Release\Packages\coverlet.msbuild.2.8.1.snupkg'.
Successfully created package 'D:\git\coverlet\bin\Release\Packages\coverlet.console.1.7.1.nupkg'.
Successfully created package 'D:\git\coverlet\bin\Release\Packages\coverlet.console.1.7.1.snupkg'.
Successfully created package 'D:\git\coverlet\bin\Release\Packages\coverlet.collector.1.2.1.nupkg'.
Successfully created package 'D:\git\coverlet\bin\Release\Packages\coverlet.collector.1.2.1.snupkg'.
- Sign the packages using SignClient tool https://www.nuget.org/packages/SignClient
❯ SignClient "Sign" `
>> --baseDirectory "REPO ROOT DIRECTORY\bin" `
>> --input "**/*.nupkg" `
>> --config "ROOT REPO DIRECTORY\eng\signclient.json" `
>> --user "USER" `
>> --secret "SECRET" `
>> --name "Coverlet" `
>> --description "Coverlet" `
>> --descriptionUrl "https://github.com/coverlet-coverage/coverlet"
-
Upload *.nupkg files to Nuget.org site. Check all metadata(url links, deterministic build etc...) before "Submit"
-
On your fork:
- Align to master
- Bump version by one (fix part) and re-add
-preview.{height} - Create release on repo https://github.com/coverlet-coverage/coverlet/releases using https://github.com/coverlet-coverage/coverlet/blob/master/src/coverlet.core/coverlet.core.csproj assembly version
- Update the Release Plan(this document) and ChangeLog
- Do PR and merge