3 ms·
To add some perspective, log4j has gone for 20 years with only two major versions. Assuming that they are following semantic versioning, that means they added n
by boricj 5y ago
To add some perspective, log4j has gone for 20 years with only two major versions. Assuming that they are following semantic versioning, that means they added new features/fixes in a backwards-compatible way and only broke compatibility _once_ in over two decades. That's both a testament to the stability of the library over time and a reminder that all the cruft accumulated over the years at most gets gated off through saner defaults.
- shaldengeki 5y agoThis assumption isn't true, though. APIs routinely get changed in minor versions, which can make it non-trivial to upgrade large codebases that use lots of features.
- fouc 5y agoIf breaking changes on an API are made in minor versions then they're not actually following semantic versioning.. and that's by choice.
- shawnz 5y agoYes, they never claimed to be using semantic versioning so the assumption that they were using it is wrong.
- Aperocky 5y ago> use lots of features. That's the problem, you use log4j to log. Any 'feature' outside of that being used is wrong. Any 'feature' outside of that being implemented, is wrong. If JNDI string interpolation is desired, write another module that does that. I hate 'is-odd' but this is another extreme and demonstratably worse.
- WJW 5y agoSemantic versioning itself is substantially younger than 20 years.
- seba_dos1 5y agoSemantic versioning and similar variations have been used long before that term has been coined.
- ec109685 5y agoThey put themselves between a rock and a hard place burning the major version number into the name of the library. Changing the major version number as long it's accompanied by a well written release note on what needs to change seems fine.