NPanday - Visual Studio Integration for Maven

2008-12-03 Thread Brett Porter

Hi,

For those not on nmaven-dev that might be interested...

After the termination of the NMaven podling in the incubator, a  
continuation of the 0.14 branch has been started at Codeplex called  
NPanday: http://www.codeplex.com/npanday


The project is composed of Visual Studio integration for Maven (and  
Maven repositories), and a set of Maven plugins for .NET languages.


Discussion list: http://www.codeplex.com/npanday/Thread/List.aspx
SVN: https://npanday.svn.codeplex.com/svn

Cheers,
Brett

--
Brett Porter
[EMAIL PROTECTED]
http://blogs.exist.com/bporter/



Proposed change to handling of dependency version ranges

2008-12-03 Thread Ian Robertson
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+Conflicthttp://docs.codehaus.org/display/MAVEN/Dependency+Mediation+and+ConflictResolution#DependencyMediationandConflictResolution-DependencyVersionRanges+http://docs.codehaus.org/display/MAVEN/Dependency+Mediation+and+Conflict+Resolution#DependencyMediationandConflictResolution-DependencyVersionRangesResolution#DependencyMediationandConflictResolution-DependencyVersionRangeshttp://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.


What will replace the @aggregator MOJO configuration?

2008-12-03 Thread Nick Pellow

Hi,

I noticed that the 'aggregator' parameter for a MOJO is slated for  
deprecation in a future release of Maven.

http://books.sonatype.com/maven-book/reference/writing-plugins.html#d0e22494

What should be used instead, to fulfill the following use-case:

- a multi-module project, which would like to assert something about  
the entire project at the very end of the build.


A concrete example is mentioned on our Clover Forums at http://forums.atlassian.com/post!reply.jspa?messageID=257294857 
 .
The user would like to only run clover2:check on the entire project,  
not on each sub-module.


Cheers,
Nick

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



Re: Proposed change to handling of dependency version ranges

2008-12-03 Thread Christian Schulte
Ian Robertson schrieb:
 
 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.


Could you please give an example showing exactly the proposed change.
Choosing a lower version over a higher version breaks compatibility
since higher versions tend to have evolved and may have features a lower
version does not provide, assuming that higher versions are backwards
compatible to lower versions.

-- 
Christian

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



Re: Proposed change to handling of dependency version ranges

2008-12-03 Thread Jason van Zyl
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- 
DependencyVersionRangeshttp://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]



Re: Proposed change to handling of dependency version ranges

2008-12-03 Thread Oleg Gusakov

Dear All,

Jason van Zyl wrote:
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.


I tried to comply with OSGi versions spec, Mercury approach is 
documented here:  
http://docs.codehaus.org/display/MAVEN/Mercury+Version+Ranges


Implementation is here:
http://svn.apache.org/repos/asf/maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/MavenVersionRange.java

Thanks,
Oleg


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



Re: Proposed change to handling of dependency version ranges

2008-12-03 Thread Barrie Treloar
On Thu, Dec 4, 2008 at 11:06 AM, Ian Robertson [EMAIL PROTECTED] wrote:
 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.

I think the short answer is, if you want repeatable builds then don't
use range syntax.
By defining a range you are saying that everything that fits in this
range is a valid choice.
Even those in the future that have yet to be release, as long as they
fit in the range.
Given that these future versions dont exist they haven't been tested
so using a range can be dangerous.

There is talk about a plugin (can't recall which) that can lock down
the version of plugins and also tell you if newer versions are
available, so you can selectively decide to upgrade.  But I am not
sure if such a plugin exists yet.

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



Re: Proposed change to handling of dependency version ranges

2008-12-03 Thread Stephen Connolly
2008/12/4 Barrie Treloar [EMAIL PROTECTED]

 There is talk about a plugin (can't recall which) that can lock down
 the version of plugins and also tell you if newer versions are
 available, so you can selectively decide to upgrade.  But I am not
 sure if such a plugin exists yet.



That would be the versions-maven-plugin which is 24 hours away from
1.0-alpha-2 (I hope) over on mojo.

You define the versions of dependencies using properties.  If you put the
properties inside a hard range then you have effectively locked the version
down.  Then the versions-maven-plugin can update the properties for you.  In
addition, you can define the range within which each property can be
updated...

The goal you're after is versions:update-properties