[jira] [Updated] (MJAVADOC-794) Taglet autodetection fails when taglets JAR includes a module-info.class

2024-05-22 Thread Curtis Rueden (Jira)


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

Curtis Rueden updated MJAVADOC-794:
---
Description: 
Due to a bug in the maven-javadoc-plugin, the following warning gets emitted 
when a JPMS-modularized artifact containing taglets is included in the javadoc 
build via a `` tag:

{{  [WARNING] Unable to auto-detect Taglet class names from}}
{{  '/path/to/jar.jar'. Try to specify them with .}}

Running with `mvn -X` shows the underlying cause:

{{  NoClassDefFoundError: module-info is not a}}
{{  class because access_flag ACC_MODULE is set}}

Removing the {{module-info.java}} from the component avoids the problem.

The following patch fixes the problem as of {{{}ded56a90{}}}:

{{diff --git a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java 
b/src/main/java/org/apache/maven/plugins/ja>}}
{{index 835d6332..6e29eadf 100644}}
{{--- a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java}}
{{+++ b/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java}}
{{@@ -904,6 +904,9 @@ public class JavadocUtil {}}
{{             for (JarEntry jarEntry = jarStream.getNextJarEntry();}}
{{                     jarEntry != null;}}
{{                     jarEntry = jarStream.getNextJarEntry()) {}}
{{+                if ("module-info.class".equals(jarEntry.getName())) {}}
{{+                    continue;}}
{{+                }}}
{{                 Matcher matcher = pattern.matcher(jarEntry.getName());}}
{{                 if (matcher.matches()) {}}
{{                     String version = matcher.group("v");}}

 

  was:
Due to a bug in the maven-javadoc-plugin, the following warning gets emitted 
with a JPMS-modularized artifact containing taglets is included in the javadoc 
build via a `` tag:

{{  [WARNING] Unable to auto-detect Taglet class names from}}
{{  '/path/to/jar.jar'. Try to specify them with .}}

Running with `mvn -X` shows the underlying cause:

{{  NoClassDefFoundError: module-info is not a}}
{{  class because access_flag ACC_MODULE is set}}

Removing the {{module-info.java}} from the component avoids the problem.

The following patch fixes the problem as of {{{}ded56a90{}}}:

{{diff --git a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java 
b/src/main/java/org/apache/maven/plugins/ja>}}
{{index 835d6332..6e29eadf 100644}}
{{--- a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java}}
{{+++ b/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java}}
{{@@ -904,6 +904,9 @@ public class JavadocUtil {}}
{{             for (JarEntry jarEntry = jarStream.getNextJarEntry();}}
{{                     jarEntry != null;}}
{{                     jarEntry = jarStream.getNextJarEntry()) {}}
{{+                if ("module-info.class".equals(jarEntry.getName())) {}}
{{+                    continue;}}
{{+                }}}
{{                 Matcher matcher = pattern.matcher(jarEntry.getName());}}
{{                 if (matcher.matches()) {}}
{{                     String version = matcher.group("v");}}

 


> Taglet autodetection fails when taglets JAR includes a module-info.class
> 
>
> Key: MJAVADOC-794
> URL: https://issues.apache.org/jira/browse/MJAVADOC-794
> Project: Maven Javadoc Plugin
>  Issue Type: Bug
>Affects Versions: 3.6.3
>Reporter: Curtis Rueden
>Priority: Major
>
> Due to a bug in the maven-javadoc-plugin, the following warning gets emitted 
> when a JPMS-modularized artifact containing taglets is included in the 
> javadoc build via a `` tag:
> {{  [WARNING] Unable to auto-detect Taglet class names from}}
> {{  '/path/to/jar.jar'. Try to specify them with .}}
> Running with `mvn -X` shows the underlying cause:
> {{  NoClassDefFoundError: module-info is not a}}
> {{  class because access_flag ACC_MODULE is set}}
> Removing the {{module-info.java}} from the component avoids the problem.
> The following patch fixes the problem as of {{{}ded56a90{}}}:
> {{diff --git 
> a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java 
> b/src/main/java/org/apache/maven/plugins/ja>}}
> {{index 835d6332..6e29eadf 100644}}
> {{--- a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java}}
> {{+++ b/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java}}
> {{@@ -904,6 +904,9 @@ public class JavadocUtil {}}
> {{             for (JarEntry jarEntry = jarStream.getNextJarEntry();}}
> {{                     jarEntry != null;}}
> {{                     jarEntry = jarStream.getNextJarEntry()) {}}
> {{+                if ("module-info.class".equals(jarEntry.getName())) {}}
> {{+                    continue;}}
> {{+                }}}
> {{                 Matcher matcher = pattern.matcher(jarEntry.getName());}}
> {{                 if (matcher.matches()) {}}
> {{                

[jira] [Updated] (MJAVADOC-794) Taglet autodetection fails when taglets JAR includes a module-info.class

2024-05-22 Thread Curtis Rueden (Jira)


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

Curtis Rueden updated MJAVADOC-794:
---
Description: 
Due to a bug in the maven-javadoc-plugin, the following warning gets emitted 
when a JPMS-modularized artifact containing taglets is included in the javadoc 
build via a `` tag:

{{  [WARNING] Unable to auto-detect Taglet class names from}}
{{  '/path/to/jar.jar'. Try to specify them with .}}

Running with {{mvn -X}} shows the underlying cause:

{{  NoClassDefFoundError: module-info is not a}}
{{  class because access_flag ACC_MODULE is set}}

Removing the {{module-info.java}} from the component avoids the problem.

The following patch fixes the problem as of {{{}ded56a90{}}}:

{{diff --git a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java 
b/src/main/java/org/apache/maven/plugins/ja>}}
{{index 835d6332..6e29eadf 100644}}
{{--- a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java}}
{{+++ b/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java}}
{{@@ -904,6 +904,9 @@ public class JavadocUtil {}}
{{             for (JarEntry jarEntry = jarStream.getNextJarEntry();}}
{{                     jarEntry != null;}}
{{                     jarEntry = jarStream.getNextJarEntry()) {}}
{{+                if ("module-info.class".equals(jarEntry.getName())) {}}
{{+                    continue;}}
{{+                }}}
{{                 Matcher matcher = pattern.matcher(jarEntry.getName());}}
{{                 if (matcher.matches()) {}}
{{                     String version = matcher.group("v");}}

 

  was:
Due to a bug in the maven-javadoc-plugin, the following warning gets emitted 
when a JPMS-modularized artifact containing taglets is included in the javadoc 
build via a `` tag:

{{  [WARNING] Unable to auto-detect Taglet class names from}}
{{  '/path/to/jar.jar'. Try to specify them with .}}

Running with `mvn -X` shows the underlying cause:

{{  NoClassDefFoundError: module-info is not a}}
{{  class because access_flag ACC_MODULE is set}}

Removing the {{module-info.java}} from the component avoids the problem.

The following patch fixes the problem as of {{{}ded56a90{}}}:

{{diff --git a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java 
b/src/main/java/org/apache/maven/plugins/ja>}}
{{index 835d6332..6e29eadf 100644}}
{{--- a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java}}
{{+++ b/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java}}
{{@@ -904,6 +904,9 @@ public class JavadocUtil {}}
{{             for (JarEntry jarEntry = jarStream.getNextJarEntry();}}
{{                     jarEntry != null;}}
{{                     jarEntry = jarStream.getNextJarEntry()) {}}
{{+                if ("module-info.class".equals(jarEntry.getName())) {}}
{{+                    continue;}}
{{+                }}}
{{                 Matcher matcher = pattern.matcher(jarEntry.getName());}}
{{                 if (matcher.matches()) {}}
{{                     String version = matcher.group("v");}}

 


> Taglet autodetection fails when taglets JAR includes a module-info.class
> 
>
> Key: MJAVADOC-794
> URL: https://issues.apache.org/jira/browse/MJAVADOC-794
> Project: Maven Javadoc Plugin
>  Issue Type: Bug
>Affects Versions: 3.6.3
>Reporter: Curtis Rueden
>Priority: Major
>
> Due to a bug in the maven-javadoc-plugin, the following warning gets emitted 
> when a JPMS-modularized artifact containing taglets is included in the 
> javadoc build via a `` tag:
> {{  [WARNING] Unable to auto-detect Taglet class names from}}
> {{  '/path/to/jar.jar'. Try to specify them with .}}
> Running with {{mvn -X}} shows the underlying cause:
> {{  NoClassDefFoundError: module-info is not a}}
> {{  class because access_flag ACC_MODULE is set}}
> Removing the {{module-info.java}} from the component avoids the problem.
> The following patch fixes the problem as of {{{}ded56a90{}}}:
> {{diff --git 
> a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java 
> b/src/main/java/org/apache/maven/plugins/ja>}}
> {{index 835d6332..6e29eadf 100644}}
> {{--- a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java}}
> {{+++ b/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java}}
> {{@@ -904,6 +904,9 @@ public class JavadocUtil {}}
> {{             for (JarEntry jarEntry = jarStream.getNextJarEntry();}}
> {{                     jarEntry != null;}}
> {{                     jarEntry = jarStream.getNextJarEntry()) {}}
> {{+                if ("module-info.class".equals(jarEntry.getName())) {}}
> {{+                    continue;}}
> {{+                }}}
> {{                 Matcher matcher = pattern.matcher(jarEntry.getName());}}
> {{                 if (matcher.matches()) {}}
> {{            

[jira] [Updated] (MJAVADOC-794) Taglet autodetection fails when taglets JAR includes a module-info.class

2024-05-22 Thread Curtis Rueden (Jira)


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

Curtis Rueden updated MJAVADOC-794:
---
Description: 
Due to a bug in the maven-javadoc-plugin, the following warning gets emitted 
with a JPMS-modularized artifact containing taglets is included in the javadoc 
build via a `` tag:

{{  [WARNING] Unable to auto-detect Taglet class names from}}
{{  '/path/to/jar.jar'. Try to specify them with .}}

Running with `mvn -X` shows the underlying cause:

{{  NoClassDefFoundError: module-info is not a}}
{{  class because access_flag ACC_MODULE is set}}

Removing the {{module-info.java}} from the component avoids the problem.

The following patch fixes the problem as of {{{}ded56a90{}}}:

{{diff --git a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java 
b/src/main/java/org/apache/maven/plugins/ja>}}
{{index 835d6332..6e29eadf 100644}}
{{--- a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java}}
{{+++ b/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java}}
{{@@ -904,6 +904,9 @@ public class JavadocUtil {}}
{{             for (JarEntry jarEntry = jarStream.getNextJarEntry();}}
{{                     jarEntry != null;}}
{{                     jarEntry = jarStream.getNextJarEntry()) {}}
{{+                if ("module-info.class".equals(jarEntry.getName())) {}}
{{+                    continue;}}
{{+                }}}
{{                 Matcher matcher = pattern.matcher(jarEntry.getName());}}
{{                 if (matcher.matches()) {}}
{{                     String version = matcher.group("v");}}

 

  was:
Due to a bug in the maven-javadoc-plugin, the following warning gets
emitted with the scijava-taglets artifact included in the javadoc build:

  [WARNING] Unable to auto-detect Taglet class names from
  '/path/to/jar.jar'. Try to specify them with .

Running with `mvn -X` shows the underlying cause:

  NoClassDefFoundError: module-info is not a
  class because access_flag ACC_MODULE is set

Removing scijava-taglets's module-info.java avoids the problem.


> Taglet autodetection fails when taglets JAR includes a module-info.class
> 
>
> Key: MJAVADOC-794
> URL: https://issues.apache.org/jira/browse/MJAVADOC-794
> Project: Maven Javadoc Plugin
>  Issue Type: Bug
>Affects Versions: 3.6.3
>Reporter: Curtis Rueden
>Priority: Major
>
> Due to a bug in the maven-javadoc-plugin, the following warning gets emitted 
> with a JPMS-modularized artifact containing taglets is included in the 
> javadoc build via a `` tag:
> {{  [WARNING] Unable to auto-detect Taglet class names from}}
> {{  '/path/to/jar.jar'. Try to specify them with .}}
> Running with `mvn -X` shows the underlying cause:
> {{  NoClassDefFoundError: module-info is not a}}
> {{  class because access_flag ACC_MODULE is set}}
> Removing the {{module-info.java}} from the component avoids the problem.
> The following patch fixes the problem as of {{{}ded56a90{}}}:
> {{diff --git 
> a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java 
> b/src/main/java/org/apache/maven/plugins/ja>}}
> {{index 835d6332..6e29eadf 100644}}
> {{--- a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java}}
> {{+++ b/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java}}
> {{@@ -904,6 +904,9 @@ public class JavadocUtil {}}
> {{             for (JarEntry jarEntry = jarStream.getNextJarEntry();}}
> {{                     jarEntry != null;}}
> {{                     jarEntry = jarStream.getNextJarEntry()) {}}
> {{+                if ("module-info.class".equals(jarEntry.getName())) {}}
> {{+                    continue;}}
> {{+                }}}
> {{                 Matcher matcher = pattern.matcher(jarEntry.getName());}}
> {{                 if (matcher.matches()) {}}
> {{                     String version = matcher.group("v");}}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (MJAVADOC-794) Taglet autodetection fails when taglets JAR includes a module-info.class

2024-05-22 Thread Curtis Rueden (Jira)


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

Curtis Rueden updated MJAVADOC-794:
---
Affects Version/s: 3.6.3

> Taglet autodetection fails when taglets JAR includes a module-info.class
> 
>
> Key: MJAVADOC-794
> URL: https://issues.apache.org/jira/browse/MJAVADOC-794
> Project: Maven Javadoc Plugin
>  Issue Type: Bug
>Affects Versions: 3.6.3
>Reporter: Curtis Rueden
>Priority: Major
>
> Due to a bug in the maven-javadoc-plugin, the following warning gets
> emitted with the scijava-taglets artifact included in the javadoc build:
>   [WARNING] Unable to auto-detect Taglet class names from
>   '/path/to/jar.jar'. Try to specify them with .
> Running with `mvn -X` shows the underlying cause:
>   NoClassDefFoundError: module-info is not a
>   class because access_flag ACC_MODULE is set
> Removing scijava-taglets's module-info.java avoids the problem.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (MJAVADOC-794) Taglet autodetection fails when taglets JAR includes a module-info.class

2024-05-22 Thread Curtis Rueden (Jira)


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

Curtis Rueden updated MJAVADOC-794:
---
Description: 
Due to a bug in the maven-javadoc-plugin, the following warning gets
emitted with the scijava-taglets artifact included in the javadoc build:

  [WARNING] Unable to auto-detect Taglet class names from
  '/path/to/jar.jar'. Try to specify them with .

Running with `mvn -X` shows the underlying cause:

  NoClassDefFoundError: module-info is not a
  class because access_flag ACC_MODULE is set

Removing scijava-taglets's module-info.java avoids the problem.

> Taglet autodetection fails when taglets JAR includes a module-info.class
> 
>
> Key: MJAVADOC-794
> URL: https://issues.apache.org/jira/browse/MJAVADOC-794
> Project: Maven Javadoc Plugin
>  Issue Type: Bug
>Reporter: Curtis Rueden
>Priority: Major
>
> Due to a bug in the maven-javadoc-plugin, the following warning gets
> emitted with the scijava-taglets artifact included in the javadoc build:
>   [WARNING] Unable to auto-detect Taglet class names from
>   '/path/to/jar.jar'. Try to specify them with .
> Running with `mvn -X` shows the underlying cause:
>   NoClassDefFoundError: module-info is not a
>   class because access_flag ACC_MODULE is set
> Removing scijava-taglets's module-info.java avoids the problem.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (MJAVADOC-794) Taglet autodetection fails when taglets JAR includes a module-info.class

2024-05-22 Thread Curtis Rueden (Jira)
Curtis Rueden created MJAVADOC-794:
--

 Summary: Taglet autodetection fails when taglets JAR includes a 
module-info.class
 Key: MJAVADOC-794
 URL: https://issues.apache.org/jira/browse/MJAVADOC-794
 Project: Maven Javadoc Plugin
  Issue Type: Bug
Reporter: Curtis Rueden






--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MDEP-390) org.apache.maven.plugins:maven-dependency-plugin:unpack to support remoteRepositories

2022-10-26 Thread Curtis Rueden (Jira)


[ 
https://issues.apache.org/jira/browse/MDEP-390?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17624770#comment-17624770
 ] 

Curtis Rueden commented on MDEP-390:


This is still an issue:



{noformat}
$ mvn -v
Maven home: /usr/local/Cellar/maven/3.8.6/libexec
Java version: 1.8.0_322, vendor: Azul Systems, Inc., runtime: 
/Users/curtis/Java/macos/zulu-fx-8u322/zulu-8.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.16", arch: "x86_64", family: "mac"

$ mvn dependency:get \

-DremoteRepositories=scijava.publichttps://maven.scijava.org/content/groups/public
 \
-Dartifact="org.scijava:scijava-cache:0.1.2"
[INFO] Scanning for projects...
[INFO]
[INFO] --< org.apache.maven:standalone-pom >---
[INFO] Building Maven Stub Project (No POM) 1
[INFO] [ pom ]-
[INFO]
[INFO] --- maven-dependency-plugin:2.8:get (default-cli) @ standalone-pom ---
[INFO] Resolving org.scijava:scijava-cache:jar:0.1.2 with transitive 
dependencies
Downloading from central: 
https://repo.maven.apache.org/maven2/org/scijava/scijava-cache/0.1.2/scijava-cache-0.1.2.pom
Downloading from scijava.public: 
https://maven.scijava.org/content/groups/public/org/scijava/scijava-cache/0.1.2/scijava-cache-0.1.2.pom
Downloaded from scijava.public: 
https://maven.scijava.org/content/groups/public/org/scijava/scijava-cache/0.1.2/scijava-cache-0.1.2.pom
 (3.1 kB at 8.6 kB/s)
Downloading from central: 
https://repo.maven.apache.org/maven2/org/scijava/scijava-cache/0.1.2/scijava-cache-0.1.2.jar
Downloading from scijava.public: 
https://maven.scijava.org/content/groups/public/org/scijava/scijava-cache/0.1.2/scijava-cache-0.1.2.jar
Downloaded from scijava.public: 
https://maven.scijava.org/content/groups/public/org/scijava/scijava-cache/0.1.2/scijava-cache-0.1.2.jar
 (4.1 kB at 255 kB/s)
[INFO] 
[INFO] BUILD SUCCESS
[INFO] 
[INFO] Total time:  1.590 s
[INFO] Finished at: 2022-10-26T16:40:42-05:00
[INFO] 

$ rm -rf ~/.m2/repository/org/scijava/scijava-cache
$ mvn dependency:unpack \

-DremoteRepositories=scijava.publichttps://maven.scijava.org/content/groups/public
 \
-Dartifact="org.scijava:scijava-cache:0.1.2" \
-DoutputDirectory=.
[INFO] Scanning for projects...
[INFO]
[INFO] --< org.apache.maven:standalone-pom >---
[INFO] Building Maven Stub Project (No POM) 1
[INFO] [ pom ]-
[INFO]
[INFO] --- maven-dependency-plugin:2.8:unpack (default-cli) @ standalone-pom ---
[INFO] Configured Artifact: org.scijava:scijava-cache:0.1.2:jar
Downloading from central: 
https://repo.maven.apache.org/maven2/org/scijava/scijava-cache/0.1.2/scijava-cache-0.1.2.jar
[INFO] 
[INFO] BUILD FAILURE
[INFO] 
[INFO] Total time:  1.130 s
[INFO] Finished at: 2022-10-26T16:40:21-05:00
[INFO] 
[ERROR] Failed to execute goal 
org.apache.maven.plugins:maven-dependency-plugin:2.8:unpack (default-cli) on 
project standalone-pom: Unable to find artifact.: Could not find artifact 
org.scijava:scijava-cache:jar:0.1.2 in central 
(https://repo.maven.apache.org/maven2)
...
{noformat}

Happens also with the {{copy}} mojo.

> org.apache.maven.plugins:maven-dependency-plugin:unpack to support 
> remoteRepositories
> -
>
> Key: MDEP-390
> URL: https://issues.apache.org/jira/browse/MDEP-390
> Project: Maven Dependency Plugin
>  Issue Type: Improvement
>  Components: unpack
>Affects Versions: 2.5.1
>Reporter: Mickael Istria
>Priority: Major
>
> As a user, I'd like to download a Maven artifact from command-line and get it 
> unzipped.
> In order to use the maven-depdenceny-plugin:goal as the ultimate command-line 
> client to download a maven artifact (not necessarly in the context of a 
> project), it would be useful to add to it an "unpack" parameter that would 
> allow to unpack the just-downloaded stuff.
> When in comes to automating download+unzip of an artifact in CI:
> Currently, one has to add a Shell or Ant or Groovy script to unzip, after 
> using "mvn org.apache.maven.plugins:maven-dependency-plugin:2.5.1:get 
> -Dartifact=blah:blah:1.0 -DremoteRepositories=http://somewhere;. It's not 
> very convenient as this requires usage of another Ant or Groovy file, or 
> usage 

[jira] [Commented] (WAGON-616) Deprecate Wagon SSH Provider

2022-04-15 Thread Curtis Rueden (Jira)


[ 
https://issues.apache.org/jira/browse/WAGON-616?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17522858#comment-17522858
 ] 

Curtis Rueden commented on WAGON-616:
-

Ah, thank you, I understand now that sshexe and scpexe mean wagon-ssh-external, 
as explained in the [Deployment of artifacts in an external SSH 
command|https://maven.apache.org/plugins/maven-deploy-plugin/examples/deploy-ssh-external.html]
 guide. Thank you for your patience, and the helpful links!

I have now updated [my SO answer|https://stackoverflow.com/a/14404990/1207769] 
to explain the current situation, as well as mentioning Apache Mina SSHD as a 
potential way forward in the future. Please feel free to edit the answer if I 
got anything wrong, and/or correct me here on this comment thread.

> Deprecate Wagon SSH Provider
> 
>
> Key: WAGON-616
> URL: https://issues.apache.org/jira/browse/WAGON-616
> Project: Maven Wagon
>  Issue Type: Task
>  Components: wagon-ssh
>Reporter: Michael Osipov
>Assignee: Michael Osipov
>Priority: Major
> Fix For: 3.5.0
>
>
> This provider has serious implications and implementation issues:
> - JSch http://www.jcraft.com/jsch/ failed to provide a source repository, 
> accept contributions and address issues.
> - Too complex and low level.
> - It is disputed whether this is open source at all.
> The sshexe ({{scp}}) provider remains until someone wants to write something 
> on top of Apache MINA SSHD.
> We are deprecating this provider to be removed in 4.0.0.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (WAGON-616) Deprecate Wagon SSH Provider

2022-03-31 Thread Curtis Rueden (Jira)


[ 
https://issues.apache.org/jira/browse/WAGON-616?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17515446#comment-17515446
 ] 

Curtis Rueden commented on WAGON-616:
-

[~michael-o] Thank you very much for your reply! I deeply sympathize with the 
burdens of maintainership, and I thank you from the bottom of my heart for your 
service to the open source community. I hope my message did not come across as 
accusatory or critical. I just honestly do not understand what the currently 
recommended approach is for using wagon with SSH/SCP right now. What is "the 
sshexe (scp) provider"? I tried to find it, but failed. Sorry if I'm being dumb 
here, but I am trying to maintain [my SO answer about 
wagon+SCP|https://stackoverflow.com/a/14404990/1207769], and I do not know what 
to try next. Given Maven's sparse documentation, I think SO ends up helping a 
lot of people figure out how to actually do stuff with it in practice, and I'm 
trying to be part of that solution. I just need a little guidance: a pointer to 
documentation or example somewhere?

> Deprecate Wagon SSH Provider
> 
>
> Key: WAGON-616
> URL: https://issues.apache.org/jira/browse/WAGON-616
> Project: Maven Wagon
>  Issue Type: Task
>  Components: wagon-ssh
>Reporter: Michael Osipov
>Assignee: Michael Osipov
>Priority: Major
> Fix For: 3.5.0
>
>
> This provider has serious implications and implementation issues:
> - JSch http://www.jcraft.com/jsch/ failed to provide a source repository, 
> accept contributions and address issues.
> - Too complex and low level.
> - It is disputed whether this is open source at all.
> The sshexe ({{scp}}) provider remains until someone wants to write something 
> on top of Apache MINA SSHD.
> We are deprecating this provider to be removed in 4.0.0.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (WAGON-616) Deprecate Wagon SSH Provider

2022-02-19 Thread Curtis Rueden (Jira)


[ 
https://issues.apache.org/jira/browse/WAGON-616?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17495080#comment-17495080
 ] 

Curtis Rueden commented on WAGON-616:
-

The current status leaves the community rather lost in how to proceed. Comments 
from the maintainers would be appreciated regarding:
 * What the current recommended best practice is for transferring Maven 
artifacts via SSH/SCP. For example: what is "the sshexe (scp) provider"? I 
couldn't find it after a few web searches. Is there a guide anywhere on how to 
use it?
 * What about the JSch fork described in WAGON-613? Can this wagon provider not 
simply switch to the fork, if the upstream JSch is concerning?
 * Can you post links to discussions, e.g. mailing list threads in archives, 
cluing us into the rationale behind this decision, and hopefully more details 
on how to better move forward?

> Deprecate Wagon SSH Provider
> 
>
> Key: WAGON-616
> URL: https://issues.apache.org/jira/browse/WAGON-616
> Project: Maven Wagon
>  Issue Type: Task
>  Components: wagon-ssh
>Reporter: Michael Osipov
>Assignee: Michael Osipov
>Priority: Major
> Fix For: 3.5.0
>
>
> This provider has serious implications and implementation issues:
> - JSch http://www.jcraft.com/jsch/ failed to provide a source repository, 
> accept contributions and address issues.
> - Too complex and low level.
> - It is disputed whether this is open source at all.
> The sshexe ({{scp}}) provider remains until someone wants to write something 
> on top of Apache MINA SSHD.
> We are deprecating this provider to be removed in 4.0.0.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Comment Edited] (MNG-7343) Document a working migration path away from LATEST and RELEASE metaversions

2021-12-29 Thread Curtis Rueden (Jira)


[ 
https://issues.apache.org/jira/browse/MNG-7343?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17466593#comment-17466593
 ] 

Curtis Rueden edited comment on MNG-7343 at 12/29/21, 8:57 PM:
---

> Can you share concrete other examples, please?

Sure! Here is one use case:

[https://github.com/scijava/jgo#readme]

The jgo tool lets you launch Java code from remote Maven artifacts. For 
example, you can run:

    jgo org.python:jython-standalone

to launch the latest release version of the Jython REPL. Or:

    jgo ome:bio-formats-tools:loci.formats.tools.ImageConverter

to launch the latest release version of the 
[Bio-Formats|https://www.openmicroscopy.org/bio-formats/] image conversion 
tool. Or:

    jgo com.github.kwart.jd:jd-cli

for the latest release version of the 
[jd-cli|https://github.com/intoolswetrust/jd-cli] decompiler. Or:

    jgo sc.fiji:fiji

for the latest release version of [Fiji|https://fiji.sc/].

All of the above examples implicitly use the RELEASE metaversion. While the 
user can also specify an explicit version, often what they want is the latest 
release, and jgo using RELEASE by default is very convenient. It would be 
possible to replicate this behavior by digging through remote 
maven-metadata.xml files, or using MojoHaus's versions-maven-plugin, but this 
would add extra code and complexity, extra remote negotiation with every jgo 
execution, and corresponding potential for extra bugs.

> And wan you precise which Jira issue is causing you that reaction?

I'm sorry, I don't understand the question. Are you asking if there is a Jira 
issue corresponding to my statement: "in my tests, specifying a version range 
like {{[0,)}} causes Maven to download POMs at a bunch of (maybe all?) versions 
of an artifact, whereas {{LATEST}} and {{RELEASE}} do not trigger en masse 
downloading."? Unfortunately, there is not a corresponding issue, as far as I 
know. I could file one if it would be helpful.


was (Author: ctrueden):
> Can you share concrete other examples, please?

Sure! Here is one use case:

[https://github.com/scijava/jgo#readme]

The jgo tool lets you launch Java code from remote Maven artifacts. For 
example, you can run:

    jgo org.python:jython-standalone

to launch the latest release version of the Jython REPL. Or:

    jgo ome:bio-formats-tools:loci.formats.tools.ImageConverter

to launch the latest release version of the 
[Bio-Formats|https://www.openmicroscopy.org/bio-formats/] image conversion 
tool. Or:

    jgo com.github.kwart.jd:jd-cli

for the latest release version of the 
[jd-cli|https://github.com/intoolswetrust/jd-cli] decompiler. Or:

    jgo sc.fiji:fiji

for the latest release version of [Fiji|https://fiji.sc/].

All of the above examples implicitly use the `RELEASE` metaversion. While the 
user can also specify an explicit version, often what they want is the latest 
release, and jgo using `RELEASE` by default is very convenient. It would be 
possible to replicate this behavior by digging through remote 
`maven-metadata.xml` files, or using MojoHaus's versions-maven-plugin, but this 
would add extra code and complexity, extra remote negotiation with every jgo 
execution, and corresponding potential for extra bugs.

> And wan you precise which Jira issue is causing you that reaction?

I'm sorry, I don't understand the question. Are you asking if there is a Jira 
issue corresponding to my statement: "in my tests, specifying a version range 
like {{[0,)}} causes Maven to download POMs at a bunch of (maybe all?) versions 
of an artifact, whereas {{LATEST}} and {{RELEASE}} do not trigger en masse 
downloading."? Unfortunately, there is not a corresponding issue, as far as I 
know. I could file one if it would be helpful.

> Document a working migration path away from LATEST and RELEASE metaversions
> ---
>
> Key: MNG-7343
> URL: https://issues.apache.org/jira/browse/MNG-7343
> Project: Maven
>  Issue Type: Bug
>Reporter: Curtis Rueden
>Priority: Major
>
> I use LATEST and RELEASE a lot for various purposes, such as CLI tooling that 
> automatically synthesizes POMs to perform various tasks. I personally feel 
> deprecating these metaversions was a mistake—I find them incredibly useful, 
> with the understanding that I would never use them for production 
> reproducible builds. But I do understand the rationale: we don't want to 
> encourage anyone to use these in a way that harms the stability of dependency 
> resolution, reproducibility-wise. So I'm OK with it, as long as there is a 
> migration path forward for these sorts of use cases.
> But what is that path? I cannot find a way to replicate either of the 
> metaversion behaviors using version ranges. There are problems with version 
> ranges (MNG-3092, MNG-6049) 

[jira] [Commented] (MNG-7343) Document a working migration path away from LATEST and RELEASE metaversions

2021-12-29 Thread Curtis Rueden (Jira)


[ 
https://issues.apache.org/jira/browse/MNG-7343?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17466593#comment-17466593
 ] 

Curtis Rueden commented on MNG-7343:


> Can you share concrete other examples, please?

Sure! Here is one use case:

[https://github.com/scijava/jgo#readme]

The jgo tool lets you launch Java code from remote Maven artifacts. For 
example, you can run:

    jgo org.python:jython-standalone

to launch the latest release version of the Jython REPL. Or:

    jgo ome:bio-formats-tools:loci.formats.tools.ImageConverter

to launch the latest release version of the 
[Bio-Formats|https://www.openmicroscopy.org/bio-formats/] image conversion 
tool. Or:

    jgo com.github.kwart.jd:jd-cli

for the latest release version of the 
[jd-cli|https://github.com/intoolswetrust/jd-cli] decompiler. Or:

    jgo sc.fiji:fiji

for the latest release version of [Fiji|https://fiji.sc/].

All of the above examples implicitly use the `RELEASE` metaversion. While the 
user can also specify an explicit version, often what they want is the latest 
release, and jgo using `RELEASE` by default is very convenient. It would be 
possible to replicate this behavior by digging through remote 
`maven-metadata.xml` files, or using MojoHaus's versions-maven-plugin, but this 
would add extra code and complexity, extra remote negotiation with every jgo 
execution, and corresponding potential for extra bugs.

> And wan you precise which Jira issue is causing you that reaction?

I'm sorry, I don't understand the question. Are you asking if there is a Jira 
issue corresponding to my statement: "in my tests, specifying a version range 
like {{[0,)}} causes Maven to download POMs at a bunch of (maybe all?) versions 
of an artifact, whereas {{LATEST}} and {{RELEASE}} do not trigger en masse 
downloading."? Unfortunately, there is not a corresponding issue, as far as I 
know. I could file one if it would be helpful.

> Document a working migration path away from LATEST and RELEASE metaversions
> ---
>
> Key: MNG-7343
> URL: https://issues.apache.org/jira/browse/MNG-7343
> Project: Maven
>  Issue Type: Bug
>Reporter: Curtis Rueden
>Priority: Major
>
> I use LATEST and RELEASE a lot for various purposes, such as CLI tooling that 
> automatically synthesizes POMs to perform various tasks. I personally feel 
> deprecating these metaversions was a mistake—I find them incredibly useful, 
> with the understanding that I would never use them for production 
> reproducible builds. But I do understand the rationale: we don't want to 
> encourage anyone to use these in a way that harms the stability of dependency 
> resolution, reproducibility-wise. So I'm OK with it, as long as there is a 
> migration path forward for these sorts of use cases.
> But what is that path? I cannot find a way to replicate either of the 
> metaversion behaviors using version ranges. There are problems with version 
> ranges (MNG-3092, MNG-6049) preventing them from being used as a replacement 
> for LATEST or RELEASE. Furthermore, in my tests, specifying a version range 
> like {{[0,)}} causes Maven to download POMs at a bunch of (maybe all?) 
> versions of an artifact, whereas {{LATEST}} and {{RELEASE}} do not trigger en 
> masse downloading.l
> Is there a non-deprecated syntax that has equivalent behavior? As things 
> stand, I am concerned that support for these metaversions is going to 
> disappear in a future version of Maven without a feasible migration path 
> forward.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (MNG-7343) Document a working migration path away from LATEST and RELEASE metaversions

2021-11-23 Thread Curtis Rueden (Jira)


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

Curtis Rueden updated MNG-7343:
---
Description: 
I use LATEST and RELEASE a lot for various purposes, such as CLI tooling that 
automatically synthesizes POMs to perform various tasks. I personally feel 
deprecating these metaversions was a mistake—I find them incredibly useful, 
with the understanding that I would never use them for production reproducible 
builds. But I do understand the rationale: we don't want to encourage anyone to 
use these in a way that harms the stability of dependency resolution, 
reproducibility-wise. So I'm OK with it, as long as there is a migration path 
forward for these sorts of use cases.

But what is that path? I cannot find a way to replicate either of the 
metaversion behaviors using version ranges. There are problems with version 
ranges (MNG-3092, MNG-6049) preventing them from being used as a replacement 
for LATEST or RELEASE. Furthermore, in my tests, specifying a version range 
like {{[0,)}} causes Maven to download POMs at a bunch of (maybe all?) versions 
of an artifact, whereas {{LATEST}} and {{RELEASE}} do not trigger en masse 
downloading.l

Is there a non-deprecated syntax that has equivalent behavior? As things stand, 
I am concerned that support for these metaversions is going to disappear in a 
future version of Maven without a feasible migration path forward.

> Document a working migration path away from LATEST and RELEASE metaversions
> ---
>
> Key: MNG-7343
> URL: https://issues.apache.org/jira/browse/MNG-7343
> Project: Maven
>  Issue Type: Bug
>Reporter: Curtis Rueden
>Priority: Major
>
> I use LATEST and RELEASE a lot for various purposes, such as CLI tooling that 
> automatically synthesizes POMs to perform various tasks. I personally feel 
> deprecating these metaversions was a mistake—I find them incredibly useful, 
> with the understanding that I would never use them for production 
> reproducible builds. But I do understand the rationale: we don't want to 
> encourage anyone to use these in a way that harms the stability of dependency 
> resolution, reproducibility-wise. So I'm OK with it, as long as there is a 
> migration path forward for these sorts of use cases.
> But what is that path? I cannot find a way to replicate either of the 
> metaversion behaviors using version ranges. There are problems with version 
> ranges (MNG-3092, MNG-6049) preventing them from being used as a replacement 
> for LATEST or RELEASE. Furthermore, in my tests, specifying a version range 
> like {{[0,)}} causes Maven to download POMs at a bunch of (maybe all?) 
> versions of an artifact, whereas {{LATEST}} and {{RELEASE}} do not trigger en 
> masse downloading.l
> Is there a non-deprecated syntax that has equivalent behavior? As things 
> stand, I am concerned that support for these metaversions is going to 
> disappear in a future version of Maven without a feasible migration path 
> forward.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (MNG-7343) Document a working migration path away from LATEST and RELEASE metaversions

2021-11-23 Thread Curtis Rueden (Jira)
Curtis Rueden created MNG-7343:
--

 Summary: Document a working migration path away from LATEST and 
RELEASE metaversions
 Key: MNG-7343
 URL: https://issues.apache.org/jira/browse/MNG-7343
 Project: Maven
  Issue Type: Bug
Reporter: Curtis Rueden






--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Comment Edited] (MJAVADOC-595) javadoc not found using java.home

2020-12-15 Thread Curtis Rueden (Jira)


[ 
https://issues.apache.org/jira/browse/MJAVADOC-595?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17249923#comment-17249923
 ] 

Curtis Rueden edited comment on MJAVADOC-595 at 12/15/20, 8:40 PM:
---

It looks like this bug was fixed by:

[https://github.com/apache/maven-javadoc-plugin/commit/4bf64b02]

So now we just need a 3.2.1 release, no?

Relatedly: this bug and MJAVADOC-650 are the same problem, right?


was (Author: ctrueden):
It looks like this bug was fixed by:

https://github.com/apache/maven-javadoc-plugin/commit/4bf64b02

So now we just need a 3.2.1 release, no?

> javadoc not found using java.home 
> --
>
> Key: MJAVADOC-595
> URL: https://issues.apache.org/jira/browse/MJAVADOC-595
> Project: Maven Javadoc Plugin
>  Issue Type: Bug
>Affects Versions: 3.1.0
>Reporter: Oliver Lüttin
>Priority: Major
>
> When searching for the javadoc executable the plugin looks in 
> java.home/../bin.
> This doesn't work with ubuntu 18.10 and java-11-openjdk.
> Instead it should look at java.hom/bin where the javadoc executable is 
> located.
> Here's the code snippet from AbstactJavadocMojo:
> {code:java}
> 3720 private String getJavadocExecutable()
> 3721  throws IOException
> 3722  {
> ...
> 3768 else
> 3769  {
> 3770  javadocExe =
> 3771  new File( SystemUtils.getJavaHome() + File.separator + ".." +  
> File.separator + "bin", javadocCommand );
> 3772  }
> {code}
>  
> As workaround one could configure the executable in the pom.xml:
>  
> {code:java}
> 
> ${java.home}/bin/javadoc
> 
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (MJAVADOC-595) javadoc not found using java.home

2020-12-15 Thread Curtis Rueden (Jira)


[ 
https://issues.apache.org/jira/browse/MJAVADOC-595?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17249923#comment-17249923
 ] 

Curtis Rueden commented on MJAVADOC-595:


It looks like this bug was fixed by:

https://github.com/apache/maven-javadoc-plugin/commit/4bf64b02

So now we just need a 3.2.1 release, no?

> javadoc not found using java.home 
> --
>
> Key: MJAVADOC-595
> URL: https://issues.apache.org/jira/browse/MJAVADOC-595
> Project: Maven Javadoc Plugin
>  Issue Type: Bug
>Affects Versions: 3.1.0
>Reporter: Oliver Lüttin
>Priority: Major
>
> When searching for the javadoc executable the plugin looks in 
> java.home/../bin.
> This doesn't work with ubuntu 18.10 and java-11-openjdk.
> Instead it should look at java.hom/bin where the javadoc executable is 
> located.
> Here's the code snippet from AbstactJavadocMojo:
> {code:java}
> 3720 private String getJavadocExecutable()
> 3721  throws IOException
> 3722  {
> ...
> 3768 else
> 3769  {
> 3770  javadocExe =
> 3771  new File( SystemUtils.getJavaHome() + File.separator + ".." +  
> File.separator + "bin", javadocCommand );
> 3772  }
> {code}
>  
> As workaround one could configure the executable in the pom.xml:
>  
> {code:java}
> 
> ${java.home}/bin/javadoc
> 
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (MNG-6141) Dependency management overrides are not transitive and should be considered an anti-pattern.

2017-11-27 Thread Curtis Rueden (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6141?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16267225#comment-16267225
 ] 

Curtis Rueden commented on MNG-6141:


It would be a shame indeed for that work to be lost. But my understanding is 
that these patches were going to be cherry-picked into future releases, no?

> Dependency management overrides are not transitive and should be considered 
> an anti-pattern.
> 
>
> Key: MNG-6141
> URL: https://issues.apache.org/jira/browse/MNG-6141
> Project: Maven
>  Issue Type: Bug
>Reporter: Christian Schulte
>Priority: Critical
> Attachments: MNG-6141-3.zip, MNG-6141.zip
>
>
> Overriding the dependency management in a module's {{}} 
> section, the overridden value will not be preserved transitively. It makes no 
> sense to be able to override the dependency management in a module if that is 
> only effective in that module and nowhere else. Overriding the dependency 
> management from inside a {{}} element should be considered an 
> anti-pattern. Maven should provide a warning when it is used. During the 
> development of Maven 3.4, there have been quite a few discussions on dev@ 
> about build issues which were all caused by overriding the dependency 
> management that way without noticing this is not supported transitively.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Comment Edited] (MNG-6141) Dependency management overrides are not transitive and should be considered an anti-pattern.

2017-11-27 Thread Curtis Rueden (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6141?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16267225#comment-16267225
 ] 

Curtis Rueden edited comment on MNG-6141 at 11/27/17 6:41 PM:
--

It would be a shame indeed for that work to be lost. But my understanding was 
that these patches were going to be cherry-picked into future releases, no?


was (Author: ctrueden):
It would be a shame indeed for that work to be lost. But my understanding is 
that these patches were going to be cherry-picked into future releases, no?

> Dependency management overrides are not transitive and should be considered 
> an anti-pattern.
> 
>
> Key: MNG-6141
> URL: https://issues.apache.org/jira/browse/MNG-6141
> Project: Maven
>  Issue Type: Bug
>Reporter: Christian Schulte
>Priority: Critical
> Attachments: MNG-6141-3.zip, MNG-6141.zip
>
>
> Overriding the dependency management in a module's {{}} 
> section, the overridden value will not be preserved transitively. It makes no 
> sense to be able to override the dependency management in a module if that is 
> only effective in that module and nowhere else. Overriding the dependency 
> management from inside a {{}} element should be considered an 
> anti-pattern. Maven should provide a warning when it is used. During the 
> development of Maven 3.4, there have been quite a few discussions on dev@ 
> about build issues which were all caused by overriding the dependency 
> management that way without noticing this is not supported transitively.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (MNG-6141) Dependency management overrides are not transitive and should be considered an anti-pattern.

2017-10-21 Thread Curtis Rueden (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6141?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16214185#comment-16214185
 ] 

Curtis Rueden commented on MNG-6141:


Hmm, I guess the issue I stumbled over is something different then? Sorry for 
the noise.

> Dependency management overrides are not transitive and should be considered 
> an anti-pattern.
> 
>
> Key: MNG-6141
> URL: https://issues.apache.org/jira/browse/MNG-6141
> Project: Maven
>  Issue Type: Bug
>Reporter: Christian Schulte
>Priority: Critical
> Attachments: MNG-6141.zip
>
>
> Overriding the dependency management in a module's {{}} 
> section, the overridden value will not be preserved transitively. It makes no 
> sense to be able to override the dependency management in a module if that is 
> only effective in that module and nowhere else. Overriding the dependency 
> management from inside a {{}} element should be considered an 
> anti-pattern. Maven should provide a warning when it is used. During the 
> development of Maven 3.4, there have been quite a few discussions on dev@ 
> about build issues which were all caused by overriding the dependency 
> management that way without noticing this is not supported transitively.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Comment Edited] (MNG-5761) Dependency management is not transitive.

2017-07-31 Thread Curtis Rueden (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-5761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16107492#comment-16107492
 ] 

Curtis Rueden edited comment on MNG-5761 at 7/31/17 4:01 PM:
-

I also ran into this issue, and posted [an MCVE 
gist|https://gist.github.com/ctrueden/d058330c8a3687317806ce8cc18332c3] 
illustrating it. In my view, if a library L believes it depends on component X 
at a particular version, projects depending on L should also inherit component 
X at that same version. See also [this SO 
post|https://stackoverflow.com/q/45041888/1207769].


was (Author: ctrueden):
I also ran into this issue, and posted [an MCVE 
gist|https://gist.github.com/ctrueden/d058330c8a3687317806ce8cc18332c3] 
illustrating it. In my view, if a library L believes it depends on component X 
at a particular version, project depending on L should also inherit component X 
at that same version. See also [this SO 
post|https://stackoverflow.com/q/45041888/1207769].

> Dependency management is not transitive.
> 
>
> Key: MNG-5761
> URL: https://issues.apache.org/jira/browse/MNG-5761
> Project: Maven
>  Issue Type: Bug
>  Components: Dependencies
>Affects Versions: 3.2.5
>Reporter: Jeff Schnitzer
>Priority: Critical
> Fix For: 3.6.0-candidate
>
> Attachments: MNG-5761.zip
>
>
> A detailed description of the issue is here:
> http://stackoverflow.com/questions/28312975/maven-dependencymanagement-version-ignored-in-transitive-dependencies
> The short of it is that maven appears to be using the wrong 
>  version in a transitive dependency.  There are two 
> relevant  sections in the build, one pulled in by guice 
> and one pulled in by gwizard-parent. These are the dependency paths from the 
> top:
> gwizard-example -> gwizard-config -> gwizard-parent
> gwizard-example -> gwizard-config -> guice -> guice-parent
> gwizard-parent's dependencyManagement specifies guava 18
> guice-parent's dependencyManagement specifies guava 16
> Guava 16 is winning. This seems highly undesirable, and in fact it breaks our 
> build. I would expect that in a version # fight, "closest to the top" should 
> win.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (MNG-6141) Dependency management overrides are not transitive and should be considered an anti-pattern.

2017-07-31 Thread Curtis Rueden (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6141?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16107495#comment-16107495
 ] 

Curtis Rueden commented on MNG-6141:


I also ran into this issue, and posted [an MCVE 
gist|https://gist.github.com/ctrueden/d058330c8a3687317806ce8cc18332c3] 
illustrating it. In my view, if a library L believes it depends on component X 
at a particular version, projects depending on L should also inherit component 
X at that same version. See also [this SO 
post|https://stackoverflow.com/q/45041888/1207769].

> Dependency management overrides are not transitive and should be considered 
> an anti-pattern.
> 
>
> Key: MNG-6141
> URL: https://issues.apache.org/jira/browse/MNG-6141
> Project: Maven
>  Issue Type: Bug
>Reporter: Christian Schulte
>Priority: Critical
> Attachments: MNG-6141.zip
>
>
> Overriding the dependency management in a module, the overridden value will 
> not be preserved transitively. It makes no sense to be able to override the 
> dependency management in a module if that is only effective in that module 
> and nowhere else. Overriding the dependency management should be considered 
> an anti-pattern. Maven should provide a warning when it is used. During the 
> development of Maven 3.4, there have been quite a few discussions on dev@ 
> about build issues which were all caused by overriding the dependency 
> management without noticing this is not supported transitively.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (MNG-5761) Dependency management is not transitive.

2017-07-31 Thread Curtis Rueden (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-5761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16107492#comment-16107492
 ] 

Curtis Rueden commented on MNG-5761:


I also ran into this issue, and posted [an MCVE 
gist|https://gist.github.com/ctrueden/d058330c8a3687317806ce8cc18332c3] 
illustrating it. In my view, if a library L believes it depends on component X 
at a particular version, project depending on L should also inherit component X 
at that same version. See also [this SO 
post|https://stackoverflow.com/q/45041888/1207769].

> Dependency management is not transitive.
> 
>
> Key: MNG-5761
> URL: https://issues.apache.org/jira/browse/MNG-5761
> Project: Maven
>  Issue Type: Bug
>  Components: Dependencies
>Affects Versions: 3.2.5
>Reporter: Jeff Schnitzer
>Priority: Critical
> Fix For: 3.6.0-candidate
>
> Attachments: MNG-5761.zip
>
>
> A detailed description of the issue is here:
> http://stackoverflow.com/questions/28312975/maven-dependencymanagement-version-ignored-in-transitive-dependencies
> The short of it is that maven appears to be using the wrong 
>  version in a transitive dependency.  There are two 
> relevant  sections in the build, one pulled in by guice 
> and one pulled in by gwizard-parent. These are the dependency paths from the 
> top:
> gwizard-example -> gwizard-config -> gwizard-parent
> gwizard-example -> gwizard-config -> guice -> guice-parent
> gwizard-parent's dependencyManagement specifies guava 18
> guice-parent's dependencyManagement specifies guava 16
> Guava 16 is winning. This seems highly undesirable, and in fact it breaks our 
> build. I would expect that in a version # fight, "closest to the top" should 
> win.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (MNG-5971) Imported dependencies should be available to inheritance processing

2016-08-12 Thread Curtis Rueden (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-5971?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15419236#comment-15419236
 ] 

Curtis Rueden commented on MNG-5971:


This change breaks backwards compatibility, and IMHO should be reverted.

h1. REAL-WORLD EXAMPLE

Consider the following project:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml

Amongst many other dependencies, this project has:
{code:xml}

ca.mcgill
Sholl_Analysis
runtime

{code}
This is defined in the parent sc.fiji:pom-fiji:24.1.0 here:

* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L830-L835
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L255-L256

{code:xml}


3.6.2

...




ca.mcgill
Sholl_Analysis
${Sholl_Analysis.version}
 


{code}
With Maven 3.3.9, we have:
{code}
  $ mvn dependency:list|grep Sholl
  [INFO]ca.mcgill:Sholl_Analysis:jar:3.6.2:runtime
{code}
But with Maven 3.4.0-20160806.181437-172, we get:
{code}
  $ mvn dependency:list|grep Sholl
  [INFO]ca.mcgill:Sholl_Analysis:jar:3.6.1:runtime
{code}
!!!

I believe this surprising behavior is caused by the fact that the toplevel fiji 
POM needs to also include other BOMs via import scope:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml#L49-L68

{code:xml}




sc.fiji
pom-bigdataviewer
${pom-bigdataviewer.version}
pom
import



sc.fiji
pom-trakem2
${pom-trakem2.version}
pom
import



{code}

The version of pom-bigdataviewer is 3.2.0:
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L135-L136

Which extends pom-fiji version 22.3.0 instead of 24.1.0:
* 
https://github.com/bigdataviewer/pom-bigdataviewer/blob/pom-bigdataviewer-3.2.0/pom.xml#L5-L9

And that version of pom-fiji defines Sholl_Analysis at 3.6.1 instead:
* https://github.com/fiji/pom-fiji/blob/pom-fiji-22.3.0/pom.xml#L261-L262

h1. GIST OF THE PROBLEM

So, with Maven 3.4.0, dependency management brought in from import scope is now 
trumping that brought in from the parent POM itself. This is problematic 
because:

* IMHO, it violates the Principle of Least Astonishment.
* It is now more complicated to compose together multiple "subtrees" of 
components into a final application which needs to inherit multiple BOMs from 
these subtrees.
* It is now not possible to override version properties _in the POM itself_ to 
trump the dependencyManagement versions.
* But strangely, you _can_ still override the version property on the CLI via 
-DSholl_Analysis.version=x.y.z. This seems inconsistent.

I understand and appreciate that I am naive of the deepest nuances of the Maven 
project model and how it gets synthesized. But:

# The above behavior will break all of my projects.
# I do not know how to restructure my components for Maven 3.4.0 to avoid this 
problem.

My vote would be to revert to the old behavior, which seems better to me. 
However, if this behavior really must be changed, I would suggest pushing it 
till Maven 4, since it will surely break a lot of existing builds.

If this change really goes through, then all previous releases of all of my 
projects will no longer build reproducibly with Maven 3.4.0+, since they will 
produce different dependency graphs.

Rather than breaking backwards compatibility of import scope by default, 
perhaps there could be a setting, or a different scope as Christian Schulte 
previously suggested.

See also this thread on the maven-users list:

* 
http://mail-archives.apache.org/mod_mbox/maven-users/201608.mbox/%3CCADN69yn-ffoEV6_Q24VXAcSKbdXrT6CL263ih-LvvEdoYmL4CA%40mail.gmail.com%3E

> Imported dependencies should be available to inheritance processing
> ---
>
> Key: MNG-5971
> URL: https://issues.apache.org/jira/browse/MNG-5971
> Project: Maven
>  Issue Type: Bug
>  Components: Dependencies
>Affects Versions: 3.3.3
>Reporter: Stephane Nicoll
>Assignee: Christian Schulte
>Priority: Trivial
>   

[jira] [Comment Edited] (MNG-6079) 3.4 regression: cannot override version of a dependencyManagement in a submodule any more

2016-08-12 Thread Curtis Rueden (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15419191#comment-15419191
 ] 

Curtis Rueden edited comment on MNG-6079 at 8/12/16 6:09 PM:
-

This change breaks backwards compatibility, and IMHO should be reverted.

h1. REAL-WORLD EXAMPLE

Consider the following project:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml

Amongst many other dependencies, this project has:
{code:xml}

ca.mcgill
Sholl_Analysis
runtime

{code}
This is defined in the parent sc.fiji:pom-fiji:24.1.0 here:

* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L830-L835
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L255-L256

{code:xml}


3.6.2

...




ca.mcgill
Sholl_Analysis
${Sholl_Analysis.version}
 


{code}
With Maven 3.3.9, we have:
{code}
  $ mvn dependency:list|grep Sholl
  [INFO]ca.mcgill:Sholl_Analysis:jar:3.6.2:runtime
{code}
But with Maven 3.4.0-20160806.181437-172, we get:
{code}
  $ mvn dependency:list|grep Sholl
  [INFO]ca.mcgill:Sholl_Analysis:jar:3.6.1:runtime
{code}
!!!

I believe this surprising behavior is caused by the fact that the toplevel fiji 
POM needs to also include other BOMs via import scope:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml#L49-L68

{code:xml}




sc.fiji
pom-bigdataviewer
${pom-bigdataviewer.version}
pom
import



sc.fiji
pom-trakem2
${pom-trakem2.version}
pom
import



{code}

The version of pom-bigdataviewer is 3.2.0:
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L135-L136

Which extends pom-fiji version 22.3.0 instead of 24.1.0:
* 
https://github.com/bigdataviewer/pom-bigdataviewer/blob/pom-bigdataviewer-3.2.0/pom.xml#L5-L9

And that version of pom-fiji defines Sholl_Analysis at 3.6.1 instead:
* https://github.com/fiji/pom-fiji/blob/pom-fiji-22.3.0/pom.xml#L261-L262

h1. GIST OF THE PROBLEM

So, with Maven 3.4.0, dependency management brought in from import scope is now 
trumping that brought in from the parent POM itself. This is problematic 
because:

* IMHO, it violates the Principle of Least Astonishment.
* It is now more complicated to compose together multiple "subtrees" of 
components into a final application which needs to inherit multiple BOMs from 
these subtrees.
* It is now not possible to override version properties _in the POM itself_ to 
trump the dependencyManagement versions.
* But strangely, you _can_ still override the version property on the CLI via 
-DSholl_Analysis.version=x.y.z. This seems inconsistent.

I understand and appreciate that I am naive of the deepest nuances of the Maven 
project model and how it gets synthesized. But:

# The above behavior will break all of my projects.
# I do not know how to restructure my components for Maven 3.4.0 to avoid this 
problem.

My vote would be to revert to the old behavior, which seems better to me. 
However, if this behavior really must be changed, I would suggest pushing it 
till Maven 4, since it will surely break a lot of existing builds.

If this change really goes through, then all previous releases of all of my 
projects will no longer build reproducibly with Maven 3.4.0+, since they will 
produce different dependency graphs.

Rather than breaking backwards compatibility of import scope by default, 
perhaps there could be a setting, or a different scope as Christian Schulte 
previously suggested.

See also this thread on the maven-users list:

* 
http://mail-archives.apache.org/mod_mbox/maven-users/201608.mbox/%3CCADN69yn-ffoEV6_Q24VXAcSKbdXrT6CL263ih-LvvEdoYmL4CA%40mail.gmail.com%3E


was (Author: ctrueden):
This change breaks backwards compatibility, and IMHO should be reverted.

h1. REAL-WORLD EXAMPLE

Consider the following project:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml

Amongst many other dependencies, this project has:
{code:xml}

ca.mcgill
Sholl_Analysis
runtime

{code}
This is defined in the 

[jira] [Comment Edited] (MNG-6079) 3.4 regression: cannot override version of a dependencyManagement in a submodule any more

2016-08-12 Thread Curtis Rueden (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15419191#comment-15419191
 ] 

Curtis Rueden edited comment on MNG-6079 at 8/12/16 5:47 PM:
-

This change breaks backwards compatibility, and IMHO should be reverted.

h1. REAL-WORLD EXAMPLE

Consider the following project:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml

Amongst many other dependencies, this project has:
{code:xml}

ca.mcgill
Sholl_Analysis
runtime

{code}
This is defined in the parent sc.fiji:pom-fiji:24.1.0 here:

* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L830-L835
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L255-L256

{code:xml}


3.6.2

...




ca.mcgill
Sholl_Analysis
${Sholl_Analysis.version}
 


{code}
With Maven 3.3.9, we have:
{code}
  $ mvn dependency:list|grep Sholl
  [INFO]ca.mcgill:Sholl_Analysis:jar:3.6.2:runtime
{code}
But with Maven 3.4.0-20160806.181437-172, we get:
{code}
  $ mvn dependency:list|grep Sholl
  [INFO]ca.mcgill:Sholl_Analysis:jar:3.6.1:runtime
{code}
!!!

I believe this surprising behavior is caused by the fact that the toplevel fiji 
POM needs to also include other BOMs via import scope:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml#L49-L68

{code:xml}




sc.fiji
pom-bigdataviewer
${pom-bigdataviewer.version}
pom
import



sc.fiji
pom-trakem2
${pom-trakem2.version}
pom
import



{code}

The version of pom-bigdataviewer is 3.2.0:
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L135-L136

Which extends pom-fiji version 22.3.0 instead of 24.1.0:
* 
https://github.com/bigdataviewer/pom-bigdataviewer/blob/pom-bigdataviewer-3.2.0/pom.xml#L5-L9

And that version of pom-fiji defines Sholl_Analysis at 3.6.1 instead:
* https://github.com/fiji/pom-fiji/blob/pom-fiji-22.3.0/pom.xml#L261-L262

h1. GIST OF THE PROBLEM

So, with Maven 3.4.0, dependency management brought in from import scope is now 
trumping that brought in from the parent POM itself. This is problematic 
because:

* IMHO, it violates the Principle of Least Astonishment.
* It is now more complicated to compose together multiple "subtrees" of 
components into a final application which needs to inherit multiple BOMs from 
these subtrees.
* It is now not possible to override version properties _in the POM itself_ to 
trump the dependencyManagement versions.
* But strangely, you _can_ still override the version property on the CLI via 
-DSholl_Analysis.version=x.y.z. This seems inconsistent.

I understand and appreciate that I am naive of the deepest nuances of the Maven 
project model and how it gets synthesized. But:

# The above behavior will break all of my projects.
# I do not know how to restructure my components for Maven 3.4.0 to avoid this 
problem.

My vote would be to revert to the old behavior, which seems better to me. 
However, if this behavior really must be changed, I would suggest pushing it 
till Maven 4, since it will surely break a lot of existing builds.

If this change really goes through, then all previous releases of all of my 
projects will no longer build reproducibly with Maven 3.4.0+, since they will 
produce different dependency graphs.

Rather than breaking backwards compatibility of import scope by default, 
perhaps there could be a setting, or a different scope as Christian Schulte 
previously suggested.


was (Author: ctrueden):
This change breaks backwards compatibility, and IMHO should be reverted.

h1. REAL-WORLD EXAMPLE

Consider the following project:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml

Amongst many other dependencies, this project has:
{code:xml}

ca.mcgill
Sholl_Analysis
runtime

{code}
This is defined in the parent sc.fiji:pom-fiji:24.1.0 here:

* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L830-L835
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L255-L256


[jira] [Comment Edited] (MNG-6079) 3.4 regression: cannot override version of a dependencyManagement in a submodule any more

2016-08-12 Thread Curtis Rueden (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15419191#comment-15419191
 ] 

Curtis Rueden edited comment on MNG-6079 at 8/12/16 5:47 PM:
-

This change breaks backwards compatibility, and IMHO should be reverted.

h1. REAL-WORLD EXAMPLE

Consider the following project:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml

Amongst many other dependencies, this project has:
{code:xml}

ca.mcgill
Sholl_Analysis
runtime

{code}
This is defined in the parent sc.fiji:pom-fiji:24.1.0 here:

* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L830-L835
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L255-L256

{code:xml}


3.6.2

...




ca.mcgill
Sholl_Analysis
${Sholl_Analysis.version}
 


{code}
With Maven 3.3.9, we have:
{code}
  $ mvn dependency:list|grep Sholl
  [INFO]ca.mcgill:Sholl_Analysis:jar:3.6.2:runtime
{code}
But with Maven 3.4.0-20160806.181437-172, we get:
{code}
  $ mvn dependency:list|grep Sholl
  [INFO]ca.mcgill:Sholl_Analysis:jar:3.6.1:runtime
{code}
!!!

I believe this surprising behavior is caused by the fact that the toplevel fiji 
POM needs to also include other BOMs via import scope:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml#L49-L68

{code:xml}




sc.fiji
pom-bigdataviewer
${pom-bigdataviewer.version}
pom
import



sc.fiji
pom-trakem2
${pom-trakem2.version}
pom
import



{code}

The version of pom-bigdataviewer is 3.2.0:
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L135-L136

Which extends pom-fiji version 22.3.0 instead of 24.1.0:
* 
https://github.com/bigdataviewer/pom-bigdataviewer/blob/pom-bigdataviewer-3.2.0/pom.xml#L5-L9

And that version of pom-fiji defines Sholl_Analysis at 3.6.1 instead:
* https://github.com/fiji/pom-fiji/blob/pom-fiji-22.3.0/pom.xml#L261-L262

h1. GIST OF THE PROBLEM

So, with Maven 3.4.0, dependency management brought in from import scope is now 
trumping that brought in from the parent POM itself. This is problematic 
because:

* IMHO, it violates the Principle of Least Astonishment.
* It is now more complicated to compose together multiple "subtrees" of 
components into a final application which needs to inherit multiple BOMs from 
these subtrees.
* It is now not possible to override version properties _in the POM itself_ to 
trump the dependencyManagement versions.
* But strangely, you _can_ still override the version property on the CLI via 
-DSholl_Analysis.version=x.y.z. This seems inconsistent.

I understand and appreciate that I am naive of the deepest nuances of the Maven 
project model and how it gets synthesized. But:

# The above behavior will break all of my projects.
# I do not know how to restructure my components for Maven 3.4.0 to avoid this 
problem.

My vote would be to revert to the old behavior, which seems better to me. 
However, if this behavior really must be changed, I would suggest pushing it 
till Maven 4, since it will surely break a lot of existing builds.

If this change really goes through, then all previous releases of all of my 
projects will no longer build reproducibly with Maven 3.4.0+, since they will 
produce different dependency graphs.

Rather than breaking backwards compatibility of import scope by default, 
perhaps there could be a setting, or a different scope as Christian Schulte 
like suggested.


was (Author: ctrueden):
This change breaks backwards compatibility, and IMHO should be reverted.

h1. REAL-WORLD EXAMPLE

Consider the following project:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml

Amongst many other dependencies, this project has:
{code:xml}

ca.mcgill
Sholl_Analysis
runtime

{code}
This is defined in the parent sc.fiji:pom-fiji:24.1.0 here:

* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L830-L835
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L255-L256
{code:xml}
 

[jira] [Comment Edited] (MNG-6079) 3.4 regression: cannot override version of a dependencyManagement in a submodule any more

2016-08-12 Thread Curtis Rueden (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15419191#comment-15419191
 ] 

Curtis Rueden edited comment on MNG-6079 at 8/12/16 5:46 PM:
-

This change breaks backwards compatibility, and IMHO should be reverted.

h1. REAL-WORLD EXAMPLE

Consider the following project:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml

Amongst many other dependencies, this project has:
{code:xml}

ca.mcgill
Sholl_Analysis
runtime

{code}
This is defined in the parent sc.fiji:pom-fiji:24.1.0 here:

* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L830-L835
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L255-L256
{code:xml}


3.6.2

...




ca.mcgill
Sholl_Analysis
${Sholl_Analysis.version}
 


{code}
With Maven 3.3.9, we have:
{code}
  $ mvn dependency:list|grep Sholl
  [INFO]ca.mcgill:Sholl_Analysis:jar:3.6.2:runtime
{code}
But with Maven 3.4.0-20160806.181437-172, we get:
{code}
  $ mvn dependency:list|grep Sholl
  [INFO]ca.mcgill:Sholl_Analysis:jar:3.6.1:runtime
{code}
!!!

I believe this surprising behavior is caused by the fact that the toplevel fiji 
POM needs to also include other BOMs via import scope:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml#L49-L68
{code:xml}




sc.fiji
pom-bigdataviewer
${pom-bigdataviewer.version}
pom
import



sc.fiji
pom-trakem2
${pom-trakem2.version}
pom
import



{code}

The version of pom-bigdataviewer is 3.2.0:
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L135-L136

Which extends pom-fiji version 22.3.0 instead of 24.1.0:
* 
https://github.com/bigdataviewer/pom-bigdataviewer/blob/pom-bigdataviewer-3.2.0/pom.xml#L5-L9

And that version of pom-fiji defines Sholl_Analysis at 3.6.1 instead:
* https://github.com/fiji/pom-fiji/blob/pom-fiji-22.3.0/pom.xml#L261-L262

h1. GIST OF THE PROBLEM

So, with Maven 3.4.0, dependency management brought in from import scope is now 
trumping that brought in from the parent POM itself. This is problematic 
because:

* IMHO, it violates the Principle of Least Astonishment.
* It is now more complicated to compose together multiple "subtrees" of 
components into a final application which needs to inherit multiple BOMs from 
these subtrees.
* It is now not possible to override version properties _in the POM itself_ to 
trump the dependencyManagement versions.
* But strangely, you _can_ still override the version property on the CLI via 
-DSholl_Analysis.version=x.y.z. This seems inconsistent.

I understand and appreciate that I am naive of the deepest nuances of the Maven 
project model and how it gets synthesized. But:

# The above behavior will break all of my projects.
# I do not know how to restructure my components for Maven 3.4.0 to avoid this 
problem.

My vote would be to revert to the old behavior, which seems better to me. 
However, if this behavior really must be changed, I would suggest pushing it 
till Maven 4, since it will surely break a lot of existing builds.

If this change really goes through, then all previous releases of all of my 
projects will no longer build reproducibly with Maven 3.4.0+, since they will 
produce different dependency graphs.

Rather than breaking backwards compatibility of import scope by default, 
perhaps there could be a setting, or a different scope as Christian Schulte 
like suggested.


was (Author: ctrueden):
This change breaks backwards compatibility, and IMHO should be reverted.

h1. REAL-WORLD EXAMPLE

Consider the following project:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml

Amongst many other dependencies, this project has:
{code:xml}

ca.mcgill
Sholl_Analysis
runtime

{code}
This is defined in the parent sc.fiji:pom-fiji:24.1.0 here:

* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L830-L835
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L255-L256
{code:xml}
   

[jira] [Comment Edited] (MNG-6079) 3.4 regression: cannot override version of a dependencyManagement in a submodule any more

2016-08-12 Thread Curtis Rueden (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15419191#comment-15419191
 ] 

Curtis Rueden edited comment on MNG-6079 at 8/12/16 5:46 PM:
-

This change breaks backwards compatibility, and IMHO should be reverted.

h1. REAL-WORLD EXAMPLE

Consider the following project:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml

Amongst many other dependencies, this project has:
{code:xml}

ca.mcgill
Sholl_Analysis
runtime

{code}
This is defined in the parent sc.fiji:pom-fiji:24.1.0 here:

* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L830-L835
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L255-L256
{code:xml}


3.6.2

...




ca.mcgill
Sholl_Analysis
${Sholl_Analysis.version}
 


{code:shell}
With Maven 3.3.9, we have:
{code}
  $ mvn dependency:list|grep Sholl
  [INFO]ca.mcgill:Sholl_Analysis:jar:3.6.2:runtime
{code}
But with Maven 3.4.0-20160806.181437-172, we get:
{code:shell}
  $ mvn dependency:list|grep Sholl
  [INFO]ca.mcgill:Sholl_Analysis:jar:3.6.1:runtime
{code}
!!!

I believe this surprising behavior is caused by the fact that the toplevel fiji 
POM needs to also include other BOMs via import scope:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml#L49-L68
{code:xml}




sc.fiji
pom-bigdataviewer
${pom-bigdataviewer.version}
pom
import



sc.fiji
pom-trakem2
${pom-trakem2.version}
pom
import



{code}

The version of pom-bigdataviewer is 3.2.0:
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L135-L136

Which extends pom-fiji version 22.3.0 instead of 24.1.0:
* 
https://github.com/bigdataviewer/pom-bigdataviewer/blob/pom-bigdataviewer-3.2.0/pom.xml#L5-L9

And that version of pom-fiji defines Sholl_Analysis at 3.6.1 instead:
* https://github.com/fiji/pom-fiji/blob/pom-fiji-22.3.0/pom.xml#L261-L262

h1. GIST OF THE PROBLEM

So, with Maven 3.4.0, dependency management brought in from import scope is now 
trumping that brought in from the parent POM itself. This is problematic 
because:

* IMHO, it violates the Principle of Least Astonishment.
* It is now more complicated to compose together multiple "subtrees" of 
components into a final application which needs to inherit multiple BOMs from 
these subtrees.
* It is now not possible to override version properties _in the POM itself_ to 
trump the dependencyManagement versions.
* But strangely, you _can_ still override the version property on the CLI via 
-DSholl_Analysis.version=x.y.z. This seems inconsistent.

I understand and appreciate that I am naive of the deepest nuances of the Maven 
project model and how it gets synthesized. But:

# The above behavior will break all of my projects.
# I do not know how to restructure my components for Maven 3.4.0 to avoid this 
problem.

My vote would be to revert to the old behavior, which seems better to me. 
However, if this behavior really must be changed, I would suggest pushing it 
till Maven 4, since it will surely break a lot of existing builds.

If this change really goes through, then all previous releases of all of my 
projects will no longer build reproducibly with Maven 3.4.0+, since they will 
produce different dependency graphs.

Rather than breaking backwards compatibility of import scope by default, 
perhaps there could be a setting, or a different scope as Christian Schulte 
like suggested.


was (Author: ctrueden):
This change breaks backwards compatibility, and IMHO should be reverted.

## REAL-WORLD EXAMPLE

Consider the following project:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml

Amongst many other dependencies, this project has:
{{

ca.mcgill
Sholl_Analysis
runtime

}}
This is defined in the parent sc.fiji:pom-fiji:24.1.0 here:

* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L830-L835
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L255-L256


 

[jira] [Comment Edited] (MNG-6079) 3.4 regression: cannot override version of a dependencyManagement in a submodule any more

2016-08-12 Thread Curtis Rueden (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15419191#comment-15419191
 ] 

Curtis Rueden edited comment on MNG-6079 at 8/12/16 5:43 PM:
-

This change breaks backwards compatibility, and IMHO should be reverted.

## REAL-WORLD EXAMPLE

Consider the following project:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml

Amongst many other dependencies, this project has:
{{

ca.mcgill
Sholl_Analysis
runtime

}}
This is defined in the parent sc.fiji:pom-fiji:24.1.0 here:

* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L830-L835
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L255-L256



3.6.2

...




ca.mcgill
Sholl_Analysis
${Sholl_Analysis.version}
 



With Maven 3.3.9, we have:

  $ mvn dependency:list|grep Sholl
  [INFO]ca.mcgill:Sholl_Analysis:jar:3.6.2:runtime

But with Maven 3.4.0-20160806.181437-172, we get:

  $ mvn dependency:list|grep Sholl
  [INFO]ca.mcgill:Sholl_Analysis:jar:3.6.1:runtime

!!!

I believe this surprising behavior is caused by the fact that the toplevel fiji 
POM needs to also include other BOMs via import scope:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml#L49-L68





sc.fiji
pom-bigdataviewer
${pom-bigdataviewer.version}
pom
import



sc.fiji
pom-trakem2
${pom-trakem2.version}
pom
import




The version of pom-bigdataviewer is 3.2.0:
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L135-L136

Which extends pom-fiji version 22.3.0 instead of 24.1.0:
* 
https://github.com/bigdataviewer/pom-bigdataviewer/blob/pom-bigdataviewer-3.2.0/pom.xml#L5-L9

And that version of pom-fiji defines Sholl_Analysis at 3.6.1 instead:
* https://github.com/fiji/pom-fiji/blob/pom-fiji-22.3.0/pom.xml#L261-L262

== GIST OF THE PROBLEM ==

So, with Maven 3.4.0, dependency management brought in from import scope is now 
trumping that brought in from the parent POM itself. This is problematic 
because:

- IMHO, it violates the Principle of Least Astonishment.
- It is now more complicated to compose together multiple "subtrees" of 
components into a final application which needs to inherit multiple BOMs from 
these subtrees.
- It is now not possible to override version properties _in the POM itself_ to 
trump the dependencyManagement versions.

But strangely, you _can_ still override the version property on the CLI via 
-DSholl_Analysis.version=x.y.z.

I understand and appreciate that I am naive of the deepest nuances of the Maven 
project model and how it gets synthesized. But:

1) The above behavior will break all of my projects.
2) I do not know how to restructure my components for Maven 3.4.0 to avoid this 
problem.

My vote would be to revert to the old behavior, which seems better to me. 
However, if this behavior really must be changed, I would suggest pushing it 
till Maven 4, since it will surely break a lot of existing builds.

If this change really goes through, then all previous releases of all of my 
projects will no longer build reproducibly with Maven 3.4.0+, since they will 
produce different dependency graphs.

Rather than breaking backwards compatibility of import scope by default, 
perhaps there could be a setting, or a different scope as Christian Schulte 
like suggested.


was (Author: ctrueden):
This change breaks backwards compatibility, and IMHO should be reverted.

## REAL-WORLD EXAMPLE

Consider the following project:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml

Amongst many other dependencies, this project has:


ca.mcgill
Sholl_Analysis
runtime


This is defined in the parent sc.fiji:pom-fiji:24.1.0 here:

* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L830-L835
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L255-L256



3.6.2

...




 

[jira] [Comment Edited] (MNG-6079) 3.4 regression: cannot override version of a dependencyManagement in a submodule any more

2016-08-12 Thread Curtis Rueden (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15419191#comment-15419191
 ] 

Curtis Rueden edited comment on MNG-6079 at 8/12/16 5:42 PM:
-

This change breaks backwards compatibility, and IMHO should be reverted.

## REAL-WORLD EXAMPLE

Consider the following project:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml

Amongst many other dependencies, this project has:


ca.mcgill
Sholl_Analysis
runtime


This is defined in the parent sc.fiji:pom-fiji:24.1.0 here:

* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L830-L835
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L255-L256



3.6.2

...




ca.mcgill
Sholl_Analysis
${Sholl_Analysis.version}
 



With Maven 3.3.9, we have:

  $ mvn dependency:list|grep Sholl
  [INFO]ca.mcgill:Sholl_Analysis:jar:3.6.2:runtime

But with Maven 3.4.0-20160806.181437-172, we get:

  $ mvn dependency:list|grep Sholl
  [INFO]ca.mcgill:Sholl_Analysis:jar:3.6.1:runtime

!!!

I believe this surprising behavior is caused by the fact that the toplevel fiji 
POM needs to also include other BOMs via import scope:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml#L49-L68





sc.fiji
pom-bigdataviewer
${pom-bigdataviewer.version}
pom
import



sc.fiji
pom-trakem2
${pom-trakem2.version}
pom
import




The version of pom-bigdataviewer is 3.2.0:
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L135-L136

Which extends pom-fiji version 22.3.0 instead of 24.1.0:
* 
https://github.com/bigdataviewer/pom-bigdataviewer/blob/pom-bigdataviewer-3.2.0/pom.xml#L5-L9

And that version of pom-fiji defines Sholl_Analysis at 3.6.1 instead:
* https://github.com/fiji/pom-fiji/blob/pom-fiji-22.3.0/pom.xml#L261-L262

== GIST OF THE PROBLEM ==

So, with Maven 3.4.0, dependency management brought in from import scope is now 
trumping that brought in from the parent POM itself. This is problematic 
because:

- IMHO, it violates the Principle of Least Astonishment.
- It is now more complicated to compose together multiple "subtrees" of 
components into a final application which needs to inherit multiple BOMs from 
these subtrees.
- It is now not possible to override version properties _in the POM itself_ to 
trump the dependencyManagement versions.

But strangely, you _can_ still override the version property on the CLI via 
-DSholl_Analysis.version=x.y.z.

I understand and appreciate that I am naive of the deepest nuances of the Maven 
project model and how it gets synthesized. But:

1) The above behavior will break all of my projects.
2) I do not know how to restructure my components for Maven 3.4.0 to avoid this 
problem.

My vote would be to revert to the old behavior, which seems better to me. 
However, if this behavior really must be changed, I would suggest pushing it 
till Maven 4, since it will surely break a lot of existing builds.

If this change really goes through, then all previous releases of all of my 
projects will no longer build reproducibly with Maven 3.4.0+, since they will 
produce different dependency graphs.

Rather than breaking backwards compatibility of import scope by default, 
perhaps there could be a setting, or a different scope as Christian Schulte 
like suggested.


was (Author: ctrueden):
This change breaks backwards compatibility, and IMHO should be reverted.

== REAL-WORLD EXAMPLE ==

Consider the following project:
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml

Amongst many other dependencies, this project has:


ca.mcgill
Sholl_Analysis
runtime


This is defined in the parent sc.fiji:pom-fiji:24.1.0 here:

* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L830-L835
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L255-L256



3.6.2

...



[jira] [Commented] (MNG-6079) 3.4 regression: cannot override version of a dependencyManagement in a submodule any more

2016-08-12 Thread Curtis Rueden (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15419191#comment-15419191
 ] 

Curtis Rueden commented on MNG-6079:


This change breaks backwards compatibility, and IMHO should be reverted.

== REAL-WORLD EXAMPLE ==

Consider the following project:
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml

Amongst many other dependencies, this project has:


ca.mcgill
Sholl_Analysis
runtime


This is defined in the parent sc.fiji:pom-fiji:24.1.0 here:

* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L830-L835
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L255-L256



3.6.2

...




ca.mcgill
Sholl_Analysis
${Sholl_Analysis.version}
 



With Maven 3.3.9, we have:

  $ mvn dependency:list|grep Sholl
  [INFO]ca.mcgill:Sholl_Analysis:jar:3.6.2:runtime

But with Maven 3.4.0-20160806.181437-172, we get:

  $ mvn dependency:list|grep Sholl
  [INFO]ca.mcgill:Sholl_Analysis:jar:3.6.1:runtime

!!!

I believe this surprising behavior is caused by the fact that the toplevel fiji 
POM needs to also include other BOMs via import scope:

* 
https://github.com/fiji/fiji/blob/ced9faee1c4fba9997a3d614759fb6e78e359d4f/pom.xml#L49-L68





sc.fiji
pom-bigdataviewer
${pom-bigdataviewer.version}
pom
import



sc.fiji
pom-trakem2
${pom-trakem2.version}
pom
import




The version of pom-bigdataviewer is 3.2.0:
* https://github.com/fiji/pom-fiji/blob/pom-fiji-24.1.0/pom.xml#L135-L136

Which extends pom-fiji version 22.3.0 instead of 24.1.0:
* 
https://github.com/bigdataviewer/pom-bigdataviewer/blob/pom-bigdataviewer-3.2.0/pom.xml#L5-L9

And that version of pom-fiji defines Sholl_Analysis at 3.6.1 instead:
* https://github.com/fiji/pom-fiji/blob/pom-fiji-22.3.0/pom.xml#L261-L262

== GIST OF THE PROBLEM ==

So, with Maven 3.4.0, dependency management brought in from import scope is now 
trumping that brought in from the parent POM itself. This is problematic 
because:

- IMHO, it violates the Principle of Least Astonishment.
- It is now more complicated to compose together multiple "subtrees" of 
components into a final application which needs to inherit multiple BOMs from 
these subtrees.
- It is now not possible to override version properties _in the POM itself_ to 
trump the dependencyManagement versions.

But strangely, you _can_ still override the version property on the CLI via 
-DSholl_Analysis.version=x.y.z.

I understand and appreciate that I am naive of the deepest nuances of the Maven 
project model and how it gets synthesized. But:

1) The above behavior will break all of my projects.
2) I do not know how to restructure my components for Maven 3.4.0 to avoid this 
problem.

My vote would be to revert to the old behavior, which seems better to me. 
However, if this behavior really must be changed, I would suggest pushing it 
till Maven 4, since it will surely break a lot of existing builds.

If this change really goes through, then all previous releases of all of my 
projects will no longer build reproducibly with Maven 3.4.0+, since they will 
produce different dependency graphs.

Rather than breaking backwards compatibility of import scope by default, 
perhaps there could be a setting, or a different scope as Christian Schulte 
like suggested.

> 3.4 regression: cannot override version of a dependencyManagement in a 
> submodule any more
> -
>
> Key: MNG-6079
> URL: https://issues.apache.org/jira/browse/MNG-6079
> Project: Maven
>  Issue Type: Bug
>  Components: Dependencies
>Affects Versions: 3.4.0
>Reporter: Samuel Langlois
>Assignee: Christian Schulte
> Attachments: parent-pom.xml, pom.xml
>
>
> When you import a {{}} section from another pom, you 
> can use a property for the version:
> {code}
>
>   
>  
> org.apache.maven.surefire
> surefire
>   

[jira] (MENFORCER-185) Require Release Dependencies ignorant about aggregator build

2014-12-11 Thread Curtis Rueden (JIRA)

 [ 
https://jira.codehaus.org/browse/MENFORCER-185?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Curtis Rueden updated MENFORCER-185:


Attachment: seuss.zip

mvn validate
[INFO] Scanning for projects...
[INFO] 
[INFO] Reactor Build Order:
[INFO]
[INFO] pom
[INFO] green-eggs
[INFO] ham
[INFO]
[INFO] 
[INFO] Building pom 0.0.0-SNAPSHOT
[INFO] 
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (enforce-rules) @ pom ---
[INFO]
[INFO] 
[INFO] Building green-eggs 0.0.0-SNAPSHOT
[INFO] 
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (enforce-rules) @ green-eggs ---
[WARNING] Rule 0: org.apache.maven.plugins.enforcer.RequireReleaseDeps failed 
with message:
Parent Cannot be a snapshot: seuss:pom:pom:0.0.0-SNAPSHOT
[INFO] 
[INFO] Reactor Summary:
[INFO]
[INFO] pom  SUCCESS [  0.462 s]
[INFO] green-eggs . FAILURE [  0.003 s]
[INFO] ham  SKIPPED
[INFO] 
[INFO] BUILD FAILURE
[INFO] 

 Require Release Dependencies ignorant about aggregator build
 

 Key: MENFORCER-185
 URL: https://jira.codehaus.org/browse/MENFORCER-185
 Project: Maven Enforcer Plugin
  Issue Type: Bug
  Components: Standard Rules
Affects Versions: 1.3.1
Reporter: Thomas Diesler
 Attachments: seuss.zip


 If A depends on B it is ok for A-1.0.0-SNAPSHOT to have snapshot dependency 
 on B-1.0.0-SNAPSHOT if B was build before A during the same reactor build.
 Using the requireReleaseDeps rule it seems that SNAPSHOTS are generally not 
 allowed even when they belong to the same project and were built during the 
 same reactor build.
 We have a complex project with 100+ modules. I want to enforce that no module 
 has dependencies on project SNAPSHOTS that were not included in the build. In 
 such case A would use a stale version of B that happened to be available in 
 the local/remote maven repository.



--
This message was sent by Atlassian JIRA
(v6.1.6#6162)


[jira] (MENFORCER-185) Require Release Dependencies ignorant about aggregator build

2014-12-11 Thread Curtis Rueden (JIRA)

[ 
https://jira.codehaus.org/browse/MENFORCER-185?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=358949#comment-358949
 ] 

Curtis Rueden commented on MENFORCER-185:
-

+1. My group's projects also use requireReleaseDeps, which works great for 
single-module projects. I attached a nearly MCVE for illustration.

 Require Release Dependencies ignorant about aggregator build
 

 Key: MENFORCER-185
 URL: https://jira.codehaus.org/browse/MENFORCER-185
 Project: Maven Enforcer Plugin
  Issue Type: Bug
  Components: Standard Rules
Affects Versions: 1.3.1
Reporter: Thomas Diesler
 Attachments: seuss.zip


 If A depends on B it is ok for A-1.0.0-SNAPSHOT to have snapshot dependency 
 on B-1.0.0-SNAPSHOT if B was build before A during the same reactor build.
 Using the requireReleaseDeps rule it seems that SNAPSHOTS are generally not 
 allowed even when they belong to the same project and were built during the 
 same reactor build.
 We have a complex project with 100+ modules. I want to enforce that no module 
 has dependencies on project SNAPSHOTS that were not included in the build. In 
 such case A would use a stale version of B that happened to be available in 
 the local/remote maven repository.



--
This message was sent by Atlassian JIRA
(v6.1.6#6162)


[jira] (MENFORCER-185) Require Release Dependencies ignorant about aggregator build

2014-12-11 Thread Curtis Rueden (JIRA)

[ 
https://jira.codehaus.org/browse/MENFORCER-185?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=358949#comment-358949
 ] 

Curtis Rueden edited comment on MENFORCER-185 at 12/11/14 1:29 PM:
---

+1. My group's projects also use requireReleaseDeps, which works great for 
single-module projects, but not multi-module ones without hacky exclusions. I 
attached a nearly MCVE for illustration.


was (Author: ctrueden):
+1. My group's projects also use requireReleaseDeps, which works great for 
single-module projects. I attached a nearly MCVE for illustration.

 Require Release Dependencies ignorant about aggregator build
 

 Key: MENFORCER-185
 URL: https://jira.codehaus.org/browse/MENFORCER-185
 Project: Maven Enforcer Plugin
  Issue Type: Bug
  Components: Standard Rules
Affects Versions: 1.3.1
Reporter: Thomas Diesler
 Attachments: seuss.zip


 If A depends on B it is ok for A-1.0.0-SNAPSHOT to have snapshot dependency 
 on B-1.0.0-SNAPSHOT if B was build before A during the same reactor build.
 Using the requireReleaseDeps rule it seems that SNAPSHOTS are generally not 
 allowed even when they belong to the same project and were built during the 
 same reactor build.
 We have a complex project with 100+ modules. I want to enforce that no module 
 has dependencies on project SNAPSHOTS that were not included in the build. In 
 such case A would use a stale version of B that happened to be available in 
 the local/remote maven repository.



--
This message was sent by Atlassian JIRA
(v6.1.6#6162)


[jira] (MENFORCER-185) Require Release Dependencies ignorant about aggregator build

2014-12-11 Thread Curtis Rueden (JIRA)

[ 
https://jira.codehaus.org/browse/MENFORCER-185?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=358960#comment-358960
 ] 

Curtis Rueden commented on MENFORCER-185:
-

Thanks for the quick reply, Karl. I want to clarify that this is a fringe issue 
for my group's projects, since we have switched almost completely to 
single-module projects in separate Git repositories. We have only a couple of 
multi-module projects left that get bitten. That said, I agree with the OP that 
if you have a 100-module build, and it is important that it have only release 
dependencies outside the reactor, it would be awesome if this rule could 
support that use case. My personal tack would be to add another boolean 
property {{allowSnapshotsInReactor}} which defaults to {{false}} for backwards 
compatibility, but can be set to {{true}} to get the desired behavior.

Looking at the source, I wouldn't think a full rewrite is required, but rather 
some case logic carefully injected in a couple of places. For example, in 
{{RequireReleaseDeps.java}}, in the {{if ( failWhenParentIsSnapshot )}} block, 
do not throw the exception if {{allowSnapshotsInReactor}} is set and the parent 
is part of the multi-module build. And in the {{checkDependencies}} method, do 
not add the artifact to the {{foundSnapshots}} structure if the artifact is 
part of the multi-module build.

I'm certainly no expert on the codebase though, so perhaps it is more 
complicated than that.

 Require Release Dependencies ignorant about aggregator build
 

 Key: MENFORCER-185
 URL: https://jira.codehaus.org/browse/MENFORCER-185
 Project: Maven Enforcer Plugin
  Issue Type: Bug
  Components: Standard Rules
Affects Versions: 1.3.1
Reporter: Thomas Diesler
 Attachments: seuss.zip


 If A depends on B it is ok for A-1.0.0-SNAPSHOT to have snapshot dependency 
 on B-1.0.0-SNAPSHOT if B was build before A during the same reactor build.
 Using the requireReleaseDeps rule it seems that SNAPSHOTS are generally not 
 allowed even when they belong to the same project and were built during the 
 same reactor build.
 We have a complex project with 100+ modules. I want to enforce that no module 
 has dependencies on project SNAPSHOTS that were not included in the build. In 
 such case A would use a stale version of B that happened to be available in 
 the local/remote maven repository.



--
This message was sent by Atlassian JIRA
(v6.1.6#6162)


[jira] (MNG-4687) Maven should not warn about incorrect parent path when no relativePath is specified

2012-11-26 Thread Curtis Rueden (JIRA)

[ 
https://jira.codehaus.org/browse/MNG-4687?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=314415#comment-314415
 ] 

Curtis Rueden commented on MNG-4687:


Another relevant recent thread from maven-users:

http://mail-archives.apache.org/mod_mbox/maven-users/201211.mbox/%3CCABbdPEaJPFahp8uAWmUYYkjKQQ3XdMWb6eeos9Qbx=h2bdp...@mail.gmail.com%3E

 Maven should not warn about incorrect parent path when no relativePath is 
 specified
 ---

 Key: MNG-4687
 URL: https://jira.codehaus.org/browse/MNG-4687
 Project: Maven 2  3
  Issue Type: Improvement
  Components: Logging
Affects Versions: 3.0-beta-1
Reporter: Paul Gier
Priority: Minor
 Attachments: MNG-relativePath.zip


 If a module pom uses a parent other than the one in the parent directory, 
 maven logs a warning.  In some cases it is necessary that a module pom has an 
 external parent pom, and there is no way to refer to this external pom in the 
 relativePath.  If nothing is specified in the relativePath, Maven should not 
 log the warning.
 {noformat}
 [WARNING] 'parent.relativePath' of POM 
 org.maven.test:relative-path-parent:0.0.1-SNAPSHOT 
 (/home/pgier/projects/MNG-relativePath/module-1/pom.xml) points at 
 org.maven.test:relative-path-test instead of org.apache.maven:maven-parent, 
 please verify your project structure @ 
 {noformat}
 The attached zip reproduces the warning.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] (MNG-4687) Maven should not warn about incorrect parent path when no relativePath is specified

2012-08-31 Thread Curtis Rueden (JIRA)

[ 
https://jira.codehaus.org/browse/MNG-4687?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=307580#comment-307580
 ] 

Curtis Rueden commented on MNG-4687:


I agree with Scott that automatic local resolution would be ideal. To respond 
to Laird's concern, without loss of generality, there are six cases for the 
behavior:

|| ||no relativePath given in child 
POM||relativePath/||relativePath../relativePath||
|*POM in parent dir _is_ the parent*|automatically use local POM in parent 
dir|force lookup in repo|force use of local POM in parent|
|*POM in parent dir is _not_ the parent (or there is no POM 
there)*|automatically do lookup in repo|force lookup in repo|force use of local 
POM in parent (will fail)|

So to avoid the case where the parent directory contains an out-of-date version 
of the parent POM, you could add relativePath/ to your child POMs to always 
force a repository lookup. Personally I think this is a less common case than 
having a multi-module build and desiring it to use the local version of the POM 
in the parent directory when present.

This could be implemented easily by adding support for a special token (e.g., 
AUTOMATIC) for the relativePath value, and changing the super POM's default 
value from .. as it is now to AUTOMATIC.

 Maven should not warn about incorrect parent path when no relativePath is 
 specified
 ---

 Key: MNG-4687
 URL: https://jira.codehaus.org/browse/MNG-4687
 Project: Maven 2  3
  Issue Type: Improvement
  Components: Logging
Affects Versions: 3.0-beta-1
Reporter: Paul Gier
Priority: Minor
 Attachments: MNG-relativePath.zip


 If a module pom uses a parent other than the one in the parent directory, 
 maven logs a warning.  In some cases it is necessary that a module pom has an 
 external parent pom, and there is no way to refer to this external pom in the 
 relativePath.  If nothing is specified in the relativePath, Maven should not 
 log the warning.
 {noformat}
 [WARNING] 'parent.relativePath' of POM 
 org.maven.test:relative-path-parent:0.0.1-SNAPSHOT 
 (/home/pgier/projects/MNG-relativePath/module-1/pom.xml) points at 
 org.maven.test:relative-path-test instead of org.apache.maven:maven-parent, 
 please verify your project structure @ 
 {noformat}
 The attached zip reproduces the warning.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] (MASSEMBLY-623) Assembly documentation does not list all supported formats

2012-08-13 Thread Curtis Rueden (JIRA)
Curtis Rueden created MASSEMBLY-623:
---

 Summary: Assembly documentation does not list all supported formats
 Key: MASSEMBLY-623
 URL: https://jira.codehaus.org/browse/MASSEMBLY-623
 Project: Maven 2.x Assembly Plugin
  Issue Type: Improvement
Affects Versions: 2.3
 Environment: Website
Reporter: Curtis Rueden


The assembly plugin supports several different assembly formats. However, the 
supported formats are enumerated in two different places:
* On the [front page|http://maven.apache.org/plugins/maven-assembly-plugin/]
* On the [formats/format element of the assembly descriptor 
page|http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html#assembly].

These two lists do not match; each has at least one item missing from the 
other. These lists should be reconciled such that either:
A) each is a complete listing of all supported formats; or
B) one says something like etc. with a link to the other, as a canonical 
complete listing.

I would argue that the formats/format section should list all supported types, 
since the assembly descriptor page is supposed to be a complete technical 
description of the descriptor format. The listing on the front page could 
either link to the descriptor page, or else fully recapitulate the listing, as 
long as new formats supported in the future continue to get added to both.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] (MASSEMBLY-91) Currently the assembly plugin renames SNAPSHOT dependencies to a date stamp ex. api-authorisation-4.00-20060502.150651-20.jar

2012-02-13 Thread Curtis Rueden (JIRA)

[ 
https://jira.codehaus.org/browse/MASSEMBLY-91?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=291558#comment-291558
 ] 

Curtis Rueden commented on MASSEMBLY-91:


David: You can avoid using two separate configurations with the 
${dashClassifier?} syntax:

outputFileNameMapping${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}/outputFileNameMapping


 Currently the assembly plugin renames SNAPSHOT dependencies to a date stamp 
 ex. api-authorisation-4.00-20060502.150651-20.jar
 -

 Key: MASSEMBLY-91
 URL: https://jira.codehaus.org/browse/MASSEMBLY-91
 Project: Maven 2.x Assembly Plugin
  Issue Type: New Feature
Affects Versions: 2.0.1
 Environment: Win XP, Java 1.5
Reporter: Chris Stevenson
Assignee: John Casey
 Fix For: 2.2-beta-1


 Currently the assembly plugin renames SNAPSHOT dependencies to a date stamp 
 ex. api-authorisation-4.00-20060502.150651-20.jar. Would it be possible to 
 offer a flag on the plugin so that this behaviour could be turned off and the 
 file could remain as api-authorisation-SNAPSHOT.jar? 
 The renaming of the files causes the files to become invalid when compiling 
 native or CSharp binaries inside of maven.
 Thanks,
 Chris Stevenson

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira