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.

Reply via email to