[jira] [Updated] (LUCENE-5217) disable transitive dependencies in maven config

2013-10-31 Thread Steve Rowe (JIRA)

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

Steve Rowe updated LUCENE-5217:
---

Fix Version/s: 5.0
   4.6

> disable transitive dependencies in maven config
> ---
>
> Key: LUCENE-5217
> URL: https://issues.apache.org/jira/browse/LUCENE-5217
> Project: Lucene - Core
>  Issue Type: Bug
>Reporter: Robert Muir
>Assignee: Steve Rowe
> Fix For: 4.6, 5.0
>
> Attachments: LUCENE-5217.patch, LUCENE-5217.patch, LUCENE-5217.patch, 
> LUCENE-5217.patch
>
>
> Our ivy configuration does this: each dependency is specified and so we know 
> what will happen. Unfortunately the maven setup is not configured the same 
> way.
> Instead the maven setup is configured to download the internet: and it 
> excludes certain things specifically.
> This is really hard to configure and maintain: we added a 
> 'validate-maven-dependencies' that tries to fail on any extra jars, but all 
> it really does is run a license check after maven "runs". It wouldnt find 
> unnecessary dependencies being dragged in if something else in lucene was 
> using them and thus they had a license file.
> Since maven supports wildcard exclusions: MNG-3832, we can disable this 
> transitive shit completely.
> We should do this, so its configuration is the exact parallel of ivy.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

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



[jira] [Updated] (LUCENE-5217) disable transitive dependencies in maven config

2013-10-31 Thread Steve Rowe (JIRA)

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

Steve Rowe updated LUCENE-5217:
---

Attachment: LUCENE-5217.patch

A last minute change before posting the previous version of the patch, to fix a 
problem turned up by {{validate-maven-dependencies}} - {{jetty-start}} was 
depended on and doesn't have a checksum in {{solr/licences/}} - broke other 
stuff.  That's fixed in this version of the patch.

> disable transitive dependencies in maven config
> ---
>
> Key: LUCENE-5217
> URL: https://issues.apache.org/jira/browse/LUCENE-5217
> Project: Lucene - Core
>  Issue Type: Bug
>Reporter: Robert Muir
>Assignee: Steve Rowe
> Attachments: LUCENE-5217.patch, LUCENE-5217.patch, LUCENE-5217.patch, 
> LUCENE-5217.patch
>
>
> Our ivy configuration does this: each dependency is specified and so we know 
> what will happen. Unfortunately the maven setup is not configured the same 
> way.
> Instead the maven setup is configured to download the internet: and it 
> excludes certain things specifically.
> This is really hard to configure and maintain: we added a 
> 'validate-maven-dependencies' that tries to fail on any extra jars, but all 
> it really does is run a license check after maven "runs". It wouldnt find 
> unnecessary dependencies being dragged in if something else in lucene was 
> using them and thus they had a license file.
> Since maven supports wildcard exclusions: MNG-3832, we can disable this 
> transitive shit completely.
> We should do this, so its configuration is the exact parallel of ivy.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

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



[jira] [Updated] (LUCENE-5217) disable transitive dependencies in maven config

2013-10-31 Thread Steve Rowe (JIRA)

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

Steve Rowe updated LUCENE-5217:
---

Attachment: LUCENE-5217.patch

Patch, hopefully complete.  

In addition to all tests passing in the Maven build after {{ant 
get-maven-poms}}, {{generate-maven-artifacts}}and {{precommit}} all pass.

I'm running {{ant validate-maven-dependencies}} {{ant nightly-smoke}} now, and 
if no problems surface, I'll commit to trunk.  I plan on letting it soak for a 
few days before backporting to branch_4x. 

> disable transitive dependencies in maven config
> ---
>
> Key: LUCENE-5217
> URL: https://issues.apache.org/jira/browse/LUCENE-5217
> Project: Lucene - Core
>  Issue Type: Bug
>Reporter: Robert Muir
> Attachments: LUCENE-5217.patch, LUCENE-5217.patch, LUCENE-5217.patch
>
>
> Our ivy configuration does this: each dependency is specified and so we know 
> what will happen. Unfortunately the maven setup is not configured the same 
> way.
> Instead the maven setup is configured to download the internet: and it 
> excludes certain things specifically.
> This is really hard to configure and maintain: we added a 
> 'validate-maven-dependencies' that tries to fail on any extra jars, but all 
> it really does is run a license check after maven "runs". It wouldnt find 
> unnecessary dependencies being dragged in if something else in lucene was 
> using them and thus they had a license file.
> Since maven supports wildcard exclusions: MNG-3832, we can disable this 
> transitive shit completely.
> We should do this, so its configuration is the exact parallel of ivy.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

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



