[Biojava-dev] next steps
Scooter Willis
HWillis at scripps.edu
Thu May 28 17:57:27 UTC 2009
Andreas
I think each jar probably needs its own svn trunk. This is how apache commons is setup. The advantage of this is that everything is modularized with nice defined boundaries on dependencies. If you have once source tree that builds multiple jars then it becomes very easy to grab a class from another jar and forcing additional dependencies.
You also don't need to worry about a single user having access to the entire source tree. If you have a new developer who wants to get involved with a specific interest then easy to give him access to that package without worrying about breaking other packages.
Do you think we should call the functional grouping packages or modules or something else?
If you take a wack at the refactoring based on X number of modules then you could check each one in a different subversion trunk. Each module will probably have a dependency on biojava-core which will also be a separate subversion trunk. In Netbeans I would setup a project for each and then I can add the biojava-core project as an external project dependency. This also allows each module to be released independently and more frequently. We probably need to come up with a versioning convention that is part of the jar name. Not sure if any of the ant build tools automate the upticking of major/minor version number when packaging jars.
For the user of biojava they would download a single jar for the module of interest where the download contains all the external jars that are required including biojava-core. For maven that would be done via POM.
As part of the refactoring now is the time to make any major namespace changes you want to make. I assume that eclipse refactoring makes this easy. Check all the code in and BioJava3 has begun!
Scooter
________________________________
From: andreas.prlic at gmail.com on behalf of Andreas Prlic
Sent: Thu 5/28/2009 12:31 AM
To: Scooter Willis
Cc: biojava-dev
Subject: Re: [Biojava-dev] next steps
Hi Scooter,
quick update: There is also an eclipse plugin for JDepend, that
provides a user interface to browse thought the dependencies.
As I already mentioned earlier, I had some quick progress with the
maven plugin to convert the project to maven and create a first pom.
At the moment I am testing how best to create sub-projects that
should contain the modules. The plugin does not seem to make it easy
to create new modules, so I agree with your earlier suggestion that it
is best to modularize first and the mavenize 2nd... Should we create a
branch in svn and play around with refactoring there and once we are
happy with it we can switch that branch to become the trunk?
Andreas
On Mon, May 25, 2009 at 3:59 PM, Scooter Willis <HWillis at scripps.edu> wrote:
> I attached the JDepend output for BioJava. This will help on the circular
> dependencies where core classes should not have dependencies on other
> packages and if they do it should be refactored into the core class.
>
> Scooter
> ________________________________
> From: mike.smoot at gmail.com on behalf of Mike Smoot
> Sent: Mon 5/25/2009 1:07 PM
> To: Scooter Willis
> Cc: Andreas Prlic; biojava-dev at lists.open-bio.org
> Subject: Re: [Biojava-dev] next steps
>
>
>
> On Mon, May 25, 2009 at 7:48 AM, Scooter Willis <HWillis at scripps.edu> wrote:
>>
>> I was looking at the biojava code yesterday to see how easy it would be to
>> divide up into functionally grouped jars based on package hierarchy. I tried
>> to find some refactoring tools that would give a network graph view of class
>> relationships. It is simple enough to parse source for import statements and
>> build some sort of graph relationship tool. It is also easy enough to start
>> dragging packages around to different projects in netbeans and resolve
>> compiler errors.
>
> JDepend is a nice tool for evaluating package dependencies.
>
> http://www.clarkware.com/software/JDepend.html
>
>
> Mike
>
> --
> ____________________________________________________________
> Michael Smoot, Ph.D. Bioengineering Department
> tel: 858-822-4756 University of California San Diego
>
More information about the biojava-dev
mailing list