maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hervé Boutemy (JIRA) <j...@apache.org>
Subject [jira] [Updated] (MNG-6059) Important use cases not covered, as child.inherit.append.path affects all children
Date Thu, 01 Nov 2018 22:33:00 GMT

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

Hervé Boutemy updated MNG-6059:
-------------------------------
    Description: 
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.
h1. Implemented Solution
{code:xml}<project child.project.url.inherit.append.path="false">
  <url>...</url>
  <scm child.scm.connection.inherit.append.path="false"
       child.scm.developerConnection.inherit.append.path="false"
       child.scm.url.inherit.append.path="false">
    <connection>...</connection>
    <developerConnection>...</developerConnection>
    <url>...</url>
  </scm>
  <distributionManagement>
    <site child.site.url.inherit.append.path="false">
      <url>...</url>
    </site>
  </distributionManagement>
</project>{code}

  was:
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.


> 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: Improvement
>          Components: Inheritance and Interpolation
>    Affects Versions: 3.6.0
>         Environment: Apache Maven 3.4.0-SNAPSHOT (227085283b6379038ec16f4cf9ad2e8869cef694;
2016-07-06T21:29:12+02:00)
>            Reporter: Andreas Sewe
>            Assignee: Hervé Boutemy
>            Priority: Major
>             Fix For: 3.6.1
>
>
> 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.
> h1. Implemented Solution
> {code:xml}<project child.project.url.inherit.append.path="false">
>   <url>...</url>
>   <scm child.scm.connection.inherit.append.path="false"
>        child.scm.developerConnection.inherit.append.path="false"
>        child.scm.url.inherit.append.path="false">
>     <connection>...</connection>
>     <developerConnection>...</developerConnection>
>     <url>...</url>
>   </scm>
>   <distributionManagement>
>     <site child.site.url.inherit.append.path="false">
>       <url>...</url>
>     </site>
>   </distributionManagement>
> </project>{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message