Giter Site home page Giter Site logo

fsprojects / syntacticversioning Goto Github PK

View Code? Open in Web Editor NEW
46.0 8.0 8.0 257 KB

Helper tool to verify semantic version changes based on API surface area changes

License: Other

Batchfile 0.17% F# 94.17% Shell 0.58% C# 4.16% Ruby 0.92%
fsharp semantic-versioning syntactic-versioning

syntacticversioning's People

Contributors

baronfel avatar dependabot[bot] avatar tomakita avatar wallymathieu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

syntacticversioning's Issues

Version 0.0.1 or 1.0.0 ?

Description

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 ?

Order of enum members

Description

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);

consider distributing as a dotnet-cli global tool

Description

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.

Fix build on Windows

  • Issues building on Appveyor: Start of process '/c/Program Files/dotnet/dotnet' failed
  • Issues building on Windows 10 cmd prompt: Could not find executable which ...

Inheriting from interfaces

Description

When you add an interface is possibly a minor change. While removing an interface is probably a major change.

Dependency on chiron

Description

We will take a dependency on chiron

Goals

  • Be able to serialise an assembly surface area to some simple format
  • Have chiron (or other simple tool) as a file reference and that module should be internal.
  • Be able to diff an assembly and serialised in some simple format

Allow source to be a nuget package

Description

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.

  • specifying the nuget url
  • another switch type with just a name of a package and version

Known workarounds

Download the nuget package outside the tool on to your local machine

Related information

  • Operating system
  • Branch
  • .NET Runtime, CoreCLR or Mono Version
  • Performance information, links to performance testing scripts

Port fake script to SyntacticVersioning

Description

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

Expected behavior

  • There might be a need for a new sub library that depends on the Fake.SemVerHelper in order to have a dependency on Fake
  • A script similar to the above should be possible

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.