[jira] [Updated] (LUCENE-5217) disable transitive dependencies in maven config

2013-10-30 Thread Steve Rowe (JIRA)

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

Steve Rowe updated LUCENE-5217:
---

Attachment: LUCENE-5217.patch

New patch, almost there.

Changes:

* {{ivy.xml}} files and {{ivy-.xml}} files from the Ivy cache are now 
parsed with DOM+XPath instead of SAX.
* All tests pass under the maven build using the filtered POMs.
* More javadocs added.
* The filtered grandparent POM is now over 5,000 lines long (previously about 
900 lines), since, faithful to the Ant build, each Solr module depends on all 
Solr core, solrj, and example dependencies, and each one of those has to be 
excluded to thwart transitive dependency resolution.  Blech.

Left to do: verify that {{generate-maven-artifacts}} works - I haven't tried it 
yet.


> disable transitive dependencies in maven config
> ---
>
> Key: LUCENE-5217
> URL: https://issues.apache.org/jira/browse/LUCENE-5217
> Project: Lucene - Core
>  Issue Type: Bug
>Reporter: Robert Muir
> Attachments: LUCENE-5217.patch, LUCENE-5217.patch
>
>
> Our ivy configuration does this: each dependency is specified and so we know 
> what will happen. Unfortunately the maven setup is not configured the same 
> way.
> Instead the maven setup is configured to download the internet: and it 
> excludes certain things specifically.
> This is really hard to configure and maintain: we added a 
> 'validate-maven-dependencies' that tries to fail on any extra jars, but all 
> it really does is run a license check after maven "runs". It wouldnt find 
> unnecessary dependencies being dragged in if something else in lucene was 
> using them and thus they had a license file.
> Since maven supports wildcard exclusions: MNG-3832, we can disable this 
> transitive shit completely.
> We should do this, so its configuration is the exact parallel of ivy.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

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



[jira] [Updated] (LUCENE-5217) disable transitive dependencies in maven config

2013-10-24 Thread Steve Rowe (JIRA)

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

Steve Rowe updated LUCENE-5217:
---

Attachment: LUCENE-5217.patch

Patch that templatizes dependencies in all POM templates, and fills them out 
using a new Ant task.  

In the {{}} section in the grandparent POM produced using 
this patch, all dependencies' versions are specified, as are exclusions for all 
transitive compile-scope dependencies.  

So this patch directly makes the Maven setup the same as the Ant setup: all 
transitive dependencies are excluded, and all dependencies and their versions 
are pulled from the Ant/Ivy config.

This is a work in progress: I've only tested the {{get-maven-poms}} task so 
far, and I haven't yet run the Maven build or tried to 
{{generate-maven-artifacts}}, so it's not ready yet.  I think it's most of the 
way there though.

The strategy is to put all modules' {{classpath}}-s and {{test.classpath}}-s 
into a single properties file using vanilla Ant, and then feed that into a new 
custom Ant task that also reads all the {{ivy.xml}} files, the centralized ivy 
versions file, and the external dependencies' {{ivy.xml}} files in the Ivy 
cache, then output a filters file that is used when copy'ing the POM templates 
to {{maven-build/}}, so that the appropriate spots are filled in with the right 
stuff.

It's kludgy, in that properties files are used to communicate some information, 
rather than directly, but I can't see a way to do it all in memory.

Don't be scared by the size of the patch: the majority is just removing the 
hard-coded dependencies in the POM templates.


> disable transitive dependencies in maven config
> ---
>
> Key: LUCENE-5217
> URL: https://issues.apache.org/jira/browse/LUCENE-5217
> Project: Lucene - Core
>  Issue Type: Bug
>Reporter: Robert Muir
> Attachments: LUCENE-5217.patch
>
>
> Our ivy configuration does this: each dependency is specified and so we know 
> what will happen. Unfortunately the maven setup is not configured the same 
> way.
> Instead the maven setup is configured to download the internet: and it 
> excludes certain things specifically.
> This is really hard to configure and maintain: we added a 
> 'validate-maven-dependencies' that tries to fail on any extra jars, but all 
> it really does is run a license check after maven "runs". It wouldnt find 
> unnecessary dependencies being dragged in if something else in lucene was 
> using them and thus they had a license file.
> Since maven supports wildcard exclusions: MNG-3832, we can disable this 
> transitive shit completely.
> We should do this, so its configuration is the exact parallel of ivy.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

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