3 ms·
My biggest pain with Go modules has been the fact that projects use 0ver [0] and some are backwards compatible updates and others aren’t. But it was designed in
by fsociety 5y ago
My biggest pain with Go modules has been the fact that projects use 0ver [0] and some are backwards compatible updates and others aren’t. But it was designed in a way to force everyone to use semver.
It gets worse if you have a mono-repo because OSS projects may depend on a module which depends on a module which uses 0ver but minor versions are backwards incompatible. This means that dependency conflicts become a nasty situation.
Then you get into opinion-based world where: - everyone should just use semver properly. - everyone shouldn’t use v0 for production. Or variations on this where some are production-ready and others aren’t. - everyone should use v0 and only have backwards compatible updates. Then fork if you have an backwards incompatible update.
Feels like everyone loses with how this works today.
[0] https://0ver.org https://0ver.org