fsprojects / syntacticversioning Goto Github PK
View Code? Open in Web Editor NEWHelper tool to verify semantic version changes based on API surface area changes
License: Other
Helper tool to verify semantic version changes based on API surface area changes
License: Other
I accidentally uploaded two NuGet packages while pushing to NuGet. The question is if NuGet will remove the 1.0.0 version or if we should start with version 1.0.0 ?
Is the order of enum members a part of an API? For instance if you have something like:
type Enum = | Foo = 0 | Bar = 2 | Qux = 5 | Baz = 3
that get changed to
type Enum = | Foo = 0 | Bar = 2 | Baz = 3 | Qux = 5
Is that considered a change?
While for instance this change:
type Enum = | Baz = 3 | Foo = 0 | Bar = 2 | Qux = 5
that get changed to
type Enum = | Foo = 0 | Bar = 2 | Baz = 3 | Qux = 5
would change the meaning of
T temp = default(T);
The more the merrier!
First off, this tool is great and I have used it several times to solve problems related to API surface area.
I think usability-wise it would be excellent if the current binary was also packaged/shipped as a dotnet sdk global/local tool, so that users could do something like
dotnet tool install synver -g
synver bump .
// or
synver diff dllA dllB --format json
etc. This would also allow for users adding the tool to their tool manifest so it's restored alongside other packages.
I'd be willing to do this work if you like the suggestion, but it might be a bit because I'm prepping for OpenF# at the moment.
Or perhaps https://www.nuget.org/packages/ICSharpCode.Decompiler
Start of process '/c/Program Files/dotnet/dotnet' failed
Port the following script to albacore ( and make sure that it's possible with SyntacticVersioning ):
https://github.com/wallymathieu/SemVer.FromAssembly#together-with-albacore-and-rake
https://github.com/wallymathieu/Cake.SemVer.FromAssembly
Copy paste the code and change it to Cake.SynVer.
When you add an interface is possibly a minor change. While removing an interface is probably a major change.
We will take a dependency on chiron
internal
.Is it possible to use the library with .NET Core? Thanks!
How should that be detected?
I'd like to be able to use a previously published nuget package instead of having a dll locally. We could solve this one a few ways.
Download the nuget package outside the tool on to your local machine
Port the following script:
https://github.com/wallymathieu/SemVer.FromAssembly/blob/master/SemVer.FromAssembly.FAKE.fsx
The parts that need to be ported are the following:
let bumpVersion magnitude (version:SemVerInfo)=
match magnitude with
| Magnitude.Major -> { version with Major=version.Major+1; Minor=0; Patch=0 }
| Magnitude.Minor -> { version with Minor=version.Minor+1; Patch=0 }
| Magnitude.Patch -> { version with Patch=version.Patch+1 }
| m -> failwithf "Unknown magnitude %s" (m.ToString())
let getMagnitude original new_=
let maybeMagnitude = SemVer.getMagnitude original new_
match maybeMagnitude with
| Result.Ok m -> m
| Result.Error err->
failwithf "Error: %s" err
Fake.SemVerHelper
in order to have a dependency on Fake
The code from:
https://github.com/wallymathieu/SemVer.FromAssembly/compare/syntactic_versioning?expand=1
can probably form a basis for a standalone tool
Integrate the NuGet bump and diff code from @gentauro SpiseMisu.SemanticVersioning into SyntacticVersioning
Should provide similar API as SpiseMisu.SemanticVersioning
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.