Re: Pluggable Dependency Resolution

2011-07-31 Thread Mark Struberg
Jason, behaviour != implementation !

If someone likes to store his artifacts in a database or taking it from a p4, 
why not?

And actually having a much cleaner interface on our side would be highly 
welcome!

LieGrue,
strub


--- On Sat, 7/30/11, Jason van Zyl ja...@sonatype.com wrote:

 From: Jason van Zyl ja...@sonatype.com
 Subject: Re: Pluggable Dependency Resolution
 To: Maven Developers List dev@maven.apache.org
 Date: Saturday, July 30, 2011, 11:58 PM
 On Jul 30, 2011, at 7:14 PM, Mark
 Derricutt wrote:
 
  Hi all,
  
  I wanted to start this discussion completely separate
 from any of the other, rather heated ASL vs EPL discussions
 around Aether to try and keep this more on topic.
  
  For awhile we ( members of the Illegal Argument
 podcast ) have often discussed a desire to have a pluggable
 dependency resolution mechanism within Apache Maven, mostly
 around having the ability to force maven to use the lowest
 bound in a range rather than the highest for highlight
 fast-fail API breakages.
  
 
 I think the potential for wreaking havoc would be too high.
 If it's something that is thought to be generally beneficial
 we should add it. But how would you stop everyone and their
 brother from thinking they had a better scheme? They all
 deploys those schemes and then Maven has to deal with
 potentially incompatible schemes and the default behaviour
 becoming meaningless. This is why OSGi has a specification
 on the scheme and the interpretation and you live with the
 one way for the sake of it working consistently for
 everyone. The idea seems appealing but I believe it would
 make the system too fragile.
 
  With the rise of these ASF/EPL threads I again thought
 of the pluggable resolution idea.  For those with more
 of a code-centric knowledge of the workings of Apache Maven,
 is it possible/feasible/semi-cleanly-codeable to have an
 install, or even project level selection of resolution of
 artifacts.
 
 Sure, it's possible. Maven's behavior is setup in the Maven
 specific RepositorySystemSession:
 
 http://svn.apache.org/repos/asf/maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenRepositorySystemSession.java
 
 This describes what the various bits do:
 
 http://aether.sonatype.org/introduction.html
 
 Right now nothing changes in the session once it starts up,
 and there are no extension points in our particular session.
 All I see is problems really. If this were project specific
 we would have to be able to load the scheme from wherever it
 came from and then determining whether the scheme or
 interpretations were the same would be problematic. In your
 particular case where you want to change something like the
 behaviour of a bound ... maybe that's less problematic but I
 think everyone living with one defined behavior and it being
 augmented as a community would be wiser. In OSGi this
 doesn't really change now because so many people depend on a
 very specific behaviour. I don't think this would be a great
 idea, and I'm not convinced it could even work.
 
  
  I imagine a difficulty in that this would have to
 occur early in the bootstrap process of maven, but if this
 were the case, would we not be able to work a solution to
 not only the Aether inclusion issues, but also Kasun's
 Gentoo resolution issues.
  
  This allows the end-user of Apache Maven (in the case
 that they care about it) the ability to update artifact
 resolution code independent of maven itself, or use a
 hardened/locked down resolution scheme backed by portage -
 and portage only.
  
  Apache Maven could stick with (for now) using Aether
 1.11, the last dual licensed release out of the box, where
 as the Gentoo ebuild could configure maven to use its own (
 an idea I see as flawed personally ) and those who wish to
 use Aether, or a custom resolution strategy could do so.
  
  Thoughts?
  
  Mark
  
  
 
 -
  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
 http://twitter.com/jvanzyl
 -
 
 To do two things at once is to do neither.
  
  -—Publilius Syrus, Roman slave, first century B.C.
 
 
 


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



Re: Pluggable Dependency Resolution

2011-07-31 Thread Stephen Connolly
i see two concerns that need separation.

1. the code that fetches dependencies from wherever they live.

2. the code that computed the dependencies graph.

#1 should be something that is plugable, and in essence could be part of the
repositories definitions... in saying that, i think we need a way to
separate the current project build infrastructure from the fixed information
inherent in tagging the codebase for a release. the projects repositories
and issue tracker, are things which can evolve over time, and having them
fixed in an immutable pom is bad for users. if we can find some way of
fixing that concern then that would be a good thing.

#2 is a different beast. i think forcing the osgi scheme on users is bad for
users. i could be selfish and say that i no longer work for a telecom
company that insists on 5-6 segment version numbers (depends on how you
choose to release as to whether one of those segments applies) but forcing 4
segments on those users is wrong. i don't mind making life a little harder
for people venturing away from maven's opinionated view, but forcing people
to conform to get full functionality is bad for users. where this all fits
in is defining which versions fall within a defined range, and how to choose
a version from within that range.

iirc osgi does allow hinting in regard for which end of the range to favour,
but because of its classloading isolation, there is less of a problem for
osgi. osgi being designed to solve the 2 dependencies needing conflicting
versions of the same dependency problem.

i am more willing to view #2 as being something that we should be looking
into not being plugable, but instead allow hints to the impl to say which
end of the range to favour... closest hint wins (sort of)

however we do need a clear separation between exposing that as a maven api
and whatever code we have solving that graph for us.

- Stephen

---
Sent from my Android phone, so random spelling mistakes, random nonsense
words and other nonsense are a direct result of using swype to type on the
screen
On 31 Jul 2011 07:41, Mark Struberg strub...@yahoo.de wrote:


Re: Pluggable Dependency Resolution

2011-07-31 Thread Stephen Connolly
oh i forgot to mention. i also think that version comparison rules should be
plugable.

- Stephen

---
Sent from my Android phone, so random spelling mistakes, random nonsense
words and other nonsense are a direct result of using swype to type on the
screen
On 31 Jul 2011 08:27, Stephen Connolly stephen.alan.conno...@gmail.com
wrote:
 i see two concerns that need separation.

 1. the code that fetches dependencies from wherever they live.

 2. the code that computed the dependencies graph.

 #1 should be something that is plugable, and in essence could be part of
the
 repositories definitions... in saying that, i think we need a way to
 separate the current project build infrastructure from the fixed
information
 inherent in tagging the codebase for a release. the projects repositories
 and issue tracker, are things which can evolve over time, and having them
 fixed in an immutable pom is bad for users. if we can find some way of
 fixing that concern then that would be a good thing.

 #2 is a different beast. i think forcing the osgi scheme on users is bad
for
 users. i could be selfish and say that i no longer work for a telecom
 company that insists on 5-6 segment version numbers (depends on how you
 choose to release as to whether one of those segments applies) but forcing
4
 segments on those users is wrong. i don't mind making life a little harder
 for people venturing away from maven's opinionated view, but forcing
people
 to conform to get full functionality is bad for users. where this all fits
 in is defining which versions fall within a defined range, and how to
choose
 a version from within that range.

 iirc osgi does allow hinting in regard for which end of the range to
favour,
 but because of its classloading isolation, there is less of a problem for
 osgi. osgi being designed to solve the 2 dependencies needing conflicting
 versions of the same dependency problem.

 i am more willing to view #2 as being something that we should be looking
 into not being plugable, but instead allow hints to the impl to say which
 end of the range to favour... closest hint wins (sort of)

 however we do need a clear separation between exposing that as a maven api
 and whatever code we have solving that graph for us.

 - Stephen

 ---
 Sent from my Android phone, so random spelling mistakes, random nonsense
 words and other nonsense are a direct result of using swype to type on the
 screen
 On 31 Jul 2011 07:41, Mark Struberg strub...@yahoo.de wrote:


Re: Pluggable Dependency Resolution

2011-07-31 Thread Igor Fedorenko

It is sort-of possible to plug per-project dependency resolver and this
is more or less how Tycho works already (I can provide more details
about implementation, if you are interested). The problem is on the
consumer end. What dependency resolution logic you expect to apply if
standard maven project depends on an artifact built using custom
resolver? What if both projects use custom resolvers? So far, we did not
find an answer for just two resolution strategies (i.e. maven and
tycho/p2/osgi) and I am afraid a general solution for N resolvers
simply does not exist.

--
Regards,
Igor

On 11-07-31 3:14 AM, Mark Derricutt wrote:

Hi all,

I wanted to start this discussion completely separate from any of the
other, rather heated ASL vs EPL discussions around Aether to try and
keep this more on topic.

For awhile we ( members of the Illegal Argument podcast ) have often
discussed a desire to have a pluggable dependency resolution
mechanism within Apache Maven, mostly around having the ability to
force maven to use the lowest bound in a range rather than the
highest for highlight fast-fail API breakages.

With the rise of these ASF/EPL threads I again thought of the
pluggable resolution idea.  For those with more of a code-centric
knowledge of the workings of Apache Maven, is it
possible/feasible/semi-cleanly-codeable to have an install, or even
project level selection of resolution of artifacts.

I imagine a difficulty in that this would have to occur early in the
bootstrap process of maven, but if this were the case, would we not
be able to work a solution to not only the Aether inclusion issues,
but also Kasun's Gentoo resolution issues.

This allows the end-user of Apache Maven (in the case that they care
about it) the ability to update artifact resolution code independent
of maven itself, or use a hardened/locked down resolution scheme
backed by portage - and portage only.

Apache Maven could stick with (for now) using Aether 1.11, the last
dual licensed release out of the box, where as the Gentoo ebuild
could configure maven to use its own ( an idea I see as flawed
personally ) and those who wish to use Aether, or a custom resolution
strategy could do so.

Thoughts?

Mark



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



Re: Pluggable Dependency Resolution

2011-07-31 Thread Mark Struberg
agree.

The OSGi naming schema makes it easier to detect if a version is higher or 
lower than another. But the trade off is numerous, let alone compatibility with 
the versions of already existing maven artifacts.

LieGrue,
strub


Just as a side note: The handling of multiple jars in different versions in 
OSGi sounds cool in theory, but in practice it tends to make your system 
unstable. This really only works if the dependencies form an unidirectional 
directed graph and you need to recompile all dependencies downwards or you 
don't change any public APIs.  

Just upgrade Eclipse a few times and you see what I mean. After max 10 
upgrades, your Eclipse installation is completely messed up as you _will_ get 
conflicting dependencies which don't work together nicely. 



--- On Sun, 7/31/11, Stephen Connolly stephen.alan.conno...@gmail.com wrote:

 From: Stephen Connolly stephen.alan.conno...@gmail.com
 Subject: Re: Pluggable Dependency Resolution
 To: Maven Developers List dev@maven.apache.org
 Date: Sunday, July 31, 2011, 7:27 AM
 i see two concerns that need
 separation.
 
 1. the code that fetches dependencies from wherever they
 live.
 
 2. the code that computed the dependencies graph.
 
 #1 should be something that is plugable, and in essence
 could be part of the
 repositories definitions... in saying that, i think we need
 a way to
 separate the current project build infrastructure from the
 fixed information
 inherent in tagging the codebase for a release. the
 projects repositories
 and issue tracker, are things which can evolve over time,
 and having them
 fixed in an immutable pom is bad for users. if we can find
 some way of
 fixing that concern then that would be a good thing.
 
 #2 is a different beast. i think forcing the osgi scheme on
 users is bad for
 users. i could be selfish and say that i no longer work for
 a telecom
 company that insists on 5-6 segment version numbers
 (depends on how you
 choose to release as to whether one of those segments
 applies) but forcing 4
 segments on those users is wrong. i don't mind making life
 a little harder
 for people venturing away from maven's opinionated view,
 but forcing people
 to conform to get full functionality is bad for users.
 where this all fits
 in is defining which versions fall within a defined range,
 and how to choose
 a version from within that range.
 
 iirc osgi does allow hinting in regard for which end of the
 range to favour,
 but because of its classloading isolation, there is less of
 a problem for
 osgi. osgi being designed to solve the 2 dependencies
 needing conflicting
 versions of the same dependency problem.
 
 i am more willing to view #2 as being something that we
 should be looking
 into not being plugable, but instead allow hints to the
 impl to say which
 end of the range to favour... closest hint wins (sort of)
 
 however we do need a clear separation between exposing that
 as a maven api
 and whatever code we have solving that graph for us.
 
 - Stephen
 
 ---
 Sent from my Android phone, so random spelling mistakes,
 random nonsense
 words and other nonsense are a direct result of using swype
 to type on the
 screen
 On 31 Jul 2011 07:41, Mark Struberg strub...@yahoo.de
 wrote:
 

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



