Re: Small CI victories for Maven 3.x

2008-12-15 Thread Chris Maki


On Dec 15, 2008, at 5:58 PM, Jason van Zyl wrote:

I was only rejoicing for Maven 3.x because it's been a long time  
coming.


But we'll gradually build up what I hope is a hallmark of best  
practices for CI. Integration tests running with coverage, real time  
feedback. We may need to write custom plugins for Hudson but we'll  
get it done.


Glad to hear that Maven 3.x is working with ITs and coverage, congrats  
to all who worked hard to get this done.  What custom plugins do you  
need for Hudson?  Are there any JIRA tickets for what you need?


Chris




On 15-Dec-08, at 4:05 PM, Barrie Treloar wrote:

On Tue, Dec 16, 2008 at 7:29 AM, John Casey  
jdca...@commonjava.org wrote:

Actually, 2.1.x and 2.0.x are both building out on
https://grid.sonatype.com/ci/ already.


Mr Burnsexcellent/Mr Burns

Now for related projects and deploying these to a snapshot repo and I
will be a happy man.

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



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: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org




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



Re: Proposed change to handling of dependency version ranges

2008-12-11 Thread Chris Maki

Hi Everyone

In the spirit of full-disclosure, I work with Ian at Overstock.com,  
but  I wanted to chime in on this discussion because of issues I've  
had with various projects.


Given this scenario:

com.foo:my-artifact:jar:1.0:compile
   org.hibernate:hibernate:3.1.1:compile
   com.foo:another-artifact:2.0:compile
   org.hibernate:hibernate:3.1.3:compile

I would like to see a way for com.foo:my-artifact to suggest hibernate  
3.1.1, at the same time, indicate if there is another version of  
hibernate in my dependency tree (not in all of maven, just my  
dependencies) which has a higher version defined, use it instead  
(org.hibernate:hibernate:3.1.3 in this case).  Currently, the closest  
I can get to this is the range syntax, [3.1.1,) but as we all know,  
this syntax will download the latest version of hibernate (today this  
would be version 3.3.1.ga).


I agree that developers should be responsible for managing their  
dependencies, at the same time, Maven should make things easier not  
more difficult.  If I have 150 dependencies, how much time should I  
spend determining which artifacts should be included?  Perhaps as much  
time as needed; however, If there was a way to indicate use the  
highest declared version of a common dependency then Maven would be  
assisting me in managing my dependencies.


Does it seem like a bad idea to have a syntax that lets the highest  
dependency version within my project dependency graph win, IFF I had a  
way to indicate this preference?


Thanks

Chris

On Dec 9, 2008, at 12:25 AM, Jörg Schaible wrote:


Hi Ian,

Ian Robertson wrote at Montag, 8. Dezember 2008 20:35:


On Wed, 2008-12-03 at 23:38 -0700, Barrie Treloar wrote:


[snip]

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.


You raise a good point - open-ended version ranges leave one  
vulnerable
to backwards-incompatible library upgrades.  But the current  
strategy of

taking the highest version introduces an additional element of
instability to application that can appear from one day to the next
without any change to an applications code base.

Unfortunately, without a notion of version ranges, managing versions
becomes prohibitive in projects with large dependency graphs.  If an
application has several different transitive dependencies on a
particular library, the application developer is forced to traverse  
the

entire graph, examine all the dependencies, and choose the highest of
them so that she is guaranteed not to hit NoClassDefFoundErrors or
NoSuchMethodErrors at runtime.  For projects with hundreds of  
transitive

dependencies, this is error-prone at best.  Version ranges allow each
module to declare the minimum version it needs to run properly, and  
let
maven do the work of finding a version acceptable to all modules in  
the

dependency graph.


Nothing can really keep you save from such incompatibilities and  
problems
anyway. You silently imply that a higher version is always  
compatible, but

that's also not true (you know). In really worse cases it is like the
incompatible ASM 1.x, 2.x and 3.x series, but even for such an  
innocent
upgrade from JUnit 3.8.1 to 3.8.2 you might get a surprise, because  
the
latter uses a method not available in JDK 1.3 runtime. And this does  
not

cover cases where the groupId for the artifact changes (e.g.
xstream:xstream:1.1.3 com.thoughtworks.xstream:xstream:1.2) or  
artifacts

are splitted and/or renamed (e.g. avalon:avalon-framwork:4.1.4 to
org.apache.avalon:framework-api:4.3.1 and
org.apache.avalon:framework-impl:4.3.1) or two artifacts deliver the  
same

classes (commons-logging:commons-logging:1.1.1 and
org.slf4j:slf4j-jcl:1.5.6) or a jar is consumed by a different one  
(e.g.
org.ajax4jsf:ajax4jsf:1.1.0 into org.richfaces:richfaces:3.1.0) or  
consumed

even by the JDK (javax.activation:activation:1.0.2 in JDK 6).

Therefore it is always the developers task to take care of the  
complete

dependency tree of a product/project.

[snip]

- Jörg


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




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



Maven Archetype plugin

2008-11-19 Thread Chris Maki

Hi

I had a question about the maven-archetype-plugin and archetype- 
catalog.xml. Currently the plugin will check in ~/.m2/ for a local  
catalog if you use the -DarchetypeCatalog=local option.  It would be  
nice if the plugin could also searched for the catalog in the global  
config dir much like the way Maven searches for the settings.xml file  
in the global conf dir and then in the users ~/.m2 directory.  At work  
we package Maven along with a company standard settings.xml and I  
would like to do the same thing with the archetype catalog.


I'd be happy to open a JIRA ticket and submit a code patch but I  
wanted to run this by the dev list first to see if this fits in with  
the plugins future direction.


Thanks for your time

Chris

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