You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by "Brett Porter (JIRA)" <ji...@codehaus.org> on 2005/04/13 01:57:46 UTC

[jira] Created: (MNG-303) dependency mediation and conflict management

dependency mediation and conflict management
--------------------------------------------

         Key: MNG-303
         URL: http://jira.codehaus.org/browse/MNG-303
     Project: m2
        Type: New Feature
  Components: maven-artifact  
    Reporter: Brett Porter
     Fix For: 2.0-alpha-3


as previously planned, we need to introduce the concepts of dependency mediation and conflict management to complement the transitive dependency mechanism.

Currently, a "nearest wins" approach is being taken which gives full control, but can result in having to re-state runtime dependencies to force a specified newer version in some instances.

An example in the m2 build is that when maven-artifact requires a newer version of wagon, it is not applied to core because plexus-artifact-container depends on an older version.

We should also only resolve a dependency once - for example, currently we build up the tree from all the versions of maven-artifact wanted, when in fact, we should decide what version of maven-artifact will be used, and use that for everything using maven-artifact before traversing to the next level. This would reduce the number of old dependencies appearing.

This will continue to make mboot less useful without replicating the feature. I suggest that we only bootstrap maven-artifact (or move it to wagon and don't bootstrap it at all), and then use it and wagon to execute mboot itself.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[jira] Commented: (MNG-303) dependency mediation and conflict management

Posted by "Brett Porter (JIRA)" <ji...@codehaus.org>.
    [ http://jira.codehaus.org/browse/MNG-303?page=comments#action_41841 ] 

Brett Porter commented on MNG-303:
----------------------------------

not including version ranges at this point

> dependency mediation and conflict management
> --------------------------------------------
>
>          Key: MNG-303
>          URL: http://jira.codehaus.org/browse/MNG-303
>      Project: Maven 2
>         Type: New Feature
>   Components: maven-artifact
>     Reporter: Brett Porter
>     Assignee: Brett Porter
>      Fix For: 2.0-alpha-3

>
>
> as previously planned, we need to introduce the concepts of dependency mediation and conflict management to complement the transitive dependency mechanism.
> Currently, a "nearest wins" approach is being taken which gives full control, but can result in having to re-state runtime dependencies to force a specified newer version in some instances.
> An example in the m2 build is that when maven-artifact requires a newer version of wagon, it is not applied to core because plexus-artifact-container depends on an older version.
> We should also only resolve a dependency once - for example, currently we build up the tree from all the versions of maven-artifact wanted, when in fact, we should decide what version of maven-artifact will be used, and use that for everything using maven-artifact before traversing to the next level. This would reduce the number of old dependencies appearing.
> This will continue to make mboot less useful without replicating the feature. I suggest that we only bootstrap maven-artifact (or move it to wagon and don't bootstrap it at all), and then use it and wagon to execute mboot itself.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[jira] Updated: (MNG-303) dependency mediation and conflict management

Posted by "Brett Porter (JIRA)" <ji...@codehaus.org>.
     [ http://jira.codehaus.org/browse/MNG-303?page=all ]

Brett Porter updated MNG-303:
-----------------------------

    Assign To: Brett Porter

> dependency mediation and conflict management
> --------------------------------------------
>
>          Key: MNG-303
>          URL: http://jira.codehaus.org/browse/MNG-303
>      Project: Maven 2
>         Type: New Feature
>   Components: maven-artifact
>     Reporter: Brett Porter
>     Assignee: Brett Porter
>      Fix For: 2.0-alpha-3

>
>
> as previously planned, we need to introduce the concepts of dependency mediation and conflict management to complement the transitive dependency mechanism.
> Currently, a "nearest wins" approach is being taken which gives full control, but can result in having to re-state runtime dependencies to force a specified newer version in some instances.
> An example in the m2 build is that when maven-artifact requires a newer version of wagon, it is not applied to core because plexus-artifact-container depends on an older version.
> We should also only resolve a dependency once - for example, currently we build up the tree from all the versions of maven-artifact wanted, when in fact, we should decide what version of maven-artifact will be used, and use that for everything using maven-artifact before traversing to the next level. This would reduce the number of old dependencies appearing.
> This will continue to make mboot less useful without replicating the feature. I suggest that we only bootstrap maven-artifact (or move it to wagon and don't bootstrap it at all), and then use it and wagon to execute mboot itself.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[jira] Commented: (MNG-303) dependency mediation and conflict management

Posted by "Brett Porter (JIRA)" <ji...@codehaus.org>.
     [ http://jira.codehaus.org/browse/MNG-303?page=comments#action_39277 ]
     
Brett Porter commented on MNG-303:
----------------------------------

some more notes from my email to ant-dev describing this:

What we have is pretty basic, and we're definitely looking to improve it with some other types of resolution, such as what you've described. Ideally, a project would declare the minimum version it needs to work (and if applicable, maximum - or perhaps even known incompatible versions in between). The final project should use the most recent version allowed by all of the definitions (on the assumption that the most recent is backwards compatible and has less bugs than earlier versions :)

Again, local definition of an explicit version will ensure you get what you ask for. 

This also has important consequences for making builds reproducible in the future, too - obviously if the version remains flexible at the point it is published then it might not be the same later on. There needs to be a point during QA where you can lock it down to a version.



> dependency mediation and conflict management
> --------------------------------------------
>
>          Key: MNG-303
>          URL: http://jira.codehaus.org/browse/MNG-303
>      Project: m2
>         Type: New Feature
>   Components: maven-artifact
>     Reporter: Brett Porter
>      Fix For: 2.0-alpha-3

>
>
> as previously planned, we need to introduce the concepts of dependency mediation and conflict management to complement the transitive dependency mechanism.
> Currently, a "nearest wins" approach is being taken which gives full control, but can result in having to re-state runtime dependencies to force a specified newer version in some instances.
> An example in the m2 build is that when maven-artifact requires a newer version of wagon, it is not applied to core because plexus-artifact-container depends on an older version.
> We should also only resolve a dependency once - for example, currently we build up the tree from all the versions of maven-artifact wanted, when in fact, we should decide what version of maven-artifact will be used, and use that for everything using maven-artifact before traversing to the next level. This would reduce the number of old dependencies appearing.
> This will continue to make mboot less useful without replicating the feature. I suggest that we only bootstrap maven-artifact (or move it to wagon and don't bootstrap it at all), and then use it and wagon to execute mboot itself.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[jira] Closed: (MNG-303) dependency mediation and conflict management

Posted by "Brett Porter (JIRA)" <ji...@codehaus.org>.
     [ http://jira.codehaus.org/browse/MNG-303?page=all ]
     
Brett Porter closed MNG-303:
----------------------------

    Resolution: Fixed

implemented:
- minimal resolution
- reporting
- fixed some bugs
- local dependency management used for transitive versions to force a version/scope
- adheres to design to later allow version resolution


> dependency mediation and conflict management
> --------------------------------------------
>
>          Key: MNG-303
>          URL: http://jira.codehaus.org/browse/MNG-303
>      Project: Maven 2
>         Type: New Feature
>   Components: maven-artifact
>     Reporter: Brett Porter
>     Assignee: Brett Porter
>      Fix For: 2.0-alpha-3

>
>
> as previously planned, we need to introduce the concepts of dependency mediation and conflict management to complement the transitive dependency mechanism.
> Currently, a "nearest wins" approach is being taken which gives full control, but can result in having to re-state runtime dependencies to force a specified newer version in some instances.
> An example in the m2 build is that when maven-artifact requires a newer version of wagon, it is not applied to core because plexus-artifact-container depends on an older version.
> We should also only resolve a dependency once - for example, currently we build up the tree from all the versions of maven-artifact wanted, when in fact, we should decide what version of maven-artifact will be used, and use that for everything using maven-artifact before traversing to the next level. This would reduce the number of old dependencies appearing.
> This will continue to make mboot less useful without replicating the feature. I suggest that we only bootstrap maven-artifact (or move it to wagon and don't bootstrap it at all), and then use it and wagon to execute mboot itself.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org