4 ms·
In theory it should be possible for a package manager to check the public API for obvious breaking changes and throw an error if the major version has not chang
by papaf 6y ago
In theory it should be possible for a package manager to check the public API for obvious breaking changes and throw an error if the major version has not changed.
Its been done as a research project [1] but I don't think it has been done in any major language or package manager.
[1] https://drops.dagstuhl.de/opus/volltexte/2018/8456/pdf/OASIcs-ICLP-2017-6.pdf https://drops.dagstuhl.de/opus/volltexte/2018/8456/pdf/OASIc...
- erikw 6y agoElm enforces this since 2014 at the package manager level. They are able to do this because since the language is pure, the compiler knows if a function's signature has changed. If you are changing implementation details that don't affect data transformation, then that would just be a dot release. I haven't actually published an Elm package, but from what I've read this seems like a great setup.
- rabidrat 6y agoFunction signature is only half the battle. The semantics can change without the signature changing. This could be caught by a unit/functional test, but then you'd have to have 100% semantic interface coverage. Which is not quite worth it for most libraries/packages.
- Ar-Curunir 6y ago`rust` has `semverver`, but it doesn't always compile