You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@uima.apache.org by Marshall Schor <ms...@schor.com> on 2018/11/13 15:10:17 UTC

[VOTE] uimaj-3.0.1 rc2

Hi,

uimaj-3.0.1 rc2 is posted and ready for voting.

The difference between this and rc1 is one Jira that installed a fix for dealing with a ByteBuffer API change introduced into Java 9 and later.  This was causing failures if one ran with Java 8, but the build was done using Java 11.

In addition, the build was redone using Java 8.


The issues fixed are here:
https://issues.apache.org/jira/projects/UIMA/versions/12340377  (click on Issues Done)

Major changes are:
----------------- 
The code and the build was adjusted to work ok using both Java 8 and Java 11.
The fixes for 2.10.3 were merged.
Several select framework bugs were fixed; it should align well with uimaFIT's implementation

The source and binary tar/zips are here:
https://dist.apache.org/repos/dist/dev/uima/uimaj/3.0.1-rc2/artifacts/

The eclipse update subsite is here:
https://dist.apache.org/repos/dist/dev/uima/uimaj/3.0.1-rc2/uimaj

The maven staging repo is here:
https://repository.apache.org/content/repositories/orgapacheuima-1205/

SVN tag: https://svn.apache.org/repos/asf/uima/uv3/uimaj-v3/tags/uimaj-3.0.1/

Built using the latest maven (version 3.6.0), and the latest uima-wide parent
pom (version 12).


Please vote on release:

[ ] +1 OK to release
[ ] 0   Don't care
[ ] -1 Not OK to release, because ...

Thanks.

-Marshall



Re: [VOTE][RESULT] uimaj-3.0.1 rc2

Posted by Marshall Schor <ms...@schor.com>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
 
The vote passes, with 4 +1 votes and no other votes received:

+1 Marshall Schor

+1 Richard Eckart de Castilho

+1 Peter Klügl

+1 Jaroslaw Cwiklik

Thanks to everyone for testing and voting!  I'll now get the Eclipse plugin Jars
signed, and finish the release.

- -Marshall

-----BEGIN PGP SIGNATURE-----
 
iQIzBAEBCgAdFiEEOn/mVSh3S1eNEDz+zHYv/c0Ez9YFAlv/9LwACgkQzHYv/c0E
z9ZXVQ//ZXVpijB5B+CqO9LjSF6seGDGnwozvHneIz4j/edpxQHf3awYlWtAztYJ
8Sj6HnGiN/UnZDy8onRKdbUdrmUbQI0QQRsbRKVClS1xx9uO5yBgcFuw73Ijwpn3
+jn72z+X7bbVifxDHJJsox3GpHhEKrur3x59nprqoWnFQNzqReo9ZyqBZpK5IYkq
F3EugZsnwLZeK581fKLAuPbDbs/5318PdR3+XANDXKJ/tMnkkeeh9de6IXI9MHGk
/9Zz+kRhrL1qTJJRVm2OYSnsU4wQlwjFX6+bllC9Z7w3IYgATB1cEcMfeV/RZCEm
pcrLrdL14nsQldDE+y4y7ebZbDh8PdQ9PwlbrzVLv7TmvpyCBLonXRbPjXnUu53/
wxOSokYPVF6qHvWXyxhqHcSAl1R0cDuPc/ttpLgoxZVs+VQ3fu1JC7CMYh7dqKqO
jZF/Q4Q3Ij3GTClU9fZSNuYXEgV7kv4b/gAj4gR0quBsUTcggCg3mGjS6QIPwpfu
ozNEJt0Ofq+dqmoaaTjai+uXAIYFI/HA0h57WWx7a4J/F5NmpAq1Q56v/GZR+xR4
xn3IY4pgWWpT+SVHl8eZeZ8BRgJFE02a8lRbKA3kvl6BvJC60M8FL39TiFTuLltO
dvwute2XIiRIp66s6RP623NVmIrjxzI0YO3JTWm8pe/X5/1d8GA=
=YUkW
-----END PGP SIGNATURE-----


Re: [VOTE] uimaj-3.0.1 rc2

Posted by Jaroslaw Cwiklik <cw...@apache.org>.
- Built from source using java 8 on linux - OK
- Ran documentAnalyzer from bin - OK
- Built uima-as-v3 (from branch) - OK
- Ran uima-as  runRemoteAsychAE - OK
- Spot checked READE, RELEASE_NOTES, LICENSE, NOTICE - OK
- Spot checked signatures - OK