Re: Pluggable Dependency Resolution

2011-07-31 Thread Mark Struberg
Hi Igor!

I'm also not sure if it makes sense/works out to apply a different 
DependencyResolver on per project base. This is also kind of a chicken-egg 
problem.
But I could imaging that this could be done in settings.xml!

LieGrue,
strub

--- On Sun, 7/31/11, Igor Fedorenko i...@ifedorenko.com wrote:

 From: Igor Fedorenko i...@ifedorenko.com
 Subject: Re: Pluggable Dependency Resolution
 To: dev@maven.apache.org
 Date: Sunday, July 31, 2011, 7:51 AM
 It is sort-of possible to plug
 per-project dependency resolver and this
 is more or less how Tycho works already (I can provide more
 details
 about implementation, if you are interested). The problem
 is on the
 consumer end. What dependency resolution logic you expect
 to apply if
 standard maven project depends on an artifact built using
 custom
 resolver? What if both projects use custom resolvers? So
 far, we did not
 find an answer for just two resolution strategies (i.e.
 maven and
 tycho/p2/osgi) and I am afraid a general solution for N
 resolvers
 simply does not exist.
 
 --
 Regards,
 Igor
 
 On 11-07-31 3:14 AM, Mark Derricutt wrote:
  Hi all,
 
  I wanted to start this discussion completely separate
 from any of the
  other, rather heated ASL vs EPL discussions around
 Aether to try and
  keep this more on topic.
 
  For awhile we ( members of the Illegal Argument
 podcast ) have often
  discussed a desire to have a pluggable dependency
 resolution
  mechanism within Apache Maven, mostly around having
 the ability to
  force maven to use the lowest bound in a range rather
 than the
  highest for highlight fast-fail API breakages.
 
  With the rise of these ASF/EPL threads I again thought
 of the
  pluggable resolution idea.  For those with more
 of a code-centric
  knowledge of the workings of Apache Maven, is it
  possible/feasible/semi-cleanly-codeable to have an
 install, or even
  project level selection of resolution of artifacts.
 
  I imagine a difficulty in that this would have to
 occur early in the
  bootstrap process of maven, but if this were the case,
 would we not
  be able to work a solution to not only the Aether
 inclusion issues,
  but also Kasun's Gentoo resolution issues.
 
  This allows the end-user of Apache Maven (in the case
 that they care
  about it) the ability to update artifact resolution
 code independent
  of maven itself, or use a hardened/locked down
 resolution scheme
  backed by portage - and portage only.
 
  Apache Maven could stick with (for now) using Aether
 1.11, the last
  dual licensed release out of the box, where as the
 Gentoo ebuild
  could configure maven to use its own ( an idea I see
 as flawed
  personally ) and those who wish to use Aether, or a
 custom resolution
  strategy could do so.
 
  Thoughts?
 
  Mark
 
 
 -
 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: Pluggable Dependency Resolution

2011-07-31 Thread Igor Fedorenko

Fundamental issue here is having multiple ways to construct dependency
dirty DAG and prune the DAG to eliminate conflicts. Resolution starts
with artifact A using one strategy and then hits dependency artifact B
that uses another strategy. Forcing the same strategy on A and B will
almost certainly produce unexpected/undesired results.

--
Regards,
Igor

On 11-07-31 12:11 PM, Mark Struberg wrote:

Hi Igor!

I'm also not sure if it makes sense/works out to apply a different 
DependencyResolver on per project base. This is also kind of a chicken-egg 
problem.
But I could imaging that this could be done in settings.xml!

LieGrue,
strub

--- On Sun, 7/31/11, Igor Fedorenkoi...@ifedorenko.com  wrote:


From: Igor Fedorenkoi...@ifedorenko.com
Subject: Re: Pluggable Dependency Resolution
To: dev@maven.apache.org
Date: Sunday, July 31, 2011, 7:51 AM
It is sort-of possible to plug
per-project dependency resolver and this
is more or less how Tycho works already (I can provide more
details
about implementation, if you are interested). The problem
is on the
consumer end. What dependency resolution logic you expect
to apply if
standard maven project depends on an artifact built using
custom
resolver? What if both projects use custom resolvers? So
far, we did not
find an answer for just two resolution strategies (i.e.
maven and
tycho/p2/osgi) and I am afraid a general solution for N
resolvers
simply does not exist.

--
Regards,
Igor

On 11-07-31 3:14 AM, Mark Derricutt wrote:

Hi all,

I wanted to start this discussion completely separate

from any of the

other, rather heated ASL vs EPL discussions around

Aether to try and

keep this more on topic.

For awhile we ( members of the Illegal Argument

podcast ) have often

discussed a desire to have a pluggable dependency

resolution

mechanism within Apache Maven, mostly around having

the ability to

force maven to use the lowest bound in a range rather

than the

highest for highlight fast-fail API breakages.

With the rise of these ASF/EPL threads I again thought

of the

pluggable resolution idea.  For those with more

of a code-centric

knowledge of the workings of Apache Maven, is it
possible/feasible/semi-cleanly-codeable to have an

install, or even

project level selection of resolution of artifacts.

I imagine a difficulty in that this would have to

occur early in the

bootstrap process of maven, but if this were the case,

would we not

be able to work a solution to not only the Aether

inclusion issues,

but also Kasun's Gentoo resolution issues.

This allows the end-user of Apache Maven (in the case

that they care

about it) the ability to update artifact resolution

code independent

of maven itself, or use a hardened/locked down

resolution scheme

backed by portage - and portage only.

Apache Maven could stick with (for now) using Aether

1.11, the last

dual licensed release out of the box, where as the

Gentoo ebuild

could configure maven to use its own ( an idea I see

as flawed

personally ) and those who wish to use Aether, or a

custom resolution

strategy could do so.

Thoughts?

Mark



-
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



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



Re: Pluggable Dependency Resolution

2011-07-31 Thread Hervé BOUTEMY
IMHO, it can make sense as a CLI option, to let you try multiple strategies 
(normal, GUMP-like ie. LATEST, compatibility ie. OLDEST)
But I doubt it has a meaning neither at project level nor user level, nor 
install level.
Project level is IMHO impossible, like Igor seems to have tried :)
User level or install level is feasible, but I don't find any useful use case, 
or giving headaches since we must check the strategy installed before trying 
to analyze anything

Regards,

Hervé

Le dimanche 31 juillet 2011, Mark Struberg a écrit :
 Hi Igor!
 
 I'm also not sure if it makes sense/works out to apply a different
 DependencyResolver on per project base. This is also kind of a chicken-egg
 problem. But I could imaging that this could be done in settings.xml!
 
 LieGrue,
 strub
 
 --- On Sun, 7/31/11, Igor Fedorenko i...@ifedorenko.com wrote:
  From: Igor Fedorenko i...@ifedorenko.com
  Subject: Re: Pluggable Dependency Resolution
  To: dev@maven.apache.org
  Date: Sunday, July 31, 2011, 7:51 AM
  It is sort-of possible to plug
  per-project dependency resolver and this
  is more or less how Tycho works already (I can provide more
  details
  about implementation, if you are interested). The problem
  is on the
  consumer end. What dependency resolution logic you expect
  to apply if
  standard maven project depends on an artifact built using
  custom
  resolver? What if both projects use custom resolvers? So
  far, we did not
  find an answer for just two resolution strategies (i.e.
  maven and
  tycho/p2/osgi) and I am afraid a general solution for N
  resolvers
  simply does not exist.
  
  --
  Regards,
  Igor
  
  On 11-07-31 3:14 AM, Mark Derricutt wrote:
   Hi all,
   
   I wanted to start this discussion completely separate
  
  from any of the
  
   other, rather heated ASL vs EPL discussions around
  
  Aether to try and
  
   keep this more on topic.
   
   For awhile we ( members of the Illegal Argument
  
  podcast ) have often
  
   discussed a desire to have a pluggable dependency
  
  resolution
  
   mechanism within Apache Maven, mostly around having
  
  the ability to
  
   force maven to use the lowest bound in a range rather
  
  than the
  
   highest for highlight fast-fail API breakages.
   
   With the rise of these ASF/EPL threads I again thought
  
  of the
  
   pluggable resolution idea.  For those with more
  
  of a code-centric
  
   knowledge of the workings of Apache Maven, is it
   possible/feasible/semi-cleanly-codeable to have an
  
  install, or even
  
   project level selection of resolution of artifacts.
   
   I imagine a difficulty in that this would have to
  
  occur early in the
  
   bootstrap process of maven, but if this were the case,
  
  would we not
  
   be able to work a solution to not only the Aether
  
  inclusion issues,
  
   but also Kasun's Gentoo resolution issues.
   
   This allows the end-user of Apache Maven (in the case
  
  that they care
  
   about it) the ability to update artifact resolution
  
  code independent
  
   of maven itself, or use a hardened/locked down
  
  resolution scheme
  
   backed by portage - and portage only.
   
   Apache Maven could stick with (for now) using Aether
  
  1.11, the last
  
   dual licensed release out of the box, where as the
  
  Gentoo ebuild
  
   could configure maven to use its own ( an idea I see
  
  as flawed
  
   personally ) and those who wish to use Aether, or a
  
  custom resolution
  
   strategy could do so.
   
   Thoughts?
   
   Mark
  
  -
  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


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



Re: Pluggable Dependency Resolution

2011-07-31 Thread Hervé BOUTEMY
I see this one regularly and don't frankly understand the need other than pure 
theory.
Actual version comparison supports every numbering scheme I ever saw in 
reality. The only choice that has been made that is a pure choice (neither 
good nor bad, just a choice had to be made) is that unknown qualifiers are 
considered after known ones [1].

Do you have practical examples that either are not supported, or the actual 
ordering is the contrary than you expected?
I'm really interested, because in the first case, I need to add support for 
something new, but only the second needs a pluggable version comparison 
algorithm
Then if we really need this one, we'll have the problem of *where* we should 
configure the value: project-level is a nightmare if ever really possible, CLI 
doesn't make sense IMHO, then we have user-level or install level
But even at user or install level, I doubt this will be usable

Regards,

Hervé

[1] http://maven.apache.org/ref/3.0.4-
SNAPSHOT/apidocs/org/apache/maven/artifact/versioning/ComparableVersion.html

Le dimanche 31 juillet 2011, Stephen Connolly a écrit :
 oh i forgot to mention. i also think that version comparison rules should
 be plugable.
 
 - Stephen
 
 ---
 Sent from my Android phone, so random spelling mistakes, random nonsense
 words and other nonsense are a direct result of using swype to type on the
 screen
 On 31 Jul 2011 08:27, Stephen Connolly stephen.alan.conno...@gmail.com
 
 wrote:
  i see two concerns that need separation.
  
  1. the code that fetches dependencies from wherever they live.
  
  2. the code that computed the dependencies graph.
  
  #1 should be something that is plugable, and in essence could be part of
 
 the
 
  repositories definitions... in saying that, i think we need a way to
  separate the current project build infrastructure from the fixed
 
 information
 
  inherent in tagging the codebase for a release. the projects repositories
  and issue tracker, are things which can evolve over time, and having them
  fixed in an immutable pom is bad for users. if we can find some way of
  fixing that concern then that would be a good thing.
  
  #2 is a different beast. i think forcing the osgi scheme on users is bad
 
 for
 
  users. i could be selfish and say that i no longer work for a telecom
  company that insists on 5-6 segment version numbers (depends on how you
  choose to release as to whether one of those segments applies) but
  forcing
 
 4
 
  segments on those users is wrong. i don't mind making life a little
  harder for people venturing away from maven's opinionated view, but
  forcing
 
 people
 
  to conform to get full functionality is bad for users. where this all
  fits in is defining which versions fall within a defined range, and how
  to
 
 choose
 
  a version from within that range.
  
  iirc osgi does allow hinting in regard for which end of the range to
 
 favour,
 
  but because of its classloading isolation, there is less of a problem for
  osgi. osgi being designed to solve the 2 dependencies needing conflicting
  versions of the same dependency problem.
  
  i am more willing to view #2 as being something that we should be looking
  into not being plugable, but instead allow hints to the impl to say which
  end of the range to favour... closest hint wins (sort of)
  
  however we do need a clear separation between exposing that as a maven
  api and whatever code we have solving that graph for us.
  
  - Stephen
  
  ---
  Sent from my Android phone, so random spelling mistakes, random nonsense
  words and other nonsense are a direct result of using swype to type on
  the screen
  On 31 Jul 2011 07:41, Mark Struberg strub...@yahoo.de wrote:


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



