I think it would be great if go-micro could start tagging releases with semantic versioning. Thoughts?
That would also require tests and more CI in order to validate that the code has no regressions. Is the code at that point ?
Probably want to get more thoughts on this before doing anything. Can understand the need for semantic versioning from an org perspective. Personally I find the way in which go-micro is developed, its not very useful. We ensure backwards compatibility and try to avoid breaking API changes. I'm also more geared towards timestamp based versioning but again it's going to come back to when we need versioning, why we need it, who it benefits and when it's actually appropriate.
Versioning helps with dependency management on my side. It can also help with compatibility with other dependencies. Version 1.0.5 is compatible with version 0.8.1 of consul and so on.
Also, without sifting through hundreds of lines of diffs, how do I know the difference between 9e1550d and 4d4db84?
Versions with release notes are a user friendly means to relate to the end user (developers) what has changed between versions. It also reduces the burden on the end user to keep updating every time there is a new commit.
"Looks like I'm 5 commits behind. What's in it? I dunno. Anything breaking? I dunno. Let's try to update. Oops it broke the build."
I understand your philosophy is to not introduce breaking changes but that only works until it doesn't. Case and point, the new PR that you accepted is a breaking change. If you're using the wrong version of hashicorp/consul, that PR _will break_ your build. So you would bump the major version.
Valid points. I'll take them into consideration.
Having given this much thought, while I understand the value of semantic versioning and believe it will be something incorporated at a later date, I don't think I will start tagging releases as of yet. Please note, I value the opinions put forward and this is definitely something that will happen but just not yet.
I'm sorry you came to this decision.
The work around is for me to either
Both are not very user friendly. 馃槩
Just to ping those interested in this thread without reopening. We'll be kicking off versioning this week starting with 0.1.0 for micro, go-micro and go-plugins. We'll also likely be using Glide for dependency management.
Most helpful comment
Just to ping those interested in this thread without reopening. We'll be kicking off versioning this week starting with 0.1.0 for micro, go-micro and go-plugins. We'll also likely be using Glide for dependency management.