On Fri, Jun 11, 2021 at 2:19 AM Robert Sandell <[email protected]> wrote: > > Some historical context to know where we "old timers" are coming from :) > https://kohsuke.org/2012/03/03/potd-package-renamed-asm/
Thanks for providing this context, Robert! I have a tremendous amount of respect for all the old-timers in this project. Thanks for having the patience to explain this to a newcomer like me. I dug up the original post [1] where Kohsuke laid out his complaints about ASM. All these complaints seem completely legitimate in the context of ASM 3 in 2010, which definitely seems like it broke compatibility with ASM 2. I know these scars run deep, but I think we should re-examine things in 2021. As of commit 6a0e7842de436225f3866d3567834c6285107114 in ASM 5.2, ASM added signature tests to avoid breaking backward binary compatibility with any version >= 4.0. These signature tests are still present in "src/test/resources" on the latest version of ASM. So ASM appears to take compatibility seriously these days. We shouldn't be as nervous about compatibility between ASM 5 and ASM 9 in 2021 as we were about compatibility between ASM 2 and ASM 3 in 2010. Things have changed in the intervening decade. > That's why me and James and others are very very wary of bumping the asm > dependencies, I think even more wary than for Guava, because there isn't > enough code coverage due to how the classpath is during unit testing. Again, I know these scars run deep, but allow me to reiterate that core has _already_ bumped ASM to latest in December 2020, in my opinion unintentionally, as a result of bumping JNR to latest. I didn't review that change, but I am not casting aspersions on those who reviewed and merged it either. It is a particularly easy mistake to make. But the fact is, I think we are unlikely to roll it back now. So whether we like it or not, ASM 9 as a core dependency seems like it is here to stay. And since it is here to stay, and since compatibility is taken seriously in recent versions of ASM, I think it is OK for plugins to use the version from core by excluding the ASM dependency. Basil [1] https://web.archive.org/web/20120701173200/http://weblogs.java.net/blog/kohsuke/archive/2010/02/12/asm-incompatible-changes [2] https://gitlab.ow2.org/asm/asm/-/commit/6a0e7842de436225f3866d3567834c6285107114 -- 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/CAFwNDjpBuUqLfb7McWCZ6Ue2eMCGDj2vff9atO0_94VLykXCeQ%40mail.gmail.com.
