You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Steve Rowe (JIRA)" <ji...@apache.org> on 2014/05/29 11:30:03 UTC

[jira] [Updated] (LUCENE-5442) Build system should sanity check transative 3rd party dependencies

     [ https://issues.apache.org/jira/browse/LUCENE-5442?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Steve Rowe updated LUCENE-5442:
-------------------------------

    Attachment: LUCENE-5442.patch

I've attached a trunk patch that augments the {{check-lib-versions}} target to fail the build if a transitive dependency's version is more recent than the corresponding direct dependency's version specified in {{lucene/ivy-versions.properties}}.  Exceptions are specifiable in a new file {{lucene/ivy-ignore-conflicts.properties}}.  I've populated this file with the current set of conflicts.

When I comment out the entries in {{lucene/ivy-ignore-conflicts.properties}}, this is the output (and the build fails):
{noformat}
[libversions] VERSION CONFLICT: transitive dependency in module(s) benchmark, extraction:
[libversions] /org.apache.commons/commons-compress=1.7
[libversions] +-- /org.tukaani/xz=1.4 <<< Conflict (direct=1.2)
[libversions] 
[libversions] VERSION CONFLICT: transitive dependency in module(s) morphlines-core, map-reduce:
[libversions] /org.apache.hadoop/hadoop-mapreduce-client-core=2.2.0
[libversions] +-- /org.apache.hadoop/hadoop-yarn-common=2.2.0
[libversions]     +-- /org.apache.hadoop/hadoop-yarn-api=2.2.0
[libversions]         +-- /com.sun.jersey/jersey-json=1.9 <<< Conflict (direct=1.8)
[libversions] ... and 15 more
[libversions] 
[libversions] VERSION CONFLICT: transitive dependency in module(s) morphlines-core, map-reduce:
[libversions] /org.apache.hadoop/hadoop-mapreduce-client-core=2.2.0
[libversions] +-- /org.apache.hadoop/hadoop-yarn-common=2.2.0
[libversions]     +-- /com.sun.jersey/jersey-server=1.9
[libversions]         +-- /asm/asm=3.2 <<< Conflict (direct=3.1)
[libversions] ... and 23 more
[libversions] 
[libversions] VERSION CONFLICT: transitive dependency in module(s) morphlines-core:
[libversions] /org.apache.hadoop/hadoop-yarn-server-tests=2.2.0
[libversions] +-- /io.netty/netty=3.6.2.Final
[libversions]     +-- /javax.activation/activation=1.1.1 <<< Conflict (direct=1.1)
[libversions] ... and 14 more
[libversions] 
[libversions] VERSION CONFLICT: transitive dependency in module(s) morphlines-core, map-reduce:
[libversions] /org.apache.hadoop/hadoop-mapreduce-client-core=2.2.0
[libversions] +-- /org.apache.hadoop/hadoop-yarn-common=2.2.0
[libversions]     +-- /org.apache.hadoop/hadoop-yarn-api=2.2.0
[libversions]         +-- /com.sun.jersey.contribs/jersey-guice=1.9 <<< Conflict (direct=1.8)
[libversions] ... and 13 more
[libversions] 
[libversions] VERSION CONFLICT: transitive dependency in module(s) solrj, replicator:
[libversions] /org.apache.httpcomponents/httpclient=4.3.1
[libversions] +-- /commons-logging/commons-logging=1.1.3 <<< Conflict (direct=1.1.1)
[libversions] ... and 1 more
[libversions] 
[libversions] VERSION CONFLICT: transitive dependency in module(s) uima:
[libversions] /org.apache.uima/AlchemyAPIAnnotator=2.3.1
[libversions] +-- /commons-digester/commons-digester=2.1 <<< Conflict (direct=2.0)
[libversions] 
[libversions] VERSION CONFLICT: transitive dependency in module(s) morphlines-core, map-reduce:
[libversions] /org.apache.hadoop/hadoop-mapreduce-client-core=2.2.0
[libversions] +-- /org.apache.hadoop/hadoop-common=2.2.0
[libversions]     +-- /com.sun.jersey/jersey-core=1.9 <<< Conflict (direct=1.8)
[libversions] ... and 15 more
[libversions] 
[libversions] VERSION CONFLICT: transitive dependency in module(s) morphlines-core, map-reduce:
[libversions] /org.apache.hadoop/hadoop-mapreduce-client-core=2.2.0
[libversions] +-- /org.apache.hadoop/hadoop-yarn-common=2.2.0
[libversions]     +-- /org.apache.hadoop/hadoop-yarn-api=2.2.0
[libversions]         +-- /com.sun.jersey/jersey-json=1.9
[libversions]             +-- /com.sun.xml.bind/jaxb-impl=2.2.3-1 <<< Conflict (direct=2.2.2)
[libversions] ... and 23 more
[libversions] 
[libversions] VERSION CONFLICT: transitive dependency in module(s) solr-test-framework, core-test-framework:
[libversions] /com.carrotsearch.randomizedtesting/junit4-ant=2.1.3
[libversions] +-- /org.ow2.asm/asm=5.0_BETA <<< Conflict (direct=4.1)
[libversions] 
[libversions] VERSION CONFLICT: transitive dependency in module(s) morphlines-core, map-reduce:
[libversions] /org.apache.hadoop/hadoop-mapreduce-client-core=2.2.0
[libversions] +-- /org.apache.hadoop/hadoop-yarn-common=2.2.0
[libversions]     +-- /log4j/log4j=1.2.17 <<< Conflict (direct=1.2.16)
[libversions] ... and 18 more
[libversions] 
[libversions] VERSION CONFLICT: transitive dependency in module(s) langid:
[libversions] /net.arnx/jsonic=1.2.7
[libversions] +-- /javax.servlet/servlet-api=3.0-alpha-1 <<< Conflict (direct=2.4)
[libversions] ... and 30 more
[libversions] 
[libversions] VERSION CONFLICT: transitive dependency in module(s) uima:
[libversions] /commons-digester/commons-digester=2.0
[libversions] +-- /commons-beanutils/commons-beanutils=1.8.0 <<< Conflict (direct=1.7.0)
[libversions] ... and 1 more
[libversions] 
[libversions] VERSION CONFLICT: transitive dependency in module(s) morphlines-core, map-reduce:
[libversions] /org.apache.hadoop/hadoop-mapreduce-client-core=2.2.0
[libversions] +-- /org.apache.hadoop/hadoop-yarn-common=2.2.0
[libversions]     +-- /com.sun.jersey/jersey-server=1.9 <<< Conflict (direct=1.8)
[libversions] ... and 15 more
[libversions] 
[libversions] VERSION CONFLICT: transitive dependency in module(s) solrj:
[libversions] /org.apache.zookeeper/zookeeper=3.4.6
[libversions] +-- /io.netty/netty=3.7.0.Final <<< Conflict (direct=3.6.2.Final)
[libversions] 
[libversions] VERSION CONFLICT: transitive dependency in module(s) solr-test-framework, core-test-framework:
[libversions] /com.carrotsearch.randomizedtesting/junit4-ant=2.1.3
[libversions] +-- /commons-io/commons-io=2.3 <<< Conflict (direct=2.1)
[libversions] 
[libversions] VERSION CONFLICT: transitive dependency in module(s) solr-test-framework, core-test-framework:
[libversions] /com.carrotsearch.randomizedtesting/junit4-ant=2.1.3
[libversions] +-- /com.google.guava/guava=16.0.1 <<< Conflict (direct=14.0.1)
[libversions] 
[libversions] VERSION CONFLICT: transitive dependency in module(s) morphlines-core:
[libversions] /org.kitesdk/kite-morphlines-avro=0.12.1
[libversions] +-- /org.apache.avro/avro=1.7.5 <<< Conflict (direct=1.7.4)
[libversions] 
[libversions] VERSION CONFLICT: transitive dependency in module(s) morphlines-core:
[libversions] /org.kitesdk/kite-morphlines-avro=0.12.1
[libversions] +-- /org.apache.avro/avro=1.7.5
[libversions]     +-- /org.xerial.snappy/snappy-java=1.0.5 <<< Conflict (direct=1.0.4.1)
[libversions] ... and 1 more
[libversions] Checked that ivy-versions.properties and ivy-ignore-conflicts.properties have lexically sorted '/org/name' keys and no duplicates or orphans.
[libversions] Scanned 44 ivy.xml files for rev="${/org/name}" format.
[libversions] Found 19 indirect dependency version conflicts.
[libversions] Completed in 20.55s., 12 error(s).
{noformat}

> Build system should sanity check transative 3rd party dependencies
> ------------------------------------------------------------------
>
>                 Key: LUCENE-5442
>                 URL: https://issues.apache.org/jira/browse/LUCENE-5442
>             Project: Lucene - Core
>          Issue Type: Improvement
>          Components: general/build
>            Reporter: Hoss Man
>            Assignee: Steve Rowe
>         Attachments: LUCENE-5442.patch
>
>
> SOLR-5365 is an example of a bug that croped up because we upgraded a 3rd party dep (tika) w/o realizing that the version we upgraded too depended on a newer version of another 3rd party dep (commons-compress)
> in a comment in SOLR-5365, Jan suggested that it would be nice if there was an easy way to spot problems like this ... i asked steve about it, thinking maybe this is something the maven build could help with, and he mentioned that there is already an ant task to inspect the ivy transative deps in order to generate the maven deps and it could be used to help detect this sort of problem.
> opening this issue per steve's request as a reminder to look into this possibility.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org