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

2017-11-27 Thread Christian Schulte (JIRA)

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

Christian Schulte commented on MNG-6141:


[~ctrueden] Everything regarding those commits will lead to endless discussions 
and nothing else. Sad about the situation is that the most interesting issues 
solved in that repository are re-reported by independent users in JIRA again 
and again. Discussions were about "existing, experienced, senior" users having 
become used to things as they are vs. "new, unexperienced, junior" users 
reporting issues in JIRA senior users decided to either never resolve or to 
postpone to a new Maven major version. I stopped any discussions when I was 
told that Maven would not be my personal playground although the only thing I 
did was resolving those JIRA issues reported by users. Breathtaking colors had 
higher priority. Hmpf. Forget about that one ;-)


> 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-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] [Commented] (MNG-6141) Dependency management overrides are not transitive and should be considered an anti-pattern.

2017-11-27 Thread Christian Schulte (JIRA)

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

Christian Schulte commented on MNG-6141:


FWIW I put a lot of effort into sorting out things like this during development 
of Maven 3.4.0. Nearly a year of work. All of this effort has been reverted and 
the master branch got reset. Personally I am still using that Maven version, of 
course. It is behaving differently but in a way I (and the users having 
reported the issues in JIRA) expect Maven to behave by default. It is available 
in my forked [Maven repository|https://github.com/ChristianSchulte/maven] and 
[Maven resolver repository|https://github.com/ChristianSchulte/maven-resolver] 
on Github. I am keeping the version at 3.4.0-SNAPSHOT so to not introduce any 
confusion. You can also grab a [binary 
release|https://github.com/ChristianSchulte/maven/releases/download/2017-11-27/apache-maven-3.4.0-SNAPSHOT-bin.zip]
 in case you are interested to see how your projects behave with quite a lot of 
issues resolved not released and never to be released because of corrections to 
dependency resolution changing behaviour. It includes fixes for what this issue 
is about. Using that Maven, I seldomly stumble upon projects running into such 
corner cases without noticing and help them fix things.

> 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-24 Thread Ralph Goers (JIRA)

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

Ralph Goers commented on MNG-6141:
--

Can't this be resolved just by adding the enforcer plugin to the build?

> 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] [Commented] (MNG-6141) Dependency management overrides are not transitive and should be considered an anti-pattern.

2017-10-21 Thread Christian Schulte (JIRA)

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

Christian Schulte commented on MNG-6141:


[~joehni] To not introduce any misunderstandings. This issue is about 
overriding dependency management locally within a module's {{}} 
section. Such overrides are only in effect locally during building the module 
and nowhere else - not even in the same reactor. See the attached example 
project. You could override the dependency management inside 
{{}} in a consistent way, though.

> 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-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-6141) Dependency management overrides are not transitive and should be considered an anti-pattern.

2016-12-31 Thread Christian Schulte (JIRA)

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

Christian Schulte commented on MNG-6141:


FYI, that fix to MNG-5761 also fixes MNG-5708.

> 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
>Assignee: 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.3.4#6332)


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

2016-12-30 Thread Christian Schulte (JIRA)

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

Christian Schulte commented on MNG-6141:


Can you please test if your dependency management is still working the same way 
with a recent 3.4.0-SNAPSHOT.



That snapshot contains a fix for MNG-5761. As long as you never add a 
dependency to something which has overridden the management, nothing should 
have changed. I fear those overrides stop working the way you are used to as 
soon as they become transitive dependencies somewhere. With this fix, Maven no 
longer ignores the transitive dependency management. That leads to the 
management overriding those overrides consistently also cross-reactor (issue 
described above).


> 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
>Assignee: 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.3.4#6332)


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

2016-12-30 Thread Joerg Schaible (JIRA)

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

Joerg Schaible commented on MNG-6141:
-

I know, but if you set such defaults in a parent, you may deliberately 
overwrite it in a child. At least we do this in some special cases.

> 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
>Assignee: 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.3.4#6332)


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

2016-12-29 Thread Christian Schulte (JIRA)

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

Christian Schulte commented on MNG-6141:


Issue is not about setting defaults in the dependency management. It's about 
overriding these defaults in modules other modules depend on.

 

> 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
>Assignee: 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.3.4#6332)


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

2016-12-29 Thread Joerg Schaible (JIRA)

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

Joerg Schaible commented on MNG-6141:
-

No, they are not public. However, even the maven-parent sets defaults for some 
dependencies in a dependencyManagement section.

> 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
>Assignee: 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.3.4#6332)


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

2016-12-29 Thread Christian Schulte (JIRA)

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

Christian Schulte commented on MNG-6141:


Is any of those projects you are talking about publicly available?


> 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
>Assignee: 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.3.4#6332)


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

2016-12-29 Thread Joerg Schaible (JIRA)

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

Joerg Schaible commented on MNG-6141:
-

Sorry, but this is a perfectly legal situation! We manage a global POM with 
depMgmt section for some products. However, some derived projects will override 
the settings in the depMgmt section on purpose. Yes, it is possible to shoot 
yourself into the foot using a depMgmt section, but in any case, it must have 
been my own decision. Nobody said, the managing dependencies is easy, but I 
expect the build tool to respect my choices.

> 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
>Assignee: 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.3.4#6332)