Skip to content

Commit c0e3f9a

Browse files
committed
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 <[email protected]>
1 parent 77d5a37 commit c0e3f9a

File tree

2 files changed

+31
-7
lines changed

2 files changed

+31
-7
lines changed

RELEASING.md

+16-3
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,28 @@ acts as encouragement to use the latest version of the core package.
4141

4242
Within this repository, this is achieved by the following mechanisms:
4343

44-
- Individual csproj files do not specify a version
44+
- Most individual csproj files do not specify a version
4545
- The [Directory.Build.props](src/Directory.Build.props) file has a `<Version>` element
46-
specifying the version of all packages
46+
specifying the version of all packages which don't need a separate
47+
major version
4748

48-
A single GitHub release (and tag) will be created for each beta release, to cover all packages.
49+
A single GitHub release (and tag) will be created for each release,
50+
to cover all packages.
4951

5052
- Example tag name: "CloudNative.CloudEvents.All-2.0.0"
5153
- Example release title: "All packages version 2.0.0"
5254

55+
### Exception: packages with different major versions
56+
57+
For some "satellite" packages, we need a different major version
58+
number, typically to adopt a new major version of a dependency. In
59+
this case, the satellite package will have its own major version,
60+
but keep the minor and patch version of everything else.
61+
62+
For example, in order to take a new major version of the `MQTTnet`
63+
dependency, `CloudNative.CloudEvents.Mqtt` 3.8.0 was released with
64+
version 2.8.0 of all other packages.
65+
5366
## New / unstable package versioning
5467

5568
New packages are introduced with alpha and beta versions as would

src/Directory.Build.props

+15-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,22 @@
11
<Project>
22
<PropertyGroup>
33
<!--
4-
- We use the same version number for all stable
5-
- packages. See RELEASING.md for details.
4+
- We use the same minor/patch version number for all stable
5+
- packages, and the same major for most packages.
6+
- See RELEASING.md for details.
67
-->
7-
<Version>2.7.1</Version>
8-
<PackageValidationBaselineVersion>2.7.0</PackageValidationBaselineVersion>
8+
<MajorVersion>2</MajorVersion>
9+
<MinorVersion>7</MinorVersion>
10+
<PatchVersion>1</PatchVersion>
11+
<PackageValidationMinor>7</PackageValidationMinor>
12+
<Version>$(MajorVersion).$(MinorVersion).$(PatchVersion)</Version>
13+
<!--
14+
- The version used for detecting breaking changes.
15+
- This is always older than the current version (except when creating a new major)
16+
- and is the patch-0 of either the current minor (if the current patch is non-zero)
17+
- or the previous minor (if the current patch is zero).
18+
-->
19+
<PackageValidationBaselineVersion>2.$(PackageValidationMinor).0</PackageValidationBaselineVersion>
920

1021
<!-- Make the repository root available for other properties -->
1122
<RepoRoot>$([System.IO.Path]::GetDirectoryName($([MSBuild]::GetPathOfFileAbove('.gitignore', '$(MSBuildThisFileDirectory)'))))</RepoRoot>

0 commit comments

Comments
 (0)