Closed AlekSi closed 6 years ago
Liner uses traditional Go-style versioning. Go-style versioning is isomorphic to semver. The major version is the import path ("github.com/peterh/liner" in this case) and each push to master is a minor or patch version (the difference is unimportant from a backwards compatibility point of view).
After go 1.11 is out, I would consider a pull request that adds module support to liner.
See also #72
Sure, but versions are still useful: https://research.swtch.com/vgo-why-versions. And, strictly speaking, you did make a few breaking changes before (like b599ca255905f4e6b6b197d4cfe00e3bfbbe3f30), so import path is not a major version for liner (but practically it is good enough). SemVer tag will make reasoning about versions easier: "v0.1.1
works for me, but v0.1.2
broke that and that" instead of "deadcafec0ded00d
works for me, but deadbabe8badf00d
broke that and that".
Take another look at b599ca255905f4e6b6b197d4cfe00e3bfbbe3f30. That commit is an example of why SemVer is not as good as many people think it is. It is not an argument for SemVer.
b599ca255905f4e6b6b197d4cfe00e3bfbbe3f30 did not make any breaking changes. The breaking change was actually a bug two years prior. If you manage to find anybody still running go1.0 in production, I will consider fixing the bug. But the bug was not introduced in b599ca255905f4e6b6b197d4cfe00e3bfbbe3f30. (And, yes, it's a bug that liner no longer works on go1.0, but I consider it WONTFIX because it's far more effort to keep go1.0 working than it is worth).
With all that said, now that go1.11 is out, we'll be adding module support (including at least one tag) soon.
See also #110.
Tags added.
SemVer tags would make dependency management easier.