Re: Pluggable Dependency Resolution

2011-07-31 Thread Mark Derricutt
The use case that we originally came with in our discussions revolved around 
version ranges, and the fact that a version reference of 2.5.4 doesn't 
actually mean  give me 2.5.4 but rather I would like 2.5.4, but meh, use 
something higher if you need to.

In the case were you have artifacts using say [1.0.0,2.0.0) and [1.5.0,3.0.0) 
as their ranges, maven will favor the highests higher bound, so if 1.5.1, 
1.6.0, 2.0.1, and 2.5.0 are available, maven will choose 1.6.0 to compile 
against.

What we were discussing was that ideally you'd to compile against the lowest 
lower bound ( 1.5.1 ), this way you'd get fail fast on any changed APIs that 
you inadvertently started to use, alerting you to the fact that you need to 
increment the lower bound of your range.

If you require bug fixes in a newer release which is triggering your tests to 
fail, then you should also be incrementing the lower bound.

The whole purpose of this flow is to drive you to releasing often, and working 
off binary dependencies rather than long standing -SNAPSHOTs.  This flow would 
seem to work best for places who are releasing artifacts every 2-3 days, and 
working in a continuous delivery style process - it probably wouldn't work for 
Apache projects which often seem to favor long drawn out cycles ( I recall a 
thread awhile ago about not wanting to release a plugin cause it only had one 
bug fix in it ). 
 

Having read the other comments I realize my initial idea is a little crazy, and 
as Jason pointed out in the first response, probably more trouble than its 
worth.

Mark




On 31/07/2011, at 9:41 PM, Hervé BOUTEMY wrote:

 Do you have practical examples that either are not supported, or the actual 
 ordering is the contrary than you expected?



Re: Pluggable Dependency Resolution

2011-07-31 Thread Hervé BOUTEMY
Le dimanche 31 juillet 2011, Mark Derricutt a écrit :
 The use case that we originally came with in our discussions revolved
 around version ranges,
ok, that's not a version comparison but version (range) resolution question: 
version ordering is here to define how artifacts are ordered, then the range 
has to choose which one is to be used effectively
Multiple strategies can make sens here, but we should be careful on how to 
provide them.

This lets the question of pluggable version comparison need: is there a real 
world example of unwanted version order?

Regards,

Hervé

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



Re: Pluggable Dependency Resolution

2011-07-31 Thread Mark Derricutt
Not from any of my use cases no.

Mark


On 31/07/2011, at 10:18 PM, Hervé BOUTEMY wrote:

 This lets the question of pluggable version comparison need: is there a real 
 world example of unwanted version order?



Re: non-reproducible issues on CI

2011-07-31 Thread Dennis Lundberg
Hi

Mark and I spent yesterday trying to figure out what is going on with
this failing build. Here are our finding this far for
maven-repository-plugin.


1. maven-invoker-plugin is used to install the current artifact
(maven-repository-plugin) into a special repository used by the ITs,
namely target/it-repo. The ITs are set up with their own repo so that
the users local repository is not messed with.

2. maven-repository-collector-plugin is used to resolve the current
artifact's (maven-repository-plugin) dependencies from the local
repository to target/it-repo.

3. maven-surefire-plugin is used to run the ITs. When doing this it sets
a system property maven.repo.local and points that to target/it-repo.


When this is run with Maven 3.0.3 on the command line like this:
  mvn clean verify -Prun-its
all is well and the ITs pass.

When this is run with Maven 3.0.3 on the command line like this:
  mvn clean verify -Prun-its -Dmaven.repo.local=/local/repository
the build fails because it cannot find maven-repository-plugin in the
local repository.

This is the way the CI builds are run, but it can be reproduced locally
by adding the extra command line parameter.

What seems to happening in that the -Dmaven.local.repository command
line parameter overrides the system property set for the Surefire
Plugin. Thus making maven-surefire-plugin look for
maven-repository-plugin in the wrong repository (/local/repository).

Does anyone have ideas how we can solve this?


On 2011-07-30 01:22, Mark Struberg wrote:
 Hi!
 
 Our CI is broken since a while and most of the errors are of the following 
 kind:
 
 
 [ERROR] Plugin 
 org.apache.maven.plugins:maven-repository-plugin:2.3.2-SNAPSHOT or one of its 
 dependencies could not be resolved: Failed to read artifact descriptor for 
 org.apache.maven.plugins:maven-repository-plugin:jar:2.3.2-SNAPSHOT: Failure 
 to find org.apache.maven.plugins:maven-repository-plugin:pom:2.3.2-SNAPSHOT 
 in 
 /home/hudson/hudson-slave/workspace/maven-plugins-ITs-3.x/maven-repository-plugin/target/it-repo
  was cached in the local repository, resolution will not be reattempted until 
 the update interval of local.central has elapsed or updates are forced - 
 [Help 1]
 org.apache.maven.plugin.PluginResolutionException: Plugin 
 org.apache.maven.plugins:maven-repository-plugin:2.3.2-SNAPSHOT or one of its 
 dependencies could not be resolved: Failed to read artifact descriptor for 
 org.apache.maven.plugins:maven-repository-plugin:jar:2.3.2-SNAPSHOT
   at 
 org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve(DefaultPluginDependenciesResolver.java:129)
   at 
 org.apache.maven.plugin.internal.DefaultMavenPluginManager.getPluginDescriptor(DefaultMavenPluginManager.java:142)
   at 
 org.apache.maven.plugin.internal.DefaultMavenPluginManager.getMojoDescriptor(DefaultMavenPluginManager.java:261)
   at 
 org.apache.maven.plugin.DefaultBuildPluginManager.getMojoDescriptor(DefaultBuildPluginManager.java:185)
   at 
 org.apache.maven.lifecycle.internal.MojoDescriptorCreator.getMojoDescriptor(MojoDescriptorCreator.java:235)
   at 
 org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator.calculateTaskSegments(DefaultLifecycleTaskSegmentCalculator.java:106)
   at 
 org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator.calculateTaskSegments(DefaultLifecycleTaskSegmentCalculator.java:86)
   at 
 org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:98)
   at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
   at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
   at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
   at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
   at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:592)
   at 
 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
   at 
 org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
   at 
 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
   at 
 org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
 Caused by: org.sonatype.aether.resolution.ArtifactDescriptorException: Failed 
 to read artifact descriptor for 
 org.apache.maven.plugins:maven-repository-plugin:jar:2.3.2-SNAPSHOT
   at 
 org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:282)
   at 
 

Re: Pluggable Dependency Resolution

2011-07-31 Thread Stephen Connolly
ok, in the past i have had discussions with Jason over version range syntax.
Jason previously expoused the view that osgi format version numbers is the
-only- way to have version numbers, and anything else he would not support.

at the time i was working for a company where we had 5 segment version
numbers.

major.minor.servicepack.patch.build

and the reality is that we needed all 5.

if version ranges can work with any number of segments, that solves my itch
(besides working for a new company without such issues)

qualifier sorting is something where i see being opinionated as a value, but
number of segments is not.

the other case is where you need to change the scheme. rpm has a second
field called, iirc epoch. it is integer and increments when you change the
version number scheme... if we had provides scope then we just say change G
or A coordinates... otherwise we need some epoch like support to version
numbering.

- Stephen

---
Sent from my Android phone, so random spelling mistakes, random nonsense
words and other nonsense are a direct result of using swype to type on the
screen
On 31 Jul 2011 11:19, Hervé BOUTEMY herve.bout...@free.fr wrote:
 Le dimanche 31 juillet 2011, Mark Derricutt a écrit :
 The use case that we originally came with in our discussions revolved
 around version ranges,
 ok, that's not a version comparison but version (range) resolution
question:
 version ordering is here to define how artifacts are ordered, then the
range
 has to choose which one is to be used effectively
 Multiple strategies can make sens here, but we should be careful on how to

 provide them.

 This lets the question of pluggable version comparison need: is there a
real
 world example of unwanted version order?

 Regards,

 Hervé

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



Re: Pluggable Dependency Resolution

2011-07-31 Thread Jason van Zyl

On Jul 31, 2011, at 3:27 AM, Stephen Connolly wrote:

 i see two concerns that need separation.
 
 1. the code that fetches dependencies from wherever they live.
 

Sure, I've known people to change this in many ways. Integration of legacy 
artifact stores, migration strategies which involve pulling things from SCMs or 
what have you. Lots of people have modified this that I know of. This can 
happen in many ways and hasn't done anything too terrible in the places I've 
seen it implemented.

 2. the code that computed the dependencies graph.
 

Right, the specification and interpretation of a version scheme happening in 
multiple ways I think would be highly problematic. I don't really see much 
upside to making this pluggable.

 #1 should be something that is plugable, and in essence could be part of the
 repositories definitions... in saying that, i think we need a way to
 separate the current project build infrastructure from the fixed information
 inherent in tagging the codebase for a release. the projects repositories
 and issue tracker, are things which can evolve over time, and having them
 fixed in an immutable pom is bad for users. if we can find some way of
 fixing that concern then that would be a good thing.
 
 #2 is a different beast. i think forcing the osgi scheme on users is bad for
 users. i could be selfish and say that i no longer work for a telecom
 company that insists on 5-6 segment version numbers (depends on how you
 choose to release as to whether one of those segments applies) but forcing 4
 segments on those users is wrong. i don't mind making life a little harder
 for people venturing away from maven's opinionated view, but forcing people
 to conform to get full functionality is bad for users. where this all fits
 in is defining which versions fall within a defined range, and how to choose
 a version from within that range.
 
 iirc osgi does allow hinting in regard for which end of the range to favour,
 but because of its classloading isolation, there is less of a problem for
 osgi. osgi being designed to solve the 2 dependencies needing conflicting
 versions of the same dependency problem.
 
 i am more willing to view #2 as being something that we should be looking
 into not being plugable, but instead allow hints to the impl to say which
 end of the range to favour... closest hint wins (sort of)
 
 however we do need a clear separation between exposing that as a maven api
 and whatever code we have solving that graph for us.
 
 - Stephen
 
 ---
 Sent from my Android phone, so random spelling mistakes, random nonsense
 words and other nonsense are a direct result of using swype to type on the
 screen
 On 31 Jul 2011 07:41, Mark Struberg strub...@yahoo.de wrote:

Thanks,

Jason

--
Jason van Zyl
Founder,  Apache Maven
http://twitter.com/jvanzyl
-

believe nothing, no matter where you read it,
or who has said it,
not even if i have said it,
unless it agrees with your own reason
and your own common sense.

 -- Buddha





Re: Pluggable Dependency Resolution

2011-07-31 Thread Jason van Zyl
What if you could find another way to check API compatibility, would you need 
this at all?

On Jul 31, 2011, at 6:03 AM, Mark Derricutt wrote:

 The use case that we originally came with in our discussions revolved around 
 version ranges, and the fact that a version reference of 2.5.4 doesn't 
 actually mean  give me 2.5.4 but rather I would like 2.5.4, but meh, use 
 something higher if you need to.
 
 In the case were you have artifacts using say [1.0.0,2.0.0) and [1.5.0,3.0.0) 
 as their ranges, maven will favor the highests higher bound, so if 1.5.1, 
 1.6.0, 2.0.1, and 2.5.0 are available, maven will choose 1.6.0 to compile 
 against.
 
 What we were discussing was that ideally you'd to compile against the lowest 
 lower bound ( 1.5.1 ), this way you'd get fail fast on any changed APIs that 
 you inadvertently started to use, alerting you to the fact that you need to 
 increment the lower bound of your range.
 
 If you require bug fixes in a newer release which is triggering your tests to 
 fail, then you should also be incrementing the lower bound.
 
 The whole purpose of this flow is to drive you to releasing often, and 
 working off binary dependencies rather than long standing -SNAPSHOTs.  This 
 flow would seem to work best for places who are releasing artifacts every 2-3 
 days, and working in a continuous delivery style process - it probably 
 wouldn't work for Apache projects which often seem to favor long drawn out 
 cycles ( I recall a thread awhile ago about not wanting to release a plugin 
 cause it only had one bug fix in it ). 
 
 
 Having read the other comments I realize my initial idea is a little crazy, 
 and as Jason pointed out in the first response, probably more trouble than 
 its worth.
 
 Mark
 
 
 
 
 On 31/07/2011, at 9:41 PM, Hervé BOUTEMY wrote:
 
 Do you have practical examples that either are not supported, or the actual 
 ordering is the contrary than you expected?
 

Thanks,

Jason

--
Jason van Zyl
Founder,  Apache Maven
http://twitter.com/jvanzyl
-

Simplex sigillum veri. (Simplicity is the seal of truth.)





Re: Pluggable Dependency Resolution

2011-07-31 Thread Mark Struberg
I thought about that too, and actually don't think that there is a general 
solution.

Two examples:

* JDBC-4.1 Driver and DataSource interfaces in OpenJDK-1.7 got a new 
getParentLogger() method. To compile your own DataSource with java7 you need to 
implement this method. It is perfectly compatible to get executed on java5 and 
6 too, so what you need is the latest version of the dependency (JDBC-4.1) 
while compiling your project. If you get invoked as a callback or similar, it's 
a good idea to implement the widest possible range.

* The story turns around if you act as a client invoking other libs. If 
interfaces you use in your projects got extended with new methods in a new 
version, then this will obviously not work together with older lib versions 
once you made use of the new methods. In this case you should restrict yourself 
to the subset of methods available in all versions of the lib.  

Plus, there are lots of grey tones between those 2 scenarios. E.g. if some 
method parameter or config tag expresses version and capability...

LieGrue,
strub

PS: you can at least check the backward compat of your own lib with the 
maven-clirr-plugin.

--- On Sun, 7/31/11, Jason van Zyl ja...@sonatype.com wrote:

 From: Jason van Zyl ja...@sonatype.com
 Subject: Re: Pluggable Dependency Resolution
 To: Maven Developers List dev@maven.apache.org
 Date: Sunday, July 31, 2011, 11:58 AM
 What if you could find another way to
 check API compatibility, would you need this at all?
 
 On Jul 31, 2011, at 6:03 AM, Mark Derricutt wrote:
 
  The use case that we originally came with in our
 discussions revolved around version ranges, and the fact
 that a version reference of 2.5.4 doesn't actually mean 
 give me 2.5.4 but rather I would like 2.5.4, but meh, use
 something higher if you need to.
  
  In the case were you have artifacts using say
 [1.0.0,2.0.0) and [1.5.0,3.0.0) as their ranges, maven will
 favor the highests higher bound, so if 1.5.1, 1.6.0, 2.0.1,
 and 2.5.0 are available, maven will choose 1.6.0 to compile
 against.
  
  What we were discussing was that ideally you'd to
 compile against the lowest lower bound ( 1.5.1 ), this way
 you'd get fail fast on any changed APIs that you
 inadvertently started to use, alerting you to the fact that
 you need to increment the lower bound of your range.
  
  If you require bug fixes in a newer release which is
 triggering your tests to fail, then you should also be
 incrementing the lower bound.
  
  The whole purpose of this flow is to drive you to
 releasing often, and working off binary dependencies rather
 than long standing -SNAPSHOTs.  This flow would seem to
 work best for places who are releasing artifacts every 2-3
 days, and working in a continuous delivery style process -
 it probably wouldn't work for Apache projects which often
 seem to favor long drawn out cycles ( I recall a thread
 awhile ago about not wanting to release a plugin cause it
 only had one bug fix in it ). 
  
  
  Having read the other comments I realize my initial
 idea is a little crazy, and as Jason pointed out in the
 first response, probably more trouble than its worth.
  
  Mark
  
  
  
  
  On 31/07/2011, at 9:41 PM, Hervé BOUTEMY wrote:
  
  Do you have practical examples that either are not
 supported, or the actual 
  ordering is the contrary than you expected?
  


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



Re: Pluggable Dependency Resolution

2011-07-31 Thread Mark Derricutt
Potentially not.  I suppose if there was a way to say [2.0.0,3.0.0) *excluding 
SNAPSHOTS* then that would certainly be in my favor.

From memory there was a discussion some time ago regarding range resolution 
excluding -SNAPSHOTs unless the artifacts were also in the current reactor 
build, from memory the discussion was last stalled around whether to have a 
command line arg for this, or to introduce something like 
buildallowExternalSnapshots//build.


On 31/07/2011, at 11:58 PM, Jason van Zyl wrote:

 What if you could find another way to check API compatibility, would you need 
 this at all?



Re: Pluggable Dependency Resolution

2011-07-31 Thread Stuart McCulloch
On 31 Jul 2011, at 13:15, Mark Struberg wrote:

 I thought about that too, and actually don't think that there is a general 
 solution.
 
 Two examples:
 
 * JDBC-4.1 Driver and DataSource interfaces in OpenJDK-1.7 got a new 
 getParentLogger() method. To compile your own DataSource with java7 you need 
 to implement this method. It is perfectly compatible to get executed on java5 
 and 6 too, so what you need is the latest version of the dependency 
 (JDBC-4.1) while compiling your project. If you get invoked as a callback or 
 similar, it's a good idea to implement the widest possible range.
 
 * The story turns around if you act as a client invoking other libs. If 
 interfaces you use in your projects got extended with new methods in a new 
 version, then this will obviously not work together with older lib versions 
 once you made use of the new methods. In this case you should restrict 
 yourself to the subset of methods available in all versions of the lib.  

FYI, those are the two classic provider vs consumer scenarios:

   http://www.osgi.org/wiki/uploads/Links/SemanticVersioning.pdf

 Plus, there are lots of grey tones between those 2 scenarios. E.g. if some 
 method parameter or config tag expresses version and capability...
 
 LieGrue,
 strub
 
 PS: you can at least check the backward compat of your own lib with the 
 maven-clirr-plugin.
 
 --- On Sun, 7/31/11, Jason van Zyl ja...@sonatype.com wrote:
 
 From: Jason van Zyl ja...@sonatype.com
 Subject: Re: Pluggable Dependency Resolution
 To: Maven Developers List dev@maven.apache.org
 Date: Sunday, July 31, 2011, 11:58 AM
 What if you could find another way to
 check API compatibility, would you need this at all?
 
 On Jul 31, 2011, at 6:03 AM, Mark Derricutt wrote:
 
 The use case that we originally came with in our
 discussions revolved around version ranges, and the fact
 that a version reference of 2.5.4 doesn't actually mean 
 give me 2.5.4 but rather I would like 2.5.4, but meh, use
 something higher if you need to.
 
 In the case were you have artifacts using say
 [1.0.0,2.0.0) and [1.5.0,3.0.0) as their ranges, maven will
 favor the highests higher bound, so if 1.5.1, 1.6.0, 2.0.1,
 and 2.5.0 are available, maven will choose 1.6.0 to compile
 against.
 
 What we were discussing was that ideally you'd to
 compile against the lowest lower bound ( 1.5.1 ), this way
 you'd get fail fast on any changed APIs that you
 inadvertently started to use, alerting you to the fact that
 you need to increment the lower bound of your range.
 
 If you require bug fixes in a newer release which is
 triggering your tests to fail, then you should also be
 incrementing the lower bound.
 
 The whole purpose of this flow is to drive you to
 releasing often, and working off binary dependencies rather
 than long standing -SNAPSHOTs.  This flow would seem to
 work best for places who are releasing artifacts every 2-3
 days, and working in a continuous delivery style process -
 it probably wouldn't work for Apache projects which often
 seem to favor long drawn out cycles ( I recall a thread
 awhile ago about not wanting to release a plugin cause it
 only had one bug fix in it ). 
 
 
 Having read the other comments I realize my initial
 idea is a little crazy, and as Jason pointed out in the
 first response, probably more trouble than its worth.
 
 Mark
 
 
 
 
 On 31/07/2011, at 9:41 PM, Hervé BOUTEMY wrote:
 
 Do you have practical examples that either are not
 supported, or the actual 
 ordering is the contrary than you expected?
 
 
 
 -
 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: Pluggable Dependency Resolution

2011-07-31 Thread Mark Derricutt
I've been meaning to check out the clirr-plugin - I'll add that to my TODO 
reading list for the morning.

On 1/08/2011, at 12:15 AM, Mark Struberg wrote:

 PS: you can at least check the backward compat of your own lib with the 
 maven-clirr-plugin.



Re: non-reproducible issues on CI

2011-07-31 Thread Ansgar Konermann
Had a similar if not same issue while developing a plugin. Fixed it by
adding

systemProperties
  localRepository${repository.integrationtests}localRepository
systemProperties

to surefire plugin configuration in IT phase.

Works for me with surefire-plugin 2.9 and invoker-plugin 1.5

Regards,

Ansgar
 Am 31.07.2011 13:50 schrieb Dennis Lundberg denn...@apache.org:


Re: non-reproducible issues on CI

2011-07-31 Thread Dennis Lundberg
On 2011-07-31 14:42, Ansgar Konermann wrote:
 Had a similar if not same issue while developing a plugin. Fixed it by
 adding
 
 systemProperties
   localRepository${repository.integrationtests}localRepository
 systemProperties
 
 to surefire plugin configuration in IT phase.
 
 Works for me with surefire-plugin 2.9 and invoker-plugin 1.5
 
 Regards,
 
 Ansgar
  Am 31.07.2011 13:50 schrieb Dennis Lundberg denn...@apache.org:
 

Thanks for the hint. I have already tried this, but unfortunately it
doesn't work for this use case.

-- 
Dennis Lundberg

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



Re: non-reproducible issues on CI

2011-07-31 Thread Mark Struberg
That's fine, but I fear only as long as you don't use -Dmaven.repo.local on 
your commandline. And exactly that's how our jenkins was configured.

LieGrue,
strub

--- On Sun, 7/31/11, Ansgar Konermann ansgar.konerm...@googlemail.com wrote:

 From: Ansgar Konermann ansgar.konerm...@googlemail.com
 Subject: Re: non-reproducible issues on CI
 To: Maven Developers List dev@maven.apache.org
 Date: Sunday, July 31, 2011, 12:42 PM
 Had a similar if not same issue while
 developing a plugin. Fixed it by
 adding
 
 systemProperties
  
 localRepository${repository.integrationtests}localRepository
 systemProperties
 
 to surefire plugin configuration in IT phase.
 
 Works for me with surefire-plugin 2.9 and invoker-plugin
 1.5
 
 Regards,
 
 Ansgar
  Am 31.07.2011 13:50 schrieb Dennis Lundberg denn...@apache.org:


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



Re: non-reproducible issues on CI

2011-07-31 Thread Benson Margulies
Mark,

THe problem is this: jenkins gets going using information from the
global settings.xml before any command-line args are processed. So
you've created a monster, as it were. Luckily, there's a job option to
use an alternative settings so long as it's in the svn real estate
that the job knows about. So while you can have infra deploy a
'special' maven, you don't have to.

--benson


