We cannot change the behavior, or really even attempt to fiddle with the code in 2.0.x. We are also planning on entirely replacing this code with Mercury in the 3.x line. Apache SVN is down so I'll point you to Mercury when it comes back. Oleg is the one who has implemented Mercury so he can also point you in the right direction.

On 3-Dec-08, at 4:36 PM, Ian Robertson wrote:

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.

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
jason at sonatype dot com
----------------------------------------------------------

Three people can keep a secret provided two of them are dead.

 -- Unknown


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to