On Wed, Feb 21, 2018 at 10:17 PM Peter Bourgon <pe...@bourgon.org> wrote:

> ·Any· change to the exported API of a package except adding new
> top-level identifiers can be considered an incompatible (breaking)
> change.
>
> https://blog.merovius.de/2015/07/29/backwards-compatibility-in-go.html


I should probably go on record that I acknowledge that post to be
potentially unreasonably nitpicky :)

FWIW, I *believe* that if you only ever release v1.x.x you'll end up at
essentially the same space as today, whether you actually end up adding
breaking changes or not. Unless vgo somehow tracks API changes and verifies
that your versioning is semantic, which I can't imagine working (which was
my point then, basically). Of course this makes semantic versions largely
useless, which was my other point then.

There is one significant difference, which is that people are currently
automatically held back, whereas previously they where automatically
updated, so it's somewhat more likely that people will sleep through
necessary API changes and then break the build at an unpredictable point in
the future.

Personally, that is (with the information currently published) what I
intend to do, most likely: Tag all my stuff at v1.x.x (or maybe not tag at
all, for a "pin on first use" kinda policy) and just be careful in if and
how I break stuff.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to