On Sun, Jul 31, 2011 at 10:40 AM, Mark Struberg strub...@yahoo.de wrote:
 That's fine, but I fear only as long as you don't use -Dmaven.repo.local on 
 your commandline. And exactly that's how our jenkins was configured.

 LieGrue,
 strub

 --- On Sun, 7/31/11, Ansgar Konermann ansgar.konerm...@googlemail.com wrote:

 From: Ansgar Konermann ansgar.konerm...@googlemail.com
 Subject: Re: non-reproducible issues on CI
 To: Maven Developers List dev@maven.apache.org
 Date: Sunday, July 31, 2011, 12:42 PM
 Had a similar if not same issue while
 developing a plugin. Fixed it by
 adding

 systemProperties

 localRepository${repository.integrationtests}localRepository
 systemProperties

 to surefire plugin configuration in IT phase.

 Works for me with surefire-plugin 2.9 and invoker-plugin
 1.5

 Regards,

 Ansgar
  Am 31.07.2011 13:50 schrieb Dennis Lundberg denn...@apache.org:


 -
 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: non-reproducible issues on CI

2011-07-31 Thread Mark Struberg
Hi Benson!

Thanks for this information!

I don't have much clue about jenkins (apart from reading the build messages), 
nor any detailed info about the setup at the ASF.

Did you understand Dennis' problem description and do have mojo + knowledge how 
to fix this on our CI? Our problem is most probably that the current build uses 
the -Dmaven.repo.local property to separate local repos for different builds. 
I proposed to use a different maven installation just for being able to set the 
localRepository. The settings option might as well do, at least worth a try.

Would be really appreciated and a big help if you could take the time and help 
us fixing our CI build!

txs and LieGrue,
strub


--- On Sun, 7/31/11, Benson Margulies bimargul...@gmail.com wrote:

 From: Benson Margulies bimargul...@gmail.com
 Subject: Re: non-reproducible issues on CI
 To: Maven Developers List dev@maven.apache.org
 Date: Sunday, July 31, 2011, 2:49 PM
 Mark,
 
 THe problem is this: jenkins gets going using information
 from the
 global settings.xml before any command-line args are
 processed. So
 you've created a monster, as it were. Luckily, there's a
 job option to
 use an alternative settings so long as it's in the svn real
 estate
 that the job knows about. So while you can have infra
 deploy a
 'special' maven, you don't have to.
 
 --benson
 
 
 On Sun, Jul 31, 2011 at 10:40 AM, Mark Struberg strub...@yahoo.de
 wrote:
  That's fine, but I fear only as long as you don't use
 -Dmaven.repo.local on your commandline. And exactly that's
 how our jenkins was configured.
 
  LieGrue,
  strub
 
  --- On Sun, 7/31/11, Ansgar Konermann ansgar.konerm...@googlemail.com
 wrote:
 
  From: Ansgar Konermann ansgar.konerm...@googlemail.com
  Subject: Re: non-reproducible issues on CI
  To: Maven Developers List dev@maven.apache.org
  Date: Sunday, July 31, 2011, 12:42 PM
  Had a similar if not same issue while
  developing a plugin. Fixed it by
  adding
 
  systemProperties
 
 
 localRepository${repository.integrationtests}localRepository
  systemProperties
 
  to surefire plugin configuration in IT phase.
 
  Works for me with surefire-plugin 2.9 and
 invoker-plugin
  1.5
 
  Regards,
 
  Ansgar
   Am 31.07.2011 13:50 schrieb Dennis Lundberg
 denn...@apache.org:
 
 
 
 -
  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
 


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



Re: [VOTE] Release Maven Site Plugin version 3.0 and Maven Reporting Exec version 1.0.1

2011-07-31 Thread Hervé BOUTEMY
+1

tested on Maven Core with success

Regards,

Hervé

Le samedi 30 juillet 2011, Dennis Lundberg a écrit :
 Hi,
 
 We solved 46+1 issues:
 http://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=11146styleName=
 Htmlversion=16829
 http://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=11761styleName
 =Htmlversion=17501
 
 There are still a couple of issues left in JIRA:
 http://jira.codehaus.org/secure/IssueNavigator.jspa?reset=truepid=11146st
 atus=1
 
 Staging repos:
 https://repository.apache.org/content/repositories/maven-015/
 https://repository.apache.org/content/repositories/maven-016/
 
 Staging sites:
 http://maven.apache.org/plugins/maven-site-plugin-3.0/
 http://maven.apache.org/shared/maven-reporting-exec-1.0.1/
 
 Guide to testing staged releases:
 http://maven.apache.org/guides/development/guide-testing-releases.html
 
 Vote open for 72 hours.
 
 [ ] +1
 [ ] +0
 [ ] -1


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



Re: [VOTE] Release Maven Site Plugin version 3.0 and Maven Reporting Exec version 1.0.1

2011-07-31 Thread Mark Struberg
not yet perfect, but much better than the previous version ;)

+1

LieGrue,
strub

--- On Sun, 7/31/11, Hervé BOUTEMY herve.bout...@free.fr wrote:

 From: Hervé BOUTEMY herve.bout...@free.fr
 Subject: Re: [VOTE] Release Maven Site Plugin version 3.0 and Maven Reporting 
 Exec version 1.0.1
 To: Maven Developers List dev@maven.apache.org
 Date: Sunday, July 31, 2011, 3:01 PM
 +1
 
 tested on Maven Core with success
 
 Regards,
 
 Hervé
 
 Le samedi 30 juillet 2011, Dennis Lundberg a écrit :
  Hi,
  
  We solved 46+1 issues:
  http://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=11146styleName=
  Htmlversion=16829
  http://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=11761styleName
  =Htmlversion=17501
  
  There are still a couple of issues left in JIRA:
  http://jira.codehaus.org/secure/IssueNavigator.jspa?reset=truepid=11146st
  atus=1
  
  Staging repos:
  https://repository.apache.org/content/repositories/maven-015/
  https://repository.apache.org/content/repositories/maven-016/
  
  Staging sites:
  http://maven.apache.org/plugins/maven-site-plugin-3.0/
  http://maven.apache.org/shared/maven-reporting-exec-1.0.1/
  
  Guide to testing staged releases:
  http://maven.apache.org/guides/development/guide-testing-releases.html
  
  Vote open for 72 hours.
  
  [ ] +1
  [ ] +0
  [ ] -1
 
 
 -
 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: non-reproducible issues on CI

2011-07-31 Thread Benson Margulies
If you check a settings.xml into the tree where this job can fetch it,
I will try to go from there.

On Sun, Jul 31, 2011 at 10:58 AM, Mark Struberg strub...@yahoo.de wrote:
 Hi Benson!

 Thanks for this information!

 I don't have much clue about jenkins (apart from reading the build messages), 
 nor any detailed info about the setup at the ASF.

 Did you understand Dennis' problem description and do have mojo + knowledge 
 how to fix this on our CI? Our problem is most probably that the current 
 build uses the -Dmaven.repo.local property to separate local repos for 
 different builds.
 I proposed to use a different maven installation just for being able to set 
 the localRepository. The settings option might as well do, at least worth a 
 try.

 Would be really appreciated and a big help if you could take the time and 
 help us fixing our CI build!

 txs and LieGrue,
 strub


 --- On Sun, 7/31/11, Benson Margulies bimargul...@gmail.com wrote:

 From: Benson Margulies bimargul...@gmail.com
 Subject: Re: non-reproducible issues on CI
 To: Maven Developers List dev@maven.apache.org
 Date: Sunday, July 31, 2011, 2:49 PM
 Mark,

 THe problem is this: jenkins gets going using information
 from the
 global settings.xml before any command-line args are
 processed. So
 you've created a monster, as it were. Luckily, there's a
 job option to
 use an alternative settings so long as it's in the svn real
 estate
 that the job knows about. So while you can have infra
 deploy a
 'special' maven, you don't have to.

 --benson


 On Sun, Jul 31, 2011 at 10:40 AM, Mark Struberg strub...@yahoo.de
 wrote:
  That's fine, but I fear only as long as you don't use
 -Dmaven.repo.local on your commandline. And exactly that's
 how our jenkins was configured.
 
  LieGrue,
  strub
 
  --- On Sun, 7/31/11, Ansgar Konermann ansgar.konerm...@googlemail.com
 wrote:
 
  From: Ansgar Konermann ansgar.konerm...@googlemail.com
  Subject: Re: non-reproducible issues on CI
  To: Maven Developers List dev@maven.apache.org
  Date: Sunday, July 31, 2011, 12:42 PM
  Had a similar if not same issue while
  developing a plugin. Fixed it by
  adding
 
  systemProperties
 
 
 localRepository${repository.integrationtests}localRepository
  systemProperties
 
  to surefire plugin configuration in IT phase.
 
  Works for me with surefire-plugin 2.9 and
 invoker-plugin
  1.5
 
  Regards,
 
  Ansgar
   Am 31.07.2011 13:50 schrieb Dennis Lundberg
 denn...@apache.org:
 
 
 
 -
  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



 -
 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



Random errors in parallely executed tests

2011-07-31 Thread Mark Struberg
Hi!

While browsing our CI results I saw randomly failing tests. Most of them are 
caused by starting jetty on a specific port which already is in use by another 
test.

java.net.BindException: Address already in use
at sun.nio.ch.Net.bind(Native Method)

Clearly if 2 unit tests fire up a jetty instance on the same port, then this 
cannot run in parallel


Proposal: 

What if we add a property in the maven-surefire-plugin to name a semaphore 
resource?

resourceport1080/resource

This could be a comma separated list. Surefire will then check if any resource 
is blocked before scheduling the next test.
The problematic part of course is that surefire must communicate this over 
multiple parallel builds.

WDYT?

LieGrue,
strub


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



Re: Random errors in parallely executed tests

2011-07-31 Thread Olivier Lamy
Hello
Jetty is normally able to start on a random port.
I have fixed that recently in archetype.
Imho better solution.
Which tests fail for this reason ?

--
Olivier
send from a mobile
 Le 31 juil. 2011 17:43, Mark Struberg strub...@yahoo.de a écrit :
 Hi!

 While browsing our CI results I saw randomly failing tests. Most of them
are caused by starting jetty on a specific port which already is in use by
another test.

 java.net.BindException: Address already in use
 at sun.nio.ch.Net.bind(Native Method)

 Clearly if 2 unit tests fire up a jetty instance on the same port, then
this cannot run in parallel


 Proposal:

 What if we add a property in the maven-surefire-plugin to name a semaphore
resource?

 resourceport1080/resource

 This could be a comma separated list. Surefire will then check if any
resource is blocked before scheduling the next test.
 The problematic part of course is that surefire must communicate this over
multiple parallel builds.

 WDYT?

 LieGrue,
 strub


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



Re: Random errors in parallely executed tests

2011-07-31 Thread Mark Struberg
Hi Olivier!

Do you have a sample how to incorporate this into our unit tests? I only knew 
that jetty is able to assign a random port for the stop port, but didn't know 
that the same exists for the serving port. 

LieGrue,
strub

--- On Sun, 7/31/11, Olivier Lamy ol...@apache.org wrote:

 From: Olivier Lamy ol...@apache.org
 Subject: Re: Random errors in parallely executed tests
 To: Maven Developers List dev@maven.apache.org
 Date: Sunday, July 31, 2011, 3:55 PM
 Hello
 Jetty is normally able to start on a random port.
 I have fixed that recently in archetype.
 Imho better solution.
 Which tests fail for this reason ?
 
 --
 Olivier
 send from a mobile
  Le 31 juil. 2011 17:43, Mark Struberg strub...@yahoo.de
 a écrit :
  Hi!
 
  While browsing our CI results I saw randomly failing
 tests. Most of them
 are caused by starting jetty on a specific port which
 already is in use by
 another test.
 
  java.net.BindException: Address already in use
  at sun.nio.ch.Net.bind(Native Method)
 
  Clearly if 2 unit tests fire up a jetty instance on
 the same port, then
 this cannot run in parallel
 
 
  Proposal:
 
  What if we add a property in the maven-surefire-plugin
 to name a semaphore
 resource?
 
  resourceport1080/resource
 
  This could be a comma separated list. Surefire will
 then check if any
 resource is blocked before scheduling the next test.
  The problematic part of course is that surefire must
 communicate this over
 multiple parallel builds.
 
  WDYT?
 
  LieGrue,
  strub
 
 
 
 -
  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: Random errors in parallely executed tests

