netbox-community / go-netbox

The official Go API client for Netbox IPAM and DCIM service.
Other
195 stars 146 forks source link

Versioning proposal #68

Closed mraerino closed 1 year ago

mraerino commented 4 years ago

Currently we are not tagging this library in a way that is compatible with what go mod suggests. It would be good to use semver.

If we want to include the netbox version in the release tag, we could use the condensed form, like 27 for 2.7, because api breakage happens on minor, not patch versions

Proposal 1: break in 0.x

This would mean we'd have versions like 0.27.1 for the second patch release supporting netbox 2.7.

Proposal 2: breaking per go spec

This would mean people needed to use the library in this way: github.com/netbox-community/go-netbox/v27


In both cases it would still be possible to version changes in the library via increasing the patch number. But any breaking changes would need to be synchronized with netbox releases.

smutel commented 4 years ago

We definitively need a real versioning on this project. +1 for the proposal 2 but not with sub-folders but with branches and tags For example: branch v27.x.x, v28.x.x and tags v27.1.0, v28.1.1, etc ...

kobayashi commented 4 years ago

Thanks @mraerino, I agree option2!

jeremy-albinet commented 3 years ago

:+1: for @smutel proposal that I tried to reword as:

Proposal 3: Use netbox version for major and minor

Note: I'm in favor of 2.9.x instead of 29.x.x because I think we don't need minors, we are only doing patches to fix swagger original json no? But we can keep this proposal and use 29.x.x for tags and branches to have minor and patch releases.

Comradin commented 2 years ago

What is the stand here? We successfully shot ourself in the feet with the broken version.

v0ctor commented 1 year ago

The project now follows Semantic Versioning standard so as not to reinvent the wheel. 🤓