+1 to this argunentation. We should reduce the dependency surface as much as 
possible. 

Am 4. November 2024 09:27:24 MEZ schrieb Emmanuel Bourg <ebo...@apache.org>:
>Le 02/11/2024 à 13:19, Gilles Sadowski a écrit :
>
>> My question was and still is:  Can modularization help?
>
>Modularization is very much needed for Commons Compress, I think we should at 
>least split the compression part from the archive part, and then further split 
>by file format (commons-compression-* and commons-archive-*).
>
>This would greatly improve the situation with the optional dependencies. Let's 
>say I want to extract xz files, I would simply declare a dependency on 
>commons-compression-xz in my pom.xml, which would pull the org.tukaani:xz 
>dependency transitively, instead of having to declare two dependencies on 
>commons-compress and org.tukaani:xz.
>
>Unfortunately modularization will hardly help with the dependencies on 
>commons-codec, commons-lang and commons-io, because as of commons-compress 
>1.26 they are used almost everywhere in the code. Only commons-codec is 
>restricted to a couple of formats (LZ4 and Snappy), but commons-io is now part 
>of the core *public* API [1], which is really bad because we can no longer 
>remove the dependency without breaking the binary compatibility (and I think 
>we should do it as soon as possible before this new public method gets widely 
>used).
>
>Emmanuel Bourg
>
>[1] 
>https://github.com/apache/commons-compress/blob/863be804/src/main/java/org/apache/commons/compress/archivers/ArchiveInputStream.java#L224
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>For additional commands, e-mail: dev-h...@commons.apache.org
>

Reply via email to