[X] +1 OK to release

On Mon, Nov 26, 2018 at 2:43 PM Richard Eckart de Castilho <re...@apache.org>
wrote:

> On 26. Nov 2018, at 19:08, Marshall Schor <ms...@schor.com> wrote:
> >
> > If you want a test case for v3 that works, just change the supertype to
> > CAS.TYPE_NAME_ANNOTATION.
>
> I hit this in code that serializes a CAS to a file in a custom format.
> The type that is being serialized does not inherit from annotation.
> I don't really mind the order. But it makes my unit tests easier if
> the order is deterministic - so I am now sorting the feature
> structures in this particular case by their IDs (which are apparently
> still assigned in creation order) and that fixes by unit test under v3.
>
> Cheers,
>
> -- Richard
>

Re: [VOTE] uimaj-3.0.1 rc2

Posted by Richard Eckart de Castilho <re...@apache.org>.
On 26. Nov 2018, at 19:08, Marshall Schor <ms...@schor.com> wrote:
> 
> If you want a test case for v3 that works, just change the supertype to
> CAS.TYPE_NAME_ANNOTATION.

I hit this in code that serializes a CAS to a file in a custom format.
The type that is being serialized does not inherit from annotation.
I don't really mind the order. But it makes my unit tests easier if 
the order is deterministic - so I am now sorting the feature
structures in this particular case by their IDs (which are apparently
still assigned in creation order) and that fixes by unit test under v3.

Cheers,

-- Richard

Re: [VOTE] uimaj-3.0.1 rc2

Posted by Marshall Schor <ms...@schor.com>.
I ran this in debug mode and found:

1) the testcase creates a type "TestType" with a supertype
CAS.TYPE_NAME_ANNOTATION_BASE.

The supertype has no "build-in" defined index (unlike if the supertype was
CAS.TYPE_NAME_ANNOTATION).
So, adding it to indexes adds this to a "bag" index. 

2) The getAllIndexedFS just reads out the bag index (which is implemented via a
hash map in v3), so you get the FSs in random order. 

3) changing the supertype to CAS.TYPE_NAME_ANNOTATION makes the test succeed.

4) in v2, the default bag index (which is the impl style that gets used for
this) is implemented as either a bit-set kind of thing, or as a IntVector of
ints (representing the FSs). 

So the ordering will definitely be different in v3 vs v2.

I think the v3 impl as a simple HashSet should not be changed, for performance
reasons, so this difference is to be expected.

Thanks for hunting it down!

If you want a test case for v3 that works, just change the supertype to
CAS.TYPE_NAME_ANNOTATION.

  -Marshall

On 11/25/2018 4:05 PM, Richard Eckart de Castilho wrote:
> On 19. Nov 2018, at 21:31, Marshall Schor <ms...@schor.com> wrote:
>> Can you say where the feature structure order changed in comparison to v2?  I'm
>> trying to keep things as much as reasonably possible the same, except if there
>> is some kind of performance implication, etc.
> The following code seems to work consistently for UIMA v2, but fails sooner or
> later for UIMA v3.
>
> ----
>
>     @Test
>     public void thatIterationOrderOfAnnotationBaseFSesIsCorrect() throws Exception
>     {
>         for (int e = 0; e < 1000; e++) {
>             TypeSystemDescription tsd = new TypeSystemDescription_impl();
>             TypeDescription td = tsd.addType("TestType", "", CAS.TYPE_NAME_ANNOTATION_BASE);
>             td.addFeature("value", "", CAS.TYPE_NAME_INTEGER);
>             
>             CAS cas = CasCreationUtils.createCas(tsd, null, null);
>             Type type = cas.getTypeSystem().getType("TestType");
>             Feature feat = type.getFeatureByBaseName("value");
>             
>             for (int i = 0; i < 1000; i ++) {
>                 FeatureStructure fs = cas.createFS(type);
>                 fs.setIntValue(feat, i);
>                 cas.addFsToIndexes(fs);
>             }
>                     
>             int next = 0;
>             FSIterator<FeatureStructure> i = cas.getIndexRepository().getAllIndexedFS(type);
>             while (i.hasNext()) {
>                 FeatureStructure fs = i.next();
>                 assertEquals(next, fs.getIntValue(feat));
>                 next ++;
>             }
>         }
>     }
>
> ----
>
> Cheers,
>
> -- Richard

