Not working on cTAKES directly but as someone integrating it I'd agree Matt.

++1 to multiple jars and using dependency management for resources.
This makes it much easier for any project that integrates cTAKES.

As for directory structure I'd also vote to keep with common idioms.
It would seem to me that if it's possible to checkout, modify, and
test a src/cpp but not src/java in the same module then there are
actually two modules and they should be broken out as such. Like I
said though, I'm not a cTAKES dev so my opinion has no weight here :)

Thien

On Thu, Jul 19, 2012 at 10:09 AM, Coarr, Matt <[email protected]> wrote:
> +1 for a single trunk with all the subprojects below it.  It makes checking 
> out the whole code base and tagging/branching much easier.  So marking all 
> the components as ctakes 2.6 would be a lot simpler.
>
> +1 for multiple jars.  Maven encourages a good practice here that is useful 
> in projects whether or not they use maven — each project should produce one 
> main jar (it may produce additional jars for things like source and 
> javadocs).  This keeps a nice clean one-to-one association between projects 
> and jar files.
>
> +1 on using the standard src/main/java type directory structure.  This is 
> very commonly used and I don't think we should invent our own.  It makes it 
> easy for newcomers to just know where everything is without thinking about it.
>
> +1 for encouraging building of unit tests and examples.  I'd suggest keeping 
> examples in their own projects (core, core-examples, assertion, 
> assertion-examples, etc).  This makes it obvious where the examples are and 
> it doesn't clutter up the primary release binary.
>
> +1 for the common package structure and naming, though I think this probably 
> needs some more thought than just adopting whatever comes first.  All of our 
> modules have some similar pieces seeing as their uima components doing nlp 
> work (analysis engine, configuration/resources, training, decoding, 
> evaluation, etc).
>
> I agree that models/resources to be managed specially.  I'd like to see these 
> managed (on the deployment/release side) as maven artifacts.
>
> For these models, if we do keep them in svn, I'd like to suggest that we do 
> not keep them under the common root trunk/tags/branches.  These files are 
> easily hundreds of MB to gigabytes.  And I'd like to see the svn operations 
> perform quickly.  I'd also like to be able to have multiple version of ctakes 
> checked out.
>
> Maybe we could use something like this:
>
> ctakes/modules/trunk
> ctakes/modules/trunk/core
> ctakes/modules/trunk/lvg
> ctakes/resources/trunk
> ctakes/resources/trunk/lvg-model
> ctakes/resources/trunk
>
> Then if you're not working on model development, you just need to check out 
> ctakes/modules/trunk, and maven would pull in any resources as needed.
>
> Matt

Reply via email to