Hi Gilles,

On 16.11.2024 16:11, Gilles Sadowski wrote:
Both sides have something in their favour; you are right in
the short term, Gary is right in the longer term. [IMO]
Wouldn't the project benefit from a common policy on how
to deal with such issues (rather than be divisive, once more)?

[I'd go even further that, by not delving into the crux (no policy)
of this kind of issues, we create "opportunities" for infighting,
based on who is more legitimate (so-called "meritocratic") to
make changes or revert them.  In that respect, both sides
have again something in their favour.]

I've proposed (and have done so more than twice in the past)
to examine a way out (i.e. define an official hierarchy among
the "Commons" components), but you both have ignored it.

I have also proposed a compromise in PR #607[1]. A simple shading operation does not seem to be viable, because classes such as `SystemProperties` are not self-contained and depend on dozens of other Commons Lang classes, so I introduced a new `o.a.c.c.internal.lang3` package that:

* Clearly states that those functions are available in Commons Lang and proposes a limit on the amount of code we can copy (1%). Currently we need about 4 kB of uncompressed bytecode from Commons Lang out of 1.2 MB of bytecode available.

* Proposes some workaround if the amount of copied code becomes higher than 1%. I think that shading is a viable option up to 10% of the size of Commons Lang: up to 10 dependencies can shade up to 10% and we still save up some space on disk. Of course shading is terrible from a security perspective (at least until CycloneDX/cyclonedx-maven-plugin#472 is solved), but it is still better than copying a large number of lines of code.

Piotr

[1] https://github.com/apache/commons-compress/pull/607

[2] https://github.com/CycloneDX/cyclonedx-maven-plugin/issues/472

Reply via email to