I'm wondering how to do the version management for v3 style components.  Here's
what I did for testing:

1) I made a version of uimaFIT and Ruta for v3, and called them by some
different version number.  For instance, for uimaFIT, I started with
2.3.0-SNAPSHOT (trunk) and made a 2.3.0.3-SNAPSHOT version.  For Ruta, I started
with the 2.5.0 (tag) and made a 2.5.0.1-SNAPSHOT version.

Having a separate version allows the builds to create separate sets of Maven
objects, which don't "overlay" the others.

The POM changes are:

  a) switching the Java version to 8

  b) depending on uima v3 (3.0.0-SNAPSHOT)

  c) Ruta has a property for the uima version, the uimaFIT version, both updated
to the appropriate versions.

I'm not sure this is the best idea about version numbers.  I suspect we will be
maintaining two version streams for a while, so perhaps having a uniform 3.x.x
for Ruta and uimaFIT would be good.  But it's also a bit of a pain to have two
versions.  I've managed to keep version 2.x and 3.x of UIMA more or less in
sync, using the svn "merge" command, which seems to work pretty well.  Maybe
there's a better way though...

------------------

2) A main change for using UIMA v3 is to have updated JCasGen classes.  Ruta and
some parts of uimaFIT use the maven plugin for JCasgen to generate the JCas
cover classes as part of the build.  This is ideal; no "migration" is needed;
just run the build and the v3 versions of the JCas classes are generated.

uimaFIT has some JCas cover classes that are not generated by the build, but are
in source code.  It would be simpler if these could be also generated.  If this
is not possible (perhaps because they've been "customized"), they can be
converted using the migration tool.  I did this for the uimaFIT classes that
were not generated by the build.

------------------

3) Some test cases that depend on the internals of V2 needed updating in 
uimaFIT.

4) One test in Ruta creates pipelines in succession (using uimaFIT) and sees if
the type system is != to a previous one as a signal initialize some Ruta
representations of types.  In Version 3, equal type systems are consolidated,
and one of the tests had such, and so part of the Ruta initialization was
skipped, which caused an error.

5) Some of the tests in Ruta using some internals of uima needed some tweaking.

-----------------

I'm planning on reviewing and checking in the uv3 changes tomorrow.  I guess we
need to figure out how to have a v3 version of uimaFIT / Ruta, either
temporarily in a branch, or some other way.

-Marshall

Reply via email to