Proposal: Shared Major.Minor versioning across all packages #4352
paulmedynski
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
We are proposing that all packages produced from this repository share a single Major.Minor version, with each package retaining an independent Patch version for servicing releases. This alignment would take effect at 8.0.0.
Current State
Today each package is versioned independently, for example:
While SqlClient and the AKV provider already share a major.minor, the remaining packages are at 1.x with no inherent compatibility signal tying them together.
Proposed Model
Starting at 8.0.0, all packages would share the same Major.Minor. Each package independently increments its patch version when servicing is needed.
For example, after the initial 8.0.0 release:
8.0.18.0.08.0.1(its own independent patch)At the next feature release, all packages move to
8.1.0together.A breaking change in any package triggers the next major for all packages.
Motivation
8.0.xof any package is compatible with any other8.0.x. No compatibility matrix needed.Microsoft.Extensions.*all share major.minor and ship together at each wave).What Changes
Versions.propsderives its version from the shared property plus its own patch counter.SNI Packages
The native SNI packages (
Microsoft.Data.SqlClient.SNIandMicrosoft.Data.SqlClient.SNI.runtime) are worth discussing separately:Arguments for including SNI in the band:
Arguments for keeping SNI independent:
Our inclination: Include SNI in the band, which keeps versions consistent and compatiblity obvious.
Impact on Consumers
Feedback Welcome
We'd like community input on this change before proceeding. Please share your thoughts, concerns, or questions below.
Beta Was this translation helpful? Give feedback.
All reactions