Revapi is another great tool; we use it in Log4j2 nowadays after a couple releases accidentally introduced minor binary compatibility issues (but source compatible) in the logging API.
On Tue, Dec 1, 2020 at 7:15 AM Ullrich Hafner <[email protected]> wrote: > > > Am 30.11.2020 um 22:51 schrieb Matt Sicker <[email protected]>: > > I think Jesse has articulated my own feelings fairly well here. I will > note that OSGi has some useful tooling [1] and semantics related to > semantic versioning, generic Java plugins/modules/components, and some > other well-explored areas related to compatibility which our own > plugin ClassLoader only scratches the surface of. > > [1]: https://bnd.bndtools.org/commands/baseline.html > https://bnd.bndtools.org/commands/diff.html > > > I’m using https://revapi.org/l in my plugins to detect incompatible API > changes before a release. It seems to work quite similar and has support for > Jenkins JPI files now. The included maven plugin warns me if I try to remove > a method that actually might be used by a depending plugin. > > On Mon, Nov 30, 2020 at 3:45 PM Jesse Glick <[email protected]> wrote: > > > I do not think switching to a 3.x version number accomplishes much of > anything (even if we had done so several weeks ago, when the big > changes were landing). I would much rather see Jenkins switch to > either a date-based scheme, or just some opaque incrementing number > like we have but without the meaningless `2.` prefix. Jenkins releases > break compatibility for someone, somehow, all the time; a number tells > you nothing about whether _you_ will be affected. We need to publish > clear, concise upgrade guides; encourage users to make backups or use > a config-as-code workflow; and of course try as hard as we can to not > break compatibility to begin with! In the case of JEP-227 & JEP-228 > there have already been extensive plugin fixes released and few users > should actually be affected. Tables-to-divs has apparently caused more > regressions, but these should all be fixable long before the LTS. > > In theory SemVer could be useful for libraries. In practice it seems > like a false promise to me. It is your tests which will tell you if an > upgrade is compatible, not some upstream maintainer’s fantasy. > Dependabot actually _keeps score_ and tells you whether a given update > broke CI for other people, which seems like far more valuable > information. > > -- > You received this message because you are subscribed to the Google Groups > "Jenkins Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jenkinsci-dev/CANfRfr0JZtW1x17eeUSVQzfAJgck08jVnfZ0%3DN4reZZ7RYx6fA%40mail.gmail.com. > > > > > -- > Matt Sicker > Senior Software Engineer, CloudBees > > -- > You received this message because you are subscribed to the Google Groups > "Jenkins Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jenkinsci-dev/CAEot4oz-kiQLAUrU3RQYr3en%2B%3DCAKsA1wOpwpHbkGk04sCq3tA%40mail.gmail.com. > > > -- > You received this message because you are subscribed to the Google Groups > "Jenkins Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jenkinsci-dev/96F88098-40ED-4002-869B-2842D5E26746%40gmail.com. -- Matt Sicker Senior Software Engineer, CloudBees -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CAEot4oztA9bv%3DUfXibXcZr-zCEjMWEC6FuutdCWSa3gABfo%2BdA%40mail.gmail.com.
