You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Hervé Boutemy (JIRA)" <ji...@apache.org> on 2016/07/09 15:29:10 UTC

[jira] [Comment Edited] (MNG-6059) Important use cases not covered, as child.inherit.append.path affects all children

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

Hervé Boutemy edited comment on MNG-6059 at 7/9/16 3:28 PM:
------------------------------------------------------------

trying to work back on this, a good number of monthes after the initial implementation:
new eyes on my own work, re-discovering it, and seeing if it is really usable/clear (and where are misunderstandings)

First, there not only 1 {{child.inherit.append.path}} attribute, but 3:
1. one on {{project}} for {{project.url}}: http://maven.apache.org/ref/3-LATEST/maven-model/maven.html#class_project
2. one on {{project.scm}} for {{project.scm.connection}}, {{project.scm.developerConnection}} and {{project.scm.url}}: http://maven.apache.org/ref/3-LATEST/maven-model/maven.html#class_scm
3. one on {{project.distributionManagement.site}} for {{project.distributionManagement.site.url}}: http://maven.apache.org/ref/3-LATEST/maven-model/maven.html#class_site

IIUC your issue, it's one the second one that affects the 3 {{project.scm}} urls consistently where you'd need something else

My own issue is that the documentation talks 3 times about {{child.urls.inherit.append.path="false"}}:
1. this is not the attribute name (notice the ".urls"),
2. and this does not help understanding that there are 3 different attributes.

Clearly, the attribute names will have to be reworked and model documentation will have to be modified accordingly


then regarding {{project.scm}}: I'm not in sync at all with Robert's analysis, we both know :)
to me, Maven's git SCM url should be improved to support naming a path into a git repo (or any SCM that separates the repo location and the path inside the repo)
for example: {{<connection>scm:git:git://github.com/simpligility/ossrh-demo.git#/some-module</connection>}}
this would improve SCM support, instead of removing useful feature

but this improvement is not in Maven core: it's in maven-scm
And it will perhaps require updates in MPIR plugin, or even maven-scm api, to clearly separate repo location from path inside the repo (something that is completely hidden in CVS or svn)

is someone interested to work on this with me? (that's the point where usually everybody disappears)


was (Author: hboutemy):
trying to work back on this, a good number of monthes after the initial implementation:
new eyes on my own work, re-discovering it, and seeing if it is really usable/clear (and where are misunderstandings)

First, there not only 1 {{child.inherit.append.path}} attribute, but 3:
1. one on project for {{project.url}}: http://maven.apache.org/ref/3-LATEST/maven-model/maven.html#class_project
2. one on project.scm for {{project.scm.connection}}, {{project.scm.developerConnection}} and {{project.scm.url}}: http://maven.apache.org/ref/3-LATEST/maven-model/maven.html#class_scm
3. one on project.distributionManagement.site for {{project.distributionManagement.site.url}}: http://maven.apache.org/ref/3-LATEST/maven-model/maven.html#class_site

IIUC your issue, it's one the second one that affects the 3 project.scm urls consistently where you'd need something else

My own issue is that the documentation talks 3 times about {{child.urls.inherit.append.path="false"}}: this is not the attribute name (notice the ".urls"), and this does not help understanding that there are 3 different attributes.
Clearly, the attribute names will have to be reworked and model documentation will have to be modified accordingly


then regarding project.scm: I'm not convinced at all with Robert's analysis :)
to me, Maven's git SCM url should be improved to support naming a path into a git repo (or any SCM that separates the repo location and the path inside the repo)
for example: {{<connection>scm:git:git://github.com/simpligility/ossrh-demo.git#/some-module</connection>}}
this would improve SCM support, instead of removing useful feature

but this improvement is not in Maven core: it's in maven-scm
And it will perhaps require updates in MPIR plugin, or even maven-scm api, to clearly separate repo location from path inside the repo (something that is completely hidden in CVS or svn)

> Important use cases not covered, as child.inherit.append.path affects all children
> ----------------------------------------------------------------------------------
>
>                 Key: MNG-6059
>                 URL: https://issues.apache.org/jira/browse/MNG-6059
>             Project: Maven
>          Issue Type: Bug
>          Components: Inheritance and Interpolation
>         Environment: Apache Maven 3.4.0-SNAPSHOT (227085283b6379038ec16f4cf9ad2e8869cef694; 2016-07-06T21:29:12+02:00)
>            Reporter: Andreas Sewe
>
> The {{child.inherit.append.path}} attribute introduced with MNG-5951 unfortunately does not support the use case where the children of the element with the attribute should follow different inheritance rules. Take a typical configuration for Github, for example (taken from <http://central.sonatype.org/pages/requirements.html>):
> {noformat}
> <scm>
>   <connection>scm:git:git://github.com/simpligility/ossrh-demo.git</connection>
>   <developerConnection>scm:git:ssh://github.com:simpligility/ossrh-demo.git</developerConnection>
>   <url>http://github.com/simpligility/ossrh-demo/tree/master</url>
> </scm>
> {noformat}
> If the {{ossrh-demo.git}} repository contains a child module called {{some-module}}, then that child’s {{scm/url}} should become {{http://github.com/simpligility/ossrh-demo/tree/master/some-module}} as per the normal inheritance rules, but both the {{scm/connection}} and {{scm/developerConnection}} URLs should remain unchanged.
> Unfortunately, this is not possible with {{*child*.inherit.append.path}}, which acts on all children simultaneously.
> IMHO, this is a conceptual problem. In particular, setting {{child.inherit.append.path}} on the *root* element to just control a single child ({{project/url}}) feels wrong, as the attribute is in all likelihood not even located close to the {{<url>}} element it controls.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)