[Biojava-dev] Renaming BioJava3 packages & modules

Michael Heuer heuermh at gmail.com
Fri Oct 10 16:35:58 UTC 2014


Jose Manuel Duarte wrote:
> I will stay defending simplicity and advocate for removing the 3. This of
> course means some pain now. But it will also mean a pain-free future.

No, the pain is actually in the future.

Consider:

Project a has a dependency on biojava-legacy version 1.9.1, package
names org.biojava.*
Project b has a dependency on biojava3 version 3.1, package name also
org.biojava3.*
Project c has a dependency on projects a and b

Project b updates their dependency on biojava3 to version 4.0, which
doesn't necessarily mean a binary incompatible change for project b,
but it means the transitive biojava3 packages are now org.biojava.*,
same as biojava-legacy

Project c now runs into RuntimeExceptions because some biojava3
version 4.0 class clobbers a biojava-legacy version 1.9.1 class.


Commons Math and Commons Collections are other projects that have had
to deal with this

http://commons.apache.org/proper/commons-math/
http://commons.apache.org/proper/commons-collections/

Rather than move from package names org.biojava3 --> org.biojava
perhaps we should consider going from org.biojava3 --> org.biojava4.

   michael


More information about the biojava-dev mailing list