Update changelog
5.1 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 | coverlet.msbuild |
|---|---|
| coverlet.msbuild | 2.9.0 |
| coverlet.console | 1.7.2 |
| coverlet.collector | 1.3.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 |
|---|---|---|---|---|---|
| <1 Jul 2020> | 3.0.0 | 3.0.0 | 3.0.0 | Align versions | |
| 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 do to release new packages to Nuget.org
- Update project versions in file(remove
-preview.{height}and adjust versions):
Collector
https://github.com/tonerdo/coverlet/blob/master/src/coverlet.collector/version.json
.NET tool
https://github.com/tonerdo/coverlet/blob/master/src/coverlet.console/version.json
Msbuild tasks
https://github.com/tonerdo/coverlet/blob/master/src/coverlet.msbuild.tasks/version.json
Core lib project file https://github.com/tonerdo/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/tonerdo/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.
Rungit 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'.
-
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/tonerdo/coverlet/releases using https://github.com/tonerdo/coverlet/blob/master/src/coverlet.core/coverlet.core.csproj assembly version
- Update the Release Plan(this document) and ChangeLog