I would like to propose a change to how maven handles version ranges such as 
[1.0,), as described in



http://docs.codehaus.org/display/MAVEN/Dependency+Mediation+and+Conflict<http://docs.codehaus.org/display/MAVEN/Dependency+Mediation+and+ConflictResolution#DependencyMediationandConflictResolution-DependencyVersionRanges>+<http://docs.codehaus.org/display/MAVEN/Dependency+Mediation+and+Conflict+Resolution#DependencyMediationandConflictResolution-DependencyVersionRanges>Resolution#DependencyMediationandConflictResolution-DependencyVersionRanges<http://docs.codehaus.org/display/MAVEN/Dependency+Mediation+and+ConflictResolution#DependencyMediationandConflictResolution-DependencyVersionRanges>


The current strategy is defined as "Of the overlapping ranges, the *highest* 
soft requirement is the version to be used" (emphasis added).  Unfortunately, 
this leads to temporally unstable builds - a build of the exact same code base 
can change from one day to the next if a new version of one of the dependencies 
specified with ranges in its pom is released.

I would propose that the semantics change to "Of the overlapping ranges, the 
*lowest* soft requirement is the version to be used."  Consequently, new 
releases of a project would not change builds of other projects depending on it 
(assuming that version numbers increase instead of decrease with each release). 
This would negatively impact those projects wanting to live on the "bleeding 
edge", but benefit projects wanting repeatable builds.  In practice, range 
syntax does not appear to have gained much traction to date, so this change 
would hopefully not have substantial impact in terms of backwards 
incompatibility.  Moreover, providing semantics which do not introduce 
instability might increase adoption of the syntax.

If there are objections to this, I would be interested in knowing what they 
are.  If there are not objections, I would be quite willing to provide a patch 
of the code and unit tests.

 - Ian Robertson


________________________________
CONFIDENTIALITY NOTICE: This message is intended only for the use and review of 
the individual or entity to which it is addressed and may contain information 
that is privileged and confidential. If the reader of this message is not the 
intended recipient, or the employee or agent responsible for delivering the 
message solely to the intended recipient, you are hereby notified that any 
dissemination, distribution or copying of this communication is strictly 
prohibited. If you have received this communication in error, please notify 
sender immediately by telephone or return email. Thank you.

Reply via email to