Re: [VOTE] uimaj-3.0.1 rc2

Posted by Richard Eckart de Castilho <re...@apache.org>.
On 25. Nov 2018, at 22:05, Richard Eckart de Castilho <re...@apache.org> wrote:
> 
>> 
>> Can you say where the feature structure order changed in comparison to v2?  I'm
>> trying to keep things as much as reasonably possible the same, except if there
>> is some kind of performance implication, etc.
> 
> The following code seems to work consistently for UIMA v2, but fails sooner or
> later for UIMA v3.

I was hitting this change in behavior in the UIMAv3 branch of DKPro Core. It seems
that I can work around the change there by sorting FSes by their ID:

            List<FeatureStructure> heads = new ArrayList<>(
                    CasUtil.selectFS(aJCas.getCas(), headType));
            heads.sort(Comparator.comparing(fs -> aJCas.getLowLevelCas().ll_getFSRef(fs)));

Cheers,

-- Richard


Re: [VOTE] uimaj-3.0.1 rc2

Posted by Richard Eckart de Castilho <re...@apache.org>.
On 19. Nov 2018, at 21:31, Marshall Schor <ms...@schor.com> wrote:
> 
> Can you say where the feature structure order changed in comparison to v2?  I'm
> trying to keep things as much as reasonably possible the same, except if there
> is some kind of performance implication, etc.

The following code seems to work consistently for UIMA v2, but fails sooner or
later for UIMA v3.

----

    @Test
    public void thatIterationOrderOfAnnotationBaseFSesIsCorrect() throws Exception
    {
        for (int e = 0; e < 1000; e++) {
            TypeSystemDescription tsd = new TypeSystemDescription_impl();
            TypeDescription td = tsd.addType("TestType", "", CAS.TYPE_NAME_ANNOTATION_BASE);
            td.addFeature("value", "", CAS.TYPE_NAME_INTEGER);
            
            CAS cas = CasCreationUtils.createCas(tsd, null, null);
            Type type = cas.getTypeSystem().getType("TestType");
            Feature feat = type.getFeatureByBaseName("value");
            
            for (int i = 0; i < 1000; i ++) {
                FeatureStructure fs = cas.createFS(type);
                fs.setIntValue(feat, i);
                cas.addFsToIndexes(fs);
            }
                    
            int next = 0;
            FSIterator<FeatureStructure> i = cas.getIndexRepository().getAllIndexedFS(type);
            while (i.hasNext()) {
                FeatureStructure fs = i.next();
                assertEquals(next, fs.getIntValue(feat));
                next ++;
            }
        }
    }

----

Cheers,

-- Richard

Re: [VOTE] uimaj-3.0.1 rc2

Posted by Richard Eckart de Castilho <re...@apache.org>.
Sry... probably will only be able to look at this on the weekend.

-- Richard

> On 21. Nov 2018, at 08:30, Richard Eckart de Castilho <re...@apache.org> wrote:
> 
> I'll see if I can provide more details later today.


Re: [VOTE] uimaj-3.0.1 rc2

Posted by Richard Eckart de Castilho <re...@apache.org>.
On 19. Nov 2018, at 21:31, Marshall Schor <ms...@schor.com> wrote:
> 
> Can you say where the feature structure order changed in comparison to v2?  I'm
> trying to keep things as much as reasonably possible the same, except if there
> is some kind of performance implication, etc.

It seems that the iteration order and IDs have changed for
types that inherit from AnnotationBase or higher.

I'll see if I can provide more details later today.

-- Richard

Re: [VOTE] uimaj-3.0.1 rc2

Posted by Marshall Schor <ms...@schor.com>.
Thanks for the feedback.

I'll put in a deprecated for ResourceManagerPearWrapper...

I'll look into some kind of generalization for the runtime exception
..WHILE_WAITING_FOR_UIMA_AS.

Can you say where the feature structure order changed in comparison to v2?  I'm
trying to keep things as much as reasonably possible the same, except if there
is some kind of performance implication, etc.

Cheers. -Marshall