2011-07-31 Thread Hervé BOUTEMY
ah, I knew you did something like this but could not find it :)

question: ok, random port, but random and guaranteed to success? ie it makes 
the effort to find an unused port?
see r1152587: I chose an arbitrary port

we should add this to a FAQ, since this is a common use case

Regards,

Hervé

Le dimanche 31 juillet 2011, Olivier Lamy a écrit :
 Hello
 Jetty is normally able to start on a random port.
 I have fixed that recently in archetype.
 Imho better solution.
 Which tests fail for this reason ?
 
 --
 Olivier
 send from a mobile
 
  Le 31 juil. 2011 17:43, Mark Struberg strub...@yahoo.de a écrit :
  Hi!
  
  While browsing our CI results I saw randomly failing tests. Most of them
 
 are caused by starting jetty on a specific port which already is in use by
 another test.
 
  java.net.BindException: Address already in use
  at sun.nio.ch.Net.bind(Native Method)
  
  Clearly if 2 unit tests fire up a jetty instance on the same port, then
 
 this cannot run in parallel
 
  Proposal:
  
  What if we add a property in the maven-surefire-plugin to name a
  semaphore
 
 resource?
 
  resourceport1080/resource
  
  This could be a comma separated list. Surefire will then check if any
 
 resource is blocked before scheduling the next test.
 
  The problematic part of course is that surefire must communicate this
  over
 
 multiple parallel builds.
 
  WDYT?
  
  LieGrue,
  strub
  
  
  -
  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: Random errors in parallely executed tests

2011-07-31 Thread Benson Margulies
the build helper has a goal for this.

On Jul 31, 2011, at 12:09 PM, Mark Struberg strub...@yahoo.de wrote:

 Hi Olivier!

 Do you have a sample how to incorporate this into our unit tests? I only knew 
 that jetty is able to assign a random port for the stop port, but didn't know 
 that the same exists for the serving port.

 LieGrue,
 strub

 --- On Sun, 7/31/11, Olivier Lamy ol...@apache.org wrote:

 From: Olivier Lamy ol...@apache.org
 Subject: Re: Random errors in parallely executed tests
 To: Maven Developers List dev@maven.apache.org
 Date: Sunday, July 31, 2011, 3:55 PM
 Hello
 Jetty is normally able to start on a random port.
 I have fixed that recently in archetype.
 Imho better solution.
 Which tests fail for this reason ?

 --
 Olivier
 send from a mobile
 Le 31 juil. 2011 17:43, Mark Struberg strub...@yahoo.de
 a écrit :
 Hi!

 While browsing our CI results I saw randomly failing
 tests. Most of them
 are caused by starting jetty on a specific port which
 already is in use by
 another test.

 java.net.BindException: Address already in use
 at sun.nio.ch.Net.bind(Native Method)

 Clearly if 2 unit tests fire up a jetty instance on
 the same port, then
 this cannot run in parallel


 Proposal:

 What if we add a property in the maven-surefire-plugin
 to name a semaphore
 resource?

 resourceport1080/resource

 This could be a comma separated list. Surefire will
 then check if any
 resource is blocked before scheduling the next test.
 The problematic part of course is that surefire must
 communicate this over
 multiple parallel builds.

 WDYT?

 LieGrue,
 strub



 -
 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


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



Re: Random errors in parallely executed tests

2011-07-31 Thread Stephen Connolly
the buildhelper goal is for when you are launching jetty/etc from the pom.
or when you need to filter the port into on disk resources.

if launching within the test case, just assign it to port 0. a request for
port 0 is a request for an unused port in the top 16k (or depending on the
os, anywhere above 1024). then you ask the connector what port it bound to.

- Stephen

---
Sent from my Android phone, so random spelling mistakes, random nonsense
words and other nonsense are a direct result of using swype to type on the
screen
On 31 Jul 2011 18:40, Benson Margulies bimargul...@gmail.com wrote:


Re: Random errors in parallely executed tests

2011-07-31 Thread Mark Struberg
yea, that is good news. Will try to tweak this for all wagon tests too. 
Do you know since when this works? Is this available in jetty-6.1.26?

Btw, when going through our Tests I found lots of tests which do not cleanup 
the target/local-repo (or similar) before they run. Some of them only work 
because they work on left-overs from previous tests. This is pretty dangerous 
and should get fixed asap.

I didn't touch them yet because I first like to get the IT on our CI box 
working again. 

LieGrue,
strub


--- On Sun, 7/31/11, Stephen Connolly stephen.alan.conno...@gmail.com wrote:

 From: Stephen Connolly stephen.alan.conno...@gmail.com
 Subject: Re: Random errors in parallely executed tests
 To: Maven Developers List dev@maven.apache.org
 Date: Sunday, July 31, 2011, 6:28 PM
 the buildhelper goal is for when you
 are launching jetty/etc from the pom.
 or when you need to filter the port into on disk
 resources.
 
 if launching within the test case, just assign it to port
 0. a request for
 port 0 is a request for an unused port in the top 16k (or
 depending on the
 os, anywhere above 1024). then you ask the connector what
 port it bound to.
 
 - Stephen
 
 ---
 Sent from my Android phone, so random spelling mistakes,
 random nonsense
 words and other nonsense are a direct result of using swype
 to type on the
 screen
 On 31 Jul 2011 18:40, Benson Margulies bimargul...@gmail.com
 wrote:
 

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



Re: Random errors in parallely executed tests

2011-07-31 Thread Stephen Connolly
afaik since always. standard socket.open(port) behaviour when port is 0.

- Stephen

---
Sent from my Android phone, so random spelling mistakes, random nonsense
words and other nonsense are a direct result of using swype to type on the
screen
On 31 Jul 2011 20:00, Mark Struberg strub...@yahoo.de wrote:
 yea, that is good news. Will try to tweak this for all wagon tests too.
 Do you know since when this works? Is this available in jetty-6.1.26?

 Btw, when going through our Tests I found lots of tests which do not
cleanup the target/local-repo (or similar) before they run. Some of them
only work because they work on left-overs from previous tests. This is
pretty dangerous and should get fixed asap.

 I didn't touch them yet because I first like to get the IT on our CI box
working again.

 LieGrue,
 strub


 --- On Sun, 7/31/11, Stephen Connolly stephen.alan.conno...@gmail.com
wrote:

 From: Stephen Connolly stephen.alan.conno...@gmail.com
 Subject: Re: Random errors in parallely executed tests
 To: Maven Developers List dev@maven.apache.org
 Date: Sunday, July 31, 2011, 6:28 PM
 the buildhelper goal is for when you
 are launching jetty/etc from the pom.
 or when you need to filter the port into on disk
 resources.

 if launching within the test case, just assign it to port
 0. a request for
 port 0 is a request for an unused port in the top 16k (or
 depending on the
 os, anywhere above 1024). then you ask the connector what
 port it bound to.

 - Stephen

 ---
 Sent from my Android phone, so random spelling mistakes,
 random nonsense
 words and other nonsense are a direct result of using swype
 to type on the
 screen
 On 31 Jul 2011 18:40, Benson Margulies bimargul...@gmail.com
 wrote:


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



Re: non-reproducible issues on CI

2011-07-31 Thread Jason van Zyl
I will re-expose the Sonatype Hudson instances as a point of reference. They 
have been running successfully since you guys flipped over to Jenkins. Our 
setup can at least serve as some guidance as to what might be wrong with your 
setup.

On Jul 31, 2011, at 10:58 AM, Mark Struberg wrote:

 Hi Benson!
 
 Thanks for this information!
 
 I don't have much clue about jenkins (apart from reading the build messages), 
 nor any detailed info about the setup at the ASF.
 
 Did you understand Dennis' problem description and do have mojo + knowledge 
 how to fix this on our CI? Our problem is most probably that the current 
 build uses the -Dmaven.repo.local property to separate local repos for 
 different builds. 
 I proposed to use a different maven installation just for being able to set 
 the localRepository. The settings option might as well do, at least worth a 
 try.
 
 Would be really appreciated and a big help if you could take the time and 
 help us fixing our CI build!
 
 txs and LieGrue,
 strub
 
 
 --- On Sun, 7/31/11, Benson Margulies bimargul...@gmail.com wrote:
 
 From: Benson Margulies bimargul...@gmail.com
 Subject: Re: non-reproducible issues on CI
 To: Maven Developers List dev@maven.apache.org
 Date: Sunday, July 31, 2011, 2:49 PM
 Mark,
 
 THe problem is this: jenkins gets going using information
 from the
 global settings.xml before any command-line args are
 processed. So
 you've created a monster, as it were. Luckily, there's a
 job option to
 use an alternative settings so long as it's in the svn real
 estate
 that the job knows about. So while you can have infra
 deploy a
 'special' maven, you don't have to.
 
 --benson
 
 
 On Sun, Jul 31, 2011 at 10:40 AM, Mark Struberg strub...@yahoo.de
 wrote:
 That's fine, but I fear only as long as you don't use
 -Dmaven.repo.local on your commandline. And exactly that's
 how our jenkins was configured.
 
 LieGrue,
 strub
 
 --- On Sun, 7/31/11, Ansgar Konermann ansgar.konerm...@googlemail.com
 wrote:
 
 From: Ansgar Konermann ansgar.konerm...@googlemail.com
 Subject: Re: non-reproducible issues on CI
 To: Maven Developers List dev@maven.apache.org
 Date: Sunday, July 31, 2011, 12:42 PM
 Had a similar if not same issue while
 developing a plugin. Fixed it by
 adding
 
 systemProperties
 
 
 localRepository${repository.integrationtests}localRepository
 systemProperties
 
 to surefire plugin configuration in IT phase.
 
 Works for me with surefire-plugin 2.9 and
 invoker-plugin
 1.5
 
 Regards,
 
 Ansgar
  Am 31.07.2011 13:50 schrieb Dennis Lundberg
 denn...@apache.org:
 
 
 
 -
 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
 
 
 
 -
 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
http://twitter.com/jvanzyl
-

First, the taking in of scattered particulars under one Idea,
so that everyone understands what is being talked about ... Second,
the separation of the Idea into parts, by dividing it at the joints,
as nature directs, not breaking any limb in half as a bad carver might.

  -- Plato, Phaedrus (Notes on the Synthesis of Form by C. Alexander)





Re: non-reproducible issues on CI

2011-07-31 Thread Mark Struberg
Hi Jason!

The bugs are fixed already. What we now see are _real_ bugs and they should 
fail in your CI system too (can also be reproduced locally).

LieGrue,
strub

