2.7 will require Java 8 which means we can use a d...
# squarelibraries
j
2.7 will require Java 8 which means we can use a default method on converters to handle this case
d
As an aside, this is interesting to me—I would have thought adding a Java 8 requirement would be considered a breaking change and thus a major version bump. Why is it not?
j
It doesn't affect the APIs. It's a tooling requirement change.
d
Well yes. But in the sense of “Updating my Java 7 app from 2.6 to 2.7 causes compilation to fail” that tooling requirement change is breaking. I’m pretty new to library development, so I’m curious if it is community consensus, a Square rule, or something/someone else that decides a tooling requirement doesn’t count as breaking in this context. And is the line drawn between any tooling change vs. any API change, or only when it’s a particularly simple tooling change?
j
It's all subjective. Semver is mostly something we tell ourselves to sleep at night. All versions are breaking changes insofar as you might rely on behavior that is ultimately determined to be a bug.
👍 1
In reality the world has moved on to Java 8 or newer except Android's stupid toolchain