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.

Reply via email to