Prepare for a separate major version of CloudNative.CloudEvents.Mqtt

This more fine-grained way of referring to the versions will allow us to still only change Directory.Build.props just before a release, but have separate major versions flow from that.

Signed-off-by: Jon Skeet <jonskeet@google.com>
This commit is contained in:
Jon Skeet 2024-07-30 11:09:38 +01:00 committed by Jon Skeet
parent 77d5a37c33
commit c0e3f9ac19
2 changed files with 31 additions and 7 deletions

View File

@ -41,15 +41,28 @@ acts as encouragement to use the latest version of the core package.
Within this repository, this is achieved by the following mechanisms:
- Individual csproj files do not specify a version
- Most individual csproj files do not specify a version
- The [Directory.Build.props](src/Directory.Build.props) file has a `<Version>` element
specifying the version of all packages
specifying the version of all packages which don't need a separate
major version
A single GitHub release (and tag) will be created for each beta release, to cover all packages.
A single GitHub release (and tag) will be created for each release,
to cover all packages.
- Example tag name: "CloudNative.CloudEvents.All-2.0.0"
- Example release title: "All packages version 2.0.0"
### Exception: packages with different major versions
For some "satellite" packages, we need a different major version
number, typically to adopt a new major version of a dependency. In
this case, the satellite package will have its own major version,
but keep the minor and patch version of everything else.
For example, in order to take a new major version of the `MQTTnet`
dependency, `CloudNative.CloudEvents.Mqtt` 3.8.0 was released with
version 2.8.0 of all other packages.
## New / unstable package versioning
New packages are introduced with alpha and beta versions as would

View File

@ -1,11 +1,22 @@
<Project>
<PropertyGroup>
<!--
- We use the same version number for all stable
- packages. See RELEASING.md for details.
- We use the same minor/patch version number for all stable
- packages, and the same major for most packages.
- See RELEASING.md for details.
-->
<Version>2.7.1</Version>
<PackageValidationBaselineVersion>2.7.0</PackageValidationBaselineVersion>
<MajorVersion>2</MajorVersion>
<MinorVersion>7</MinorVersion>
<PatchVersion>1</PatchVersion>
<PackageValidationMinor>7</PackageValidationMinor>
<Version>$(MajorVersion).$(MinorVersion).$(PatchVersion)</Version>
<!--
- The version used for detecting breaking changes.
- This is always older than the current version (except when creating a new major)
- and is the patch-0 of either the current minor (if the current patch is non-zero)
- or the previous minor (if the current patch is zero).
-->
<PackageValidationBaselineVersion>2.$(PackageValidationMinor).0</PackageValidationBaselineVersion>
<!-- Make the repository root available for other properties -->
<RepoRoot>$([System.IO.Path]::GetDirectoryName($([MSBuild]::GetPathOfFileAbove('.gitignore', '$(MSBuildThisFileDirectory)'))))</RepoRoot>