On 11/18/2018 5:26 PM, Richard Eckart de Castilho wrote:
> Built from sources using Java 11: ok
> Build uimaFIT v3 against RC: ok
> Build DKPro Core (v3 version) against rc and uimaFIT v3: pretty ok
> - looks like feature structure order may have changed in comparison to v2
>   for cases where a stable order couldn't be expected in the first place.
>
> Spot checking source changes:
> - ResourceManagerPearWrapper has a comment that it is no longer used but
>   was not marked as deprecated
> - UimaRuntimeException has a CAS_RELEASE_NOT_ALLOWED_WHILE_WAITING_FOR_UIMA_AS.
>   I think it would be better to have a general concept of release locking
>   not tied to UIMA AS - i.e. UIMA AS not being mentioned in UIMAJ-Core code.
>
> Looks good.
>
> [X] +1 OK to release
>
> -- Richard
> >

Re: [VOTE] uimaj-3.0.1 rc2

Posted by Richard Eckart de Castilho <re...@apache.org>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Built from sources using Java 11: ok
Build uimaFIT v3 against RC: ok
Build DKPro Core (v3 version) against rc and uimaFIT v3: pretty ok
- - looks like feature structure order may have changed in comparison to v2
  for cases where a stable order couldn't be expected in the first place.

Spot checking source changes:
- - ResourceManagerPearWrapper has a comment that it is no longer used but
  was not marked as deprecated
- - UimaRuntimeException has a CAS_RELEASE_NOT_ALLOWED_WHILE_WAITING_FOR_UIMA_AS.
  I think it would be better to have a general concept of release locking
  not tied to UIMA AS - i.e. UIMA AS not being mentioned in UIMAJ-Core code.

Looks good. 

[X] +1 OK to release

- -- Richard
-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEEPY2MKJLmMo4NDQCrO8wPPFbjAA4FAlvx5uJfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNE
OEQ4QzI4OTJFNjMyOEUwRDBEMDBBQjNCQ0MwRjNDNTZFMzAwMEUACgkQO8wPPFbj
AA5GkRAAvfw+LTcaaWRBCS4NxXlgfBFUjA7u0kGtKu9ba84brd6EGQr1a/M10Bz9
CvQIwK9fA3L0DCi6+pRR70hjsP0C4KJuvF99Bhw2tbXFZ+ghj3rLGgF57PgTIa5y
YFE6NSM/YVhtMOSv+t0x2CounHdEqGVPuf7x7bLhWD4QxfmYQA7y78P7lA+uQZYn
1ecVjZd6jx+1SEdhvWOfPVEYx6HXOnEmHibyJbKO5ThWZHyYXSvv7s0y04gQuAG9
KWjEiDMw6LufboDpxnmJgW2L2MvnAeuVpe/OZxO/UuxNwYfQq36WxwujqCz5kjZR
Nd3S7MHxJ5CnV1Jf7U1zbRZkPnw5IFyJ2E2JizebJwrslNoqNLE0Ti9G2mPYzNzU
ug/Fcb6zt4ar3WMOPtoBMAH+HyJosBYy4iBALGFO1GgnJ7a0RhlnYVNqc4X0xihX
+eSyIzbheVhlv0BIsxlJIfJrLKOjUtuytl5dSBgCRgANsrUIFiV5e3ffEa+ZNZgu
Ghb3jy1lk5HBngjErrNI+DaSyCGugrtZIvRZbADpDhW1QLUPc5Rx9bElcJoSQEnX
nhjXUK8ckug/7vZwoxK1bPToV23GXx4VTUliVnut+OgJYRxuhbrClF57p+i4qZ25
GTd7CHh19ZpBbmQ8FYnQXEo9U/358uBUneelDO50vqOc9sO9bxM=
=XV9+
-----END PGP SIGNATURE-----


Re: [VOTE] uimaj-3.0.1 rc2

Posted by Marshall Schor <sc...@apache.org>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
 
signatures OK
compare source-release with svn tag : OK
issues-fixed report: OK
api-change-reports: OK

(using Java 8)

build from sources: OK
ran document analyzer from bin package, viewed results- OK
installed plugins into Eclipse 4.9.0 OK
imported example project into Eclipse, it built OK, ran document analyzer: OK
made new type system descriptor, ran JCasGen: OK
      0-element jcas-gen'd constructors are marked @Deprecated except for TOP,
      causes warning on all generated JCas classes?  only in v3
   Not a Blocker.

compare licenses with 3.0.0 - no change
spot check licenses in staging repo: OK

[X] +1 OK to release

- -Marshall Schor
-----BEGIN PGP SIGNATURE-----
 