--- On Sun, 7/31/11, Jason van Zyl ja...@sonatype.com wrote:

 From: Jason van Zyl ja...@sonatype.com
 Subject: Re: non-reproducible issues on CI
 To: Maven Developers List dev@maven.apache.org
 Date: Sunday, July 31, 2011, 8:41 PM
 I will re-expose the Sonatype Hudson
 instances as a point of reference. They have been running
 successfully since you guys flipped over to Jenkins. Our
 setup can at least serve as some guidance as to what might
 be wrong with your setup.
 
 On Jul 31, 2011, at 10:58 AM, Mark Struberg wrote:
 
  Hi Benson!
  
  Thanks for this information!
  
  I don't have much clue about jenkins (apart from
 reading the build messages), nor any detailed info about the
 setup at the ASF.
  
  Did you understand Dennis' problem description and do
 have mojo + knowledge how to fix this on our CI? Our problem
 is most probably that the current build uses the
 -Dmaven.repo.local property to separate local repos for
 different builds. 
  I proposed to use a different maven installation just
 for being able to set the localRepository. The settings
 option might as well do, at least worth a try.
  
  Would be really appreciated and a big help if you
 could take the time and help us fixing our CI build!
  
  txs and LieGrue,
  strub
  
  
  --- On Sun, 7/31/11, Benson Margulies bimargul...@gmail.com
 wrote:
  
  From: Benson Margulies bimargul...@gmail.com
  Subject: Re: non-reproducible issues on CI
  To: Maven Developers List dev@maven.apache.org
  Date: Sunday, July 31, 2011, 2:49 PM
  Mark,
  
  THe problem is this: jenkins gets going using
 information
  from the
  global settings.xml before any command-line args
 are
  processed. So
  you've created a monster, as it were. Luckily,
 there's a
  job option to
  use an alternative settings so long as it's in the
 svn real
  estate
  that the job knows about. So while you can have
 infra
  deploy a
  'special' maven, you don't have to.
  
  --benson
  
  
  On Sun, Jul 31, 2011 at 10:40 AM, Mark Struberg
 strub...@yahoo.de
  wrote:
  That's fine, but I fear only as long as you
 don't use
  -Dmaven.repo.local on your commandline. And
 exactly that's
  how our jenkins was configured.
  
  LieGrue,
  strub
  
  --- On Sun, 7/31/11, Ansgar Konermann ansgar.konerm...@googlemail.com
  wrote:
  
  From: Ansgar Konermann ansgar.konerm...@googlemail.com
  Subject: Re: non-reproducible issues on
 CI
  To: Maven Developers List dev@maven.apache.org
  Date: Sunday, July 31, 2011, 12:42 PM
  Had a similar if not same issue while
  developing a plugin. Fixed it by
  adding
  
  systemProperties
  
  
 
 localRepository${repository.integrationtests}localRepository
  systemProperties
  
  to surefire plugin configuration in IT
 phase.
  
  Works for me with surefire-plugin 2.9 and
  invoker-plugin
  1.5
  
  Regards,
  
  Ansgar
   Am 31.07.2011 13:50 schrieb Dennis
 Lundberg
  denn...@apache.org:
  
  
  
 
 -
  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
  
  
  
 
 -
  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
 http://twitter.com/jvanzyl
 -
 
 First, the taking in of scattered particulars under one
 Idea,
 so that everyone understands what is being talked about ...
 Second,
 the separation of the Idea into parts, by dividing it at
 the joints,
 as nature directs, not breaking any limb in half as a bad
 carver might.
 
   -- Plato, Phaedrus (Notes on the Synthesis of Form
 by C. Alexander)
 
 
 


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



Jenkins is sending more e-mails now

2011-07-31 Thread Dennis Lundberg
Hi

Just a heads up that those of you that are subscribed to
notificati...@maven.apache.org will be seeing a lot more e-mails coming
your way from Jenkins.

I'm going over the configurations for our projects in Jenkins, one
parameter at a time. This time I've enabled e-mail notifications for
pretty much all of our builds. They are all configured to be sent to
notificati...@maven.apache.org, so those of you that are interested in
getting direct feedback on how healthy our builds are, now is the time
to subscribe.

I've also added a JDK 1.7 build of core-integration-testing+maven-3,
which passes :-)

-- 
Dennis Lundberg

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



Re: non-reproducible issues on CI

2011-07-31 Thread Benson Margulies
It turns out that someone had accidently arranged for several projects
to share a workspace, and then to use a private maven repo inside that
workspace, with the predicable disasterous consequences.

However, I'm sure the Sonatype config will be helpful.


On Sun, Jul 31, 2011 at 4:41 PM, Jason van Zyl ja...@sonatype.com wrote:
 I will re-expose the Sonatype Hudson instances as a point of reference. They 
 have been running successfully since you guys flipped over to Jenkins. Our 
 setup can at least serve as some guidance as to what might be wrong with your 
 setup.

 On Jul 31, 2011, at 10:58 AM, Mark Struberg wrote:

 Hi Benson!

 Thanks for this information!

 I don't have much clue about jenkins (apart from reading the build 
 messages), nor any detailed info about the setup at the ASF.

 Did you understand Dennis' problem description and do have mojo + knowledge 
 how to fix this on our CI? Our problem is most probably that the current 
 build uses the -Dmaven.repo.local property to separate local repos for 
 different builds.
 I proposed to use a different maven installation just for being able to set 
 the localRepository. The settings option might as well do, at least worth a 
 try.

 Would be really appreciated and a big help if you could take the time and 
 help us fixing our CI build!

 txs and LieGrue,
 strub


 --- On Sun, 7/31/11, Benson Margulies bimargul...@gmail.com wrote:

 From: Benson Margulies bimargul...@gmail.com
 Subject: Re: non-reproducible issues on CI
 To: Maven Developers List dev@maven.apache.org
 Date: Sunday, July 31, 2011, 2:49 PM
 Mark,

 THe problem is this: jenkins gets going using information
 from the
 global settings.xml before any command-line args are
 processed. So
 you've created a monster, as it were. Luckily, there's a
 job option to
 use an alternative settings so long as it's in the svn real
 estate
 that the job knows about. So while you can have infra
 deploy a
 'special' maven, you don't have to.

 --benson


 On Sun, Jul 31, 2011 at 10:40 AM, Mark Struberg strub...@yahoo.de
 wrote:
 That's fine, but I fear only as long as you don't use
 -Dmaven.repo.local on your commandline. And exactly that's
 how our jenkins was configured.

 LieGrue,
 strub

 --- On Sun, 7/31/11, Ansgar Konermann ansgar.konerm...@googlemail.com
 wrote:

 From: Ansgar Konermann ansgar.konerm...@googlemail.com
 Subject: Re: non-reproducible issues on CI
 To: Maven Developers List dev@maven.apache.org
 Date: Sunday, July 31, 2011, 12:42 PM
 Had a similar if not same issue while
 developing a plugin. Fixed it by
 adding

 systemProperties


 localRepository${repository.integrationtests}localRepository
 systemProperties

 to surefire plugin configuration in IT phase.

 Works for me with surefire-plugin 2.9 and
 invoker-plugin
 1.5

 Regards,

 Ansgar
  Am 31.07.2011 13:50 schrieb Dennis Lundberg
 denn...@apache.org:



 -
 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



 -
 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
 http://twitter.com/jvanzyl
 -

 First, the taking in of scattered particulars under one Idea,
 so that everyone understands what is being talked about ... Second,
 the separation of the Idea into parts, by dividing it at the joints,
 as nature directs, not breaking any limb in half as a bad carver might.

  -- Plato, Phaedrus (Notes on the Synthesis of Form by C. Alexander)





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



[notice] Cleaning out a few Jenkins jobs

2011-07-31 Thread Dennis Lundberg
Hi

While going through our jobs in Jenkins [1] I found a couple of jobs
that I see no point in having there anymore. These are:

1 core-integration-testing
  We have other builds for this, and this one has no SCM configured

2 doxia-trunks
  We have separate build for doxia, doxia-sitetools and doxia-tools

3 maven-plugins-ITs-m2-with-maven-plugin
4 maven-plugins-ITs-m3-with-maven-plugin
  These two were some kind of experiment by Olivier Lamy

5 mavenVersion
  Don't know what this does

If I don't hear anyone complaining, I'll delete these jobs after one week.


[1] https://builds.apache.org/view/M-R/view/Maven/


-- 
Dennis Lundberg

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



More POM5 writing

2011-07-31 Thread Benson Margulies
By popular request, I've expanded
https://cwiki.apache.org/confluence/display/MAVEN/Moving+forward+with+the+POM+data+model
(and changed its name). It now reflects our recent reflections on
attributes, plus some thoughts on namespaces.

Please break out your darts and start throwing.

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



Re: [notice] Cleaning out a few Jenkins jobs

2011-07-31 Thread Olivier Lamy
2011/7/31 Dennis Lundberg denn...@apache.org:
 Hi

 While going through our jobs in Jenkins [1] I found a couple of jobs
 that I see no point in having there anymore. These are:

 1 core-integration-testing
  We have other builds for this, and this one has no SCM configured

 2 doxia-trunks
  We have separate build for doxia, doxia-sitetools and doxia-tools

 3 maven-plugins-ITs-m2-with-maven-plugin
 4 maven-plugins-ITs-m3-with-maven-plugin
  These two were some kind of experiment by Olivier Lamy

Please don't delete those one.
This can detect some snapshots dependencies with other jobs (shared
scm etc) to automatically schedule a build in case a dependency has
been build (and without extra configuration).


 5 mavenVersion
  Don't know what this does

 If I don't hear anyone complaining, I'll delete these jobs after one week.


 [1] https://builds.apache.org/view/M-R/view/Maven/


 --
 Dennis Lundberg

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





-- 
Olivier Lamy
http://twitter.com/olamy | http://linkedin.com/in/olamy

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



Re: Pluggable Dependency Resolution

2011-07-31 Thread Ralph Goers
What you are suggesting here is something I've been advocating for the last 
several years - adding provides and requires to poms to indicate versions 
of things they require that are more granular than the jar. In the example 
below the driver might support several JDBC versions. Specifying just the 
groupId, artifactId and the subcomponent version(s) ought to allow Maven to 
choose the latest (or earliest if desired) version that fulfills those 
requirements. Likewise, if a managed dependency specifies the version of the 
artifact and error could be thrown if that artifact doesn't meet the 
requirements.

Ralph
 
On Jul 31, 2011, at 5:15 AM, Mark Struberg wrote:

 I thought about that too, and actually don't think that there is a general 
 solution.
 
 Two examples:
 
 * JDBC-4.1 Driver and DataSource interfaces in OpenJDK-1.7 got a new 
 getParentLogger() method. To compile your own DataSource with java7 you need 
 to implement this method. It is perfectly compatible to get executed on java5 
 and 6 too, so what you need is the latest version of the dependency 
 (JDBC-4.1) while compiling your project. If you get invoked as a callback or 
 similar, it's a good idea to implement the widest possible range.
 
 * The story turns around if you act as a client invoking other libs. If 
 interfaces you use in your projects got extended with new methods in a new 
 version, then this will obviously not work together with older lib versions 
 once you made use of the new methods. In this case you should restrict 
 yourself to the subset of methods available in all versions of the lib.  
 
 Plus, there are lots of grey tones between those 2 scenarios. E.g. if some 
 method parameter or config tag expresses version and capability...
 
 LieGrue,
 strub
 
 PS: you can at least check the backward compat of your own lib with the 
 maven-clirr-plugin.
 
 --- On Sun, 7/31/11, Jason van Zyl ja...@sonatype.com wrote:
 
 From: Jason van Zyl ja...@sonatype.com
 Subject: Re: Pluggable Dependency Resolution
 To: Maven Developers List dev@maven.apache.org
 Date: Sunday, July 31, 2011, 11:58 AM
 What if you could find another way to
 check API compatibility, would you need this at all?
 
 On Jul 31, 2011, at 6:03 AM, Mark Derricutt wrote:
 
 The use case that we originally came with in our
 discussions revolved around version ranges, and the fact
 that a version reference of 2.5.4 doesn't actually mean 
 give me 2.5.4 but rather I would like 2.5.4, but meh, use
 something higher if you need to.
 
 In the case were you have artifacts using say
 [1.0.0,2.0.0) and [1.5.0,3.0.0) as their ranges, maven will
 favor the highests higher bound, so if 1.5.1, 1.6.0, 2.0.1,
 and 2.5.0 are available, maven will choose 1.6.0 to compile
 against.
 
 What we were discussing was that ideally you'd to
 compile against the lowest lower bound ( 1.5.1 ), this way
 you'd get fail fast on any changed APIs that you
 inadvertently started to use, alerting you to the fact that
 you need to increment the lower bound of your range.
 
 If you require bug fixes in a newer release which is
 triggering your tests to fail, then you should also be
 incrementing the lower bound.
 
 The whole purpose of this flow is to drive you to
 releasing often, and working off binary dependencies rather
 than long standing -SNAPSHOTs.  This flow would seem to
 work best for places who are releasing artifacts every 2-3
 days, and working in a continuous delivery style process -
 it probably wouldn't work for Apache projects which often
 seem to favor long drawn out cycles ( I recall a thread
 awhile ago about not wanting to release a plugin cause it
 only had one bug fix in it ). 
 
 
 Having read the other comments I realize my initial
 idea is a little crazy, and as Jason pointed out in the
 first response, probably more trouble than its worth.
 
 Mark
 
 
 
 
 On 31/07/2011, at 9:41 PM, Hervé BOUTEMY wrote:
 
 Do you have practical examples that either are not
 supported, or the actual 
 ordering is the contrary than you expected?
 
 
 
 -
 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: [DISCUSS] incorporate EPL Aether

