[Biojava-dev] Renaming BioJava3 packages & modules

Jose Manuel Duarte jose.duarte at psi.ch
Mon Oct 13 15:35:16 UTC 2014


> 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.

Alright, that is indeed a problem. So it means that for the new release 
we can't reuse any namespace ever used before.

>
> 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.

Instead of keeping a 3 or a 4, how about we use a new namespace, not 
used before and that doesn't refer to the release number?

If I understand it correctly, legacy was using:

org.biojava.bio.* and org.biojava.*

then Biojava 3 was using:

org.biojava3.* and org.biojava.bio.* (only in the structure module)

So there's not much left, but we could be creative for Biojava 4 and 
successors, some possibilities:

org.biojava.plus
org.biojava.obf
org.biojava.open
org.open-bio.biojava
org.obf.biojava
org.nbiojava
org.biojava.next
org.biojavaplus
org.biojava.bj


Or of course stay with the status quo and keep the 3 forever. I'm happy 
to compromise there, but surely one issue would have to be solved if 
taking that route: the structure module packages org.biojava.bio.* 
should be renamed to org.biojava3.* to be consistent. Also the tutorial 
would still need to be fixed in order not to mention Biojava 3, while 
explaining why the packages have the "3" in the name anyway.

Jose



More information about the biojava-dev mailing list