[ 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-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org