2011-07-31 Thread Brett Porter

On 31/07/2011, at 6:04 AM, Benson Margulies wrote:

 Kristian,
 
 legal-discuss is a public list, with public archives. You can go read
 these remarks for yourself in the archive. I apologize for assuming
 that you or anyone else didn't know that. Yes I am a member, but Ralph
 and I are not quoting any private crap.
 
 Note that some Ralph posed a relatively specific legal question to
 start with, and then it grew and grew into a more complex policy
 discussion that board members happened to participate in. If you want
 a clear statement of the board's view, you can ask the board. The
 board in general would, I bet, rather get a coherent question from the
 PMC chair in the monthly report, and deal with that, but nothing stops
 you from sending email to board@ stating your view of the question at
 hand and asking for clarification.

That's all true.

I noticed a few people talk about board policy in this thread, and I think 
it's important to be clear on a couple of things. Board policy is nowhere near 
as heavy handed as some here may think - in particular, the board does not 
dictate any technical direction for a project. In the interest of protecting 
the Foundation, they will however ensure that all legal obligations are being 
met, that a project has a healthy development community, and that it is aligned 
with the principles of the ASF.

As far as I can tell, these are all the policies relevant to this discussion:

http://www.apache.org/legal/src-headers.html#3party
http://www.apache.org/legal/resolved.html#category-a
http://www.apache.org/legal/resolved.html#category-b
http://maven.apache.org/developers/dependency-policies.html

The statements made on legal-discuss have some significant weight given who 
made them, though I don't think they intended them to be ad-hoc policy making 
on behalf of the board. The comments were not so much policy setting as they 
are just common sense. Don't risk the project by bringing in a codebase that 
the main copyright holder doesn't want you to. Don't let a major piece of 
functionality be developed outside of the project in the first place.

I will specifically mention that as a board member myself, my comments on this 
list should not be treated as a statement from the board unless I've said 
otherwise :)

Cheers,
Brett

--
Brett Porter
br...@apache.org
http://brettporter.wordpress.com/
http://au.linkedin.com/in/brettporter





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



Re: [DISCUSS] incorporate EPL Aether

2011-07-31 Thread Brett Porter

On 31/07/2011, at 4:51 AM, Benson Margulies wrote:

 Trading
 more or less insulting public emails with Jason does not qualify under
 that rubric, in my opinion.

Yes, personal attacks have no place here. Coming back after the weekend, I was 
disappointed with the tone of the thread. Everyone needs to chill out.

There is a problem here, but I hope everyone involved is looking for a 
solution, not a victory. Thanks to those that have made constructive 
suggestions!

Cheers,
Brett

--
Brett Porter
br...@apache.org
http://brettporter.wordpress.com/
http://au.linkedin.com/in/brettporter





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



Re: [VOTE] Incorporate EPL Ether in Maven Releases

2011-07-31 Thread Brett Porter

On 31/07/2011, at 8:57 AM, Jason van Zyl wrote:

 Ok, I'll pick up from Ralph's discussion.
 
 On Jul 29, 2011, at 1:16 PM, Brett Porter wrote:
 
 -0
 
 I don't like it, but I'm not the one doing the work. I'd accept it if 
 there's no better way to get the problems fixed for whoever is working to 
 fix them. I don't think it's good to get stuck on an old version no one is 
 maintaining. I'm happy to discuss ideas for alternatives.
 
 However, I would strongly prefer it to remain dual licensed:
 - it gives us more options if we need to incorporate source code changes 
 that aren't accepted upstream, particularly if goals change over time
 
 If you can't fork any version of Aether per ASF board guidelines/mandate (I'm 
 only repeating what Ralph said) then what does it matter? And let's say this 
 is not the case, worst case you fork it at Github, make your changes and 
 create a binary. This doesn't hinder you from doing anything if the board 
 changed it's mind on this policy. My preference would certainly be not to 
 fork it but the license affords you that right.

I think what has been said is the same in this regard. We can certainly legally 
fork it, but it's not a great idea.

What I'm saying is that, as Maven is a project under the Apache License, it 
would give us more options if Aether was too. Just one example is If there is 
an insufficient abstraction and we need to make a customisation, we can pull a 
class or two in to Maven (even temporarily). That's preferable for everyone 
than having an unofficial fork at github, or having to replace the whole thing, 
or having to straddle two projects.

I don't want us to be in a situation where we need to exercise the additional 
rights provided by the license, but that doesn't mean they're not a good thing 
to have.

 
 - consumers know what they are getting from Maven - it can all be used under 
 the terms of the AL 2.0.
 
 There's precedent for redistributing EPL at the ASF, and the EPL is 
 commercially friendly. Millions of people use Eclipse, extend Eclipse so I 
 really don't think users have a problem with the EPL.


Yes, that's true. I'm not saying we can't accept it at all. It does however 
impose more conditions than any previous release of Maven, so given the history 
and current state of things I feel like it would be better to be able to 
continue to use it under the Apache License. 

There's also plenty of precedent for dual-licensing at Eclipse - JGit and Jetty 
come to mind.

I don't see what problem has been solved for either project by removing it. If 
changing it back cools this down and saves us all some time writing mail about 
hypotheticals, surely that's worth it alone :)

 
 - it had the terms of the AL 2.0 when we agreed to incorporate it
 
 
 As I said to Mark things here have changed I prefer in the EPL and what it 
 affords. If I have a choice of organization it's the Eclipse Foundation and 
 the preference is not to dual license. We may not agree about foundations or 
 licenses but our commonality is Maven users. If you believe you can serve 
 them better by forking the code and not joining the Aether project then 
 that's your prerogative. I can't honestly see how that would be, but you're 
 free to do what you like.
 
 I can't see what danger Maven would ever be in with Aether being at Eclipse 
 and EPL. Even less if people here chose to be committers on the project. The 
 current count is 6 people here being committers on Aether. The more people 
 from here over there the more likely your requests for change will be 
 incorporated.
...
 
 
 The chances that upstream requests for change are not accepted are close to 
 zero, especially with a bunch of committers here on Aether. This is virtually 
 no different than Plexus and Modello. Kristian made the last set of changes 
 on a Plexus project and released them. I don't know when the last release of 
 Modello happened but I think that was Hervé.

I believe that to be true, and to remain the case, but what I believe doesn't 
matter. I think you should also be listening to the fact that both of those 
people you mentioned voted -1 until the code was released at Eclipse. I don't 
want to put words in their mouth (so correct me if I'm wrong), but I interpret 
that as a sign that even with a low barrier, the current process is not optimal.

Going back to your first paragraph above again, I don't want the only options 
to be join Aether or fork the code. I'd like to fix any Maven bug without 
having to do those things 99% of the time.

It is time to break the cycle of having to straddle projects. If some folks 
want to participate in Aether because they find that something fun to work on, 
that's great. I'm glad there's a low barrier. But nobody should be forced to 
join just because they want to serve Maven users. If that's the case, it's 
broken and we need to fix it.

You've claimed that is possible - others here are saying its not. We should 
deal with more concrete 

Re: Random errors in parallely executed tests

2011-07-31 Thread Rex Hoffman
That's correct, but you'll then have to query the content handler object for
it's currently running port.

I'm going to keep pimping out this solution I built for some clients and
open sourced a while back.
In one project I have an api for starting up a jetty application server
either off of the eclipse compiled classpath or based on a war file found in
your target directory (you can implement an interface to construct new
methods of application look up).  I have some fluent API code I will be
pushing in to this soon.

Personally I don't believe we should ever be starting jetty from maven pom
files, rather that task should be done as part of test start-up,
and preferable reused across all tests hitting that app.  Which would allow
tests to be easily run from with in eclipse (starting the webapp when
needed, and allowing hot code replacement when debugging).  This just ends
up making devs more productive.

I've got that capability, as well as retaining complex, reusable testing
components through the full test execution here:

https://github.com/rexhoffman/test-extensions

For the eclipse based mechanism to work, simply add a webapps.properties
file to your src/main/resource dir, and the util will pull web-content from
src/main/webapp/  or WebContent/

I'll be adding more doc to these in the next couple weeks, but the tests
should be good enough examples to get this going if anyone is interested.  I
will also answer questions.

I really, really want to see maven plugins like jetty/tomcat/cassandra/etc
die off.   A good util package added in to tests to start applications
locally prior to testing is more usable, more easily debuggable, and just
plain cleaner.  A good api on them wouldn't let the developer set a port,
but instead only query the randomly selected port.  Preventing threading
issues like this.  File system access should also be carefully managed by a
java api used by developers, that prevents garbage being left in target dir
or some other resource path that might interfere with other tests.

My long winded 2 cents.

Oh and I do have a ticket open to push this to central, and these are apache
licensed.  Feel free to copy.

Rex


On Sun, Jul 31, 2011 at 1:08 PM, Stephen Connolly 
stephen.alan.conno...@gmail.com wrote:

 afaik since always. standard socket.open(port) behaviour when port is 0.

 - Stephen

 ---
 Sent from my Android phone, so random spelling mistakes, random nonsense
 words and other nonsense are a direct result of using swype to type on the
 screen
 On 31 Jul 2011 20:00, Mark Struberg strub...@yahoo.de wrote:
  yea, that is good news. Will try to tweak this for all wagon tests too.
  Do you know since when this works? Is this available in jetty-6.1.26?
 
  Btw, when going through our Tests I found lots of tests which do not
 cleanup the target/local-repo (or similar) before they run. Some of them
 only work because they work on left-overs from previous tests. This is
 pretty dangerous and should get fixed asap.
 
  I didn't touch them yet because I first like to get the IT on our CI box
 working again.
 
  LieGrue,
  strub
 
 
  --- On Sun, 7/31/11, Stephen Connolly stephen.alan.conno...@gmail.com
 wrote:
 
  From: Stephen Connolly stephen.alan.conno...@gmail.com
  Subject: Re: Random errors in parallely executed tests
  To: Maven Developers List dev@maven.apache.org
  Date: Sunday, July 31, 2011, 6:28 PM
  the buildhelper goal is for when you
  are launching jetty/etc from the pom.
  or when you need to filter the port into on disk
  resources.
 
  if launching within the test case, just assign it to port
  0. a request for
  port 0 is a request for an unused port in the top 16k (or
  depending on the
  os, anywhere above 1024). then you ask the connector what
  port it bound to.
 
  - Stephen
 
  ---
  Sent from my Android phone, so random spelling mistakes,
  random nonsense
  words and other nonsense are a direct result of using swype
  to type on the
  screen
  On 31 Jul 2011 18:40, Benson Margulies bimargul...@gmail.com
  wrote:
 
 
  -
  To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
  For additional commands, e-mail: dev-h...@maven.apache.org
 



Re: [VOTE] Release Maven Site Plugin version 3.0 and Maven Reporting Exec version 1.0.1

2011-07-31 Thread Lukas Theussl


+1

-Lukas


Dennis Lundberg wrote:

Hi,

We solved 46+1 issues:
http://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=11146styleName=Htmlversion=16829
http://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=11761styleName=Htmlversion=17501

There are still a couple of issues left in JIRA:
http://jira.codehaus.org/secure/IssueNavigator.jspa?reset=truepid=11146status=1

Staging repos:
https://repository.apache.org/content/repositories/maven-015/
https://repository.apache.org/content/repositories/maven-016/

Staging sites:
http://maven.apache.org/plugins/maven-site-plugin-3.0/
http://maven.apache.org/shared/maven-reporting-exec-1.0.1/

Guide to testing staged releases:
http://maven.apache.org/guides/development/guide-testing-releases.html

Vote open for 72 hours.

[ ] +1
[ ] +0
[ ] -1


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