-
Notifications
You must be signed in to change notification settings - Fork 257
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP: Improve versioning #369
Conversation
Microsoft published some new guidance on library versioning at https://docs.microsoft.com/en-us/dotnet/standard/library-guidance/versioning. This confirms what @ericnewton76 proposed in #343:
So I'll gladly change my opinion here and adapt the config so that AssemblyVersion is MAJOR.0.0.0. |
@jpreese @rkoeninger @ericnewton76 I'd consider this ready for review now. (Sorry for the super-messy history, I'll clean it up before merging 🤣 ) |
Looks great. This will go a long ways towards better package handling and less issues with inclusion of additional libraries that might base themselves on System.IO.Abstractions and inclusion into your application product that uses System.IO.Abstractions. I was always hoping Microsoft would officially make the interfaces part of the BCL but maybe sometime in the future... The Net Foundation did adopt NUnit, so maybe SIOA will get some attention at some point. |
LGTM |
OK, here we go - let's see how this goes :) |
With the new versioning strategy introduced in #369 our `AssemblyVersion` consists of only the major version. With the current base version of 2.2 this will be produce 2.0.0.0. This number is less than the currently released 2.1.0.256 which will pretty sure cause downstream problems. This change bumps the base version to 3.0 so that we get 3.0.0.0.
The goal of this PR us to decouple versioning from the CI system.
It uses
Nerdbank.GitVersioning
to automatically generate a version number by combining a base version set in a config file with the number if commits since the last change to the base version file.That makes version numbers predictable and reproducible.
I’ll also provide a document that describes how a release would work if we decide to follow this path.
Happy to get feedback on this!