3 ms·
I think what the author was trying to figure out was not just when you should do a major/minor version update, but how that could be done automatically. An exam
by 0xCMP 10y ago
I think what the author was trying to figure out was not just when you should do a major/minor version update, but how that could be done automatically. An example is how in Elm it can detect a major vs minor change and bump your numbers automatically when you publish. Something like that for Go could be built into some tool to help package maintainers (public + private) keep SemVar up to date automatically since there are already types and there are ways to possibly detect changes since a previous version.
I imagine you could write a tool that would check the previous highest "v*" tag in git's version of the project vs now using something like go-guru and determine if any public interfaces were changed and that could automatically determine if it's a major or minor bump.
- Merovius 10y agoYou are interpreting me correctly :) Indeed, the article was written when I started writing that tool and quickly figured out that it was impossible to do satisfactory. I'm a mathematician, so the only satisfactory solution to me would be one that is "clearly correct". As soon as you need to first get agreement about the definition you are using, you are probably not designing a clean and beautiful thing :)
- jalfresi 10y agoMaybe such a tool would still have some utility; I would appreciate a tool that could generate a change log between versions automatically...
- 0xCMP 10y agoYea I've had this discussion with a friend of mine who likes Haskell and got me in to Elm. He claimed you could only get that kind of tool in something like those languages which have stricter and stronger type systems. I'm not familiar with the details, but it looks like you ran in to that problem too.