iQIzBAEBCgAdFiEEOn/mVSh3S1eNEDz+zHYv/c0Ez9YFAlvrIbgACgkQzHYv/c0E
z9bdjA/8CyGuUvqYLWmRV2F8NC352RDoqrGYlSYPqpLpzrDb3+4gKXnxi+L98LvU
YnWMlWdP8gzVyuPz0avHRGiYSRdKyyqxHAwbdgAPWtiOIU9D5dVZfCa7X5rKvBjd
XIWbn6o8jn/DxUbwrYSFb9LDMD/pYA1kiVSmH5+/Rh8XZ9Ekuuu6yNsIiHFaVg8e
QI7oSiYJnjrzPtDJifbIzN9RBDJBeux8/XP93WKsCWRaoIRU6s7JRE6FSPfIUnoc
daAvaSv0EtN7F8LCw0kKzUtbw+o4JHaWCTI7x01aW9dxqQ/ZkNSTLQi0d+2wKn4p
N4zqWtz7HBIW6KQJhGhMFZorXLVKcraSFfllUDim8julOSYLi2hlnMezwofNk5uX
rByKP2XVl+fCjVWTAzdDvqodE8Ounc2TguPe6Jdd2OCPsz1UyWa/K9wAaGpX7Ijs
lzX60BUkQF57D7helOhQpdZs24hRd79DP9fX4wmqzV7M6ruWMVRtlhBdvzxjztBA
tMQHgLXPhH5Mfp8Joi5RzwUDk+e7/B4FONhRCemCMvhjeiUbk2JT4E+uQ+l7a7fl
DSUB6mrSbvLisWKmAcAly7ZB3bRxRxQC1D5fDlj3kfDTI8HCMoEHtqKv2QJIsjfj
yU1t+QZ8WlxB/CSDKa6aU+L9BxJmqyZ0ItWmaw+OMl19W7+O+WU=
=cfZe
-----END PGP SIGNATURE-----



Re: [VOTE][RESULT] uimaj-3.0.1 rc2

Posted by Marshall Schor <ms...@schor.com>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
 
The vote passes, with 3 +1 votes and no other votes:

+1 Marshall Schor

+1 Richard Eckart deCastilho

+1 Jaroslaw Cwiklik

Thanks to everyone for testing / voting!  I'll now proceed to get the Eclipse
plugin Jars signed, and finish the release.

- -Marshall

-----BEGIN PGP SIGNATURE-----
 
iQIzBAEBCgAdFiEEOn/mVSh3S1eNEDz+zHYv/c0Ez9YFAlv/9K8ACgkQzHYv/c0E
z9aqFA/+KX5M+2joKoIvi0gA99z136/o2gptyCXjqcRqy4CotcXn3tUtlAd5VXVG
cSo8tEIYitTzWHr2ZzpgsgmfB6clZaMb++Pu6jdiABI0Mg2dG4+GL30ik7VuhMt+
xAlH909BCSQw0bN+KzPnu5HR7z94EzQDlsBH7BERLKF2mV/TSGHxvO/7N4SQLxKf
xEKSQlU96U5DbQ0+JG3oZFCZlGMtM5cwCXYEBCuFm5B76D2yUdltH5L+XdPW91Sn
U86bF0q9v4wZWPEUM8xzR2HbMhPREnmWa9J+VBzT04mcDsi6LsWTU/ykGHpfWcc3
ROTtd8rYL0KSVb6KOKBhtY53fYJjuQqI/l8RyCHdjEr/VZI57Iz9TxToLR9yMzTX
4KIiecXxD6avSbsQyO9hwYPBuELQfVfPY55O3yFqIsIB8BpfGSeeXVC2mYv9oO6e
BXjC9JB/LJrvvie9SUYsSR2Uk/rjEIcXe0rl4ugCfioIlz/C2E+HI3fneMNSmXvB
kYJ/2K4hUHlFzaNCwGQmcLmSSEGKici5vtPPBrX98TkDO7eNKq2PPYMD7kQTE7cA
4MTOldhW2l0rTHDyBbD/nMvtRvFtnVV2VGrTumUqHfG9JWGCCTpxTMGLkN9jNApO
5lRXdz8cBkVMKHuaN6Tb1RWjJ7ZXsKpUXWlWpqxXjltyOSTXWqk=
=dP+/
-----END PGP SIGNATURE-----