Files
coverlet/Documentation/ReleasePlan.md
T
Marco Rossignoli 64aefa2da7 Bump versions (#1035)
Bump versions after release
2021-01-09 18:37:31 +01:00

5.8 KiB
Raw Blame History

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:

  1. If we add features to coverlet.core.dll we bump MINOR version of all packages.
  2. If we do breaking changes on coverlet.core.dll we bump MAJOR version of all packages.
  3. 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

  1. Update projects version in file version.json in 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.

  1. 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 -5 from repo root to verify last commit.

  2. 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'.
  1. 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"
  1. Upload *.nupkg files to Nuget.org site. Check all metadata(url links, deterministic build etc...) before "Submit"

  2. On your fork: