Re: Version ranges and snapshots

2017-02-11 Thread Jon Harper
ctly
> "switches" back to numeric order)
> +* "1.foo" < "1-foo" < "1-1" < "1.1"
> +* "1.0" = "1-0" = "1" = "1-" = "1-ga" = "1-final" (removing of
> trailing "null" values)
> +* "1.sp.1" < "1-.1"  (empty token replaced by the number 0, not by
> the null value ""!)
> +*  Complex example
> +  * "1.0" < "1.sp" (trailing null value removed, padded to identifier
> null, which is less than sp)
> +  * "1.sp.1" < "1.0.1" ( .sp < .0  because ".qualifier" < ".number")
> +
> +  Note1: Contrary to what was stated in some design documents, snapshots
> are not treated differently than releases or any other qualifier.
> +  Note2: The Versionning Order quickly becomes complex unless you stick
> with "sane" versions.
> +
> +
> +
> +
>  *** {Exclusions}
>
>Exclusions explicitly tell Maven that you don't want to include the
>
>
>
> Jon
>
> On Sun, Mar 22, 2015 at 5:18 PM, Hervé BOUTEMY 
> wrote:
>
>> Hi Jon,
>>
>> Thank you for your great proposal.
>> I fixed some formatting issues and integrated it: I think the intro is now
>> better
>>
>> Regards,
>>
>> Hervé
>>
>> Le vendredi 20 mars 2015 19:28:24 Jon Harper a écrit :
>> > Hi Hervé,
>> > what do you think of the following first patch ? I haven't generated the
>> > corresponding html yet, just throwing some ideas..
>> >
>> > Regards,
>> > Jon
>> >
>> > Index: pom.apt
>> > ===
>> > --- pom.apt (révision 1668105)
>> > +++ pom.apt (copie de travail)
>> > @@ -303,8 +303,14 @@
>> >  +-+
>> >
>> >* <>, <>, <>:\
>> > -  These elements are self-explanatory, and you will see them often.
>> This
>> > trinity represents the coordinate
>> > -  of a specific project in time, demarcating it as a dependency of this
>> > project. You may be thinking:
>> > +  You will see these elements often. This trinity is used to compute
>> the
>> > maven coordinate
>> > +  of a specific project in time, demarcating it as a dependency of this
>> > project. The purpose
>> > +  of this computation is to select a version that matches all the
>> > dependency declarations
>> > +  (due to transitive dependencies, there can be multiple dependency
>> > declarations for the
>> > +  same artifact). The values should be:
>> > +* <>, <>: directly the corresponding
>> coordinates
>> > of the dependency.
>> > +* <>: a <> that will be used to compute the
>> > dependency's version.
>> > +  Since the dependency is described by maven coordinates, you may be
>> > thinking:
>> >"This means that my project can only depend upon Maven artifacts!"
>> The
>> > answer is, "Of course, but that's a
>> >good thing." This forces you to depend solely on dependencies that
>> Maven
>> > can manage. There are times,
>> >unfortunately, when a project cannot be downloaded from the central
>> > Maven repository. For example, a project
>> > @@ -388,6 +394,21 @@
>> >In the shortest terms, <<>> lets other projects know that,
>> > when you use this project, you
>> >do not require this dependency in order to work correctly.
>> >
>> > +*** {Version Ranges}
>> > +
>> > +  Version Ranges used for the <> element have the following
>> > syntax (TODO only examples??):
>> > +  * 1.0: "Soft" requirement on 1.0 (just a recommendation - helps
>> select
>> > the correct version if it matches all ranges)
>> > +  * (,1.0]: x <= 1.0
>> > +  * [1.0]: Hard requirement on 1.0
>> > +  * [1.2,1.3]: 1.2 <= x <= 1.3
>> > +  * [1.0,2.0): 1.0 <= x < 2.0
>> > +  * [1.5,): x >= 1.5
>> > +  * (,1.0],[1.2,): x <= 1.0 or x >= 1.2. Multiple sets are
>> comma-separated
>> > +  * (,1.1),(1.1,): This excludes 1.1 if it is known not to work in
>> > combination with this library
>> > +
>> > +  TODO: describe the pseudo-lexicographical order used above, using
>> major
>> > version, minor version, incr

Re: Version ranges and snapshots

2015-03-28 Thread Hervé BOUTEMY
Le mardi 24 mars 2015 13:09:03 Tibor Digana a écrit :
> Why the Maven core isn't plugable via SPI, for instance the class
> ComparableVersion?
this was an old dream request, but when I tried, I found it would not make 
sense if the config had to be done in pom.xml
And having the config in setting.xml of lib/ext was too much, since this would 
change the comparaison algorithm for every Maven run

now that we have .mvn to load extension on specific projects, making the 
comparison algorithm would be feasible

even if I'm not convinced it is useful...

> It's a class which does not need any Maven API and no extension plugin.
> We may refuse spending our efforts on fixing debatable issues which would be
> good for both parties Maven developers and users. Changing the current
> behavior may allow reporting new JIRA issues due to breaking current
> behavior. The SPI would simplify our situation, wouldn't it?
now, such a SPI will require a really good documentation, since without good 
documentation, it's only more complex code that nobody will be able to extend

> 
> ComparableVersion class was just an example, maybe trivial, but the idea is
> obvious.
for sure, .mvn gives new opportunities: we'll need to find a way to document 
extension points, or Maven core will become even more complex wihtout anybody 
being able to really take advantage of it (or only a happy few who were there 
at the beginning)

Regards,

Hervé

> 
> 
> 
> --
> View this message in context:
> http://maven.40175.n5.nabble.com/Re-Version-ranges-and-snapshots-tp5825997p
> 5830193.html Sent from the Maven Developers mailing list archive at
> Nabble.com.
> 
> -
> 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: Version ranges and snapshots

2015-03-24 Thread Tibor Digana
Why the Maven core isn't plugable via SPI, for instance the class
ComparableVersion?
It's a class which does not need any Maven API and no extension plugin.
We may refuse spending our efforts on fixing debatable issues which would be
good for both parties Maven developers and users. Changing the current
behavior may allow reporting new JIRA issues due to breaking current
behavior. The SPI would simplify our situation, wouldn't it?

ComparableVersion class was just an example, maybe trivial, but the idea is
obvious.



--
View this message in context: 
http://maven.40175.n5.nabble.com/Re-Version-ranges-and-snapshots-tp5825997p5830193.html
Sent from the Maven Developers mailing list archive at Nabble.com.

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



Re: Version ranges and snapshots

2015-03-23 Thread Jon Harper
sp.1" < "1.0.1" ( .sp < .0  because ".qualifier" < ".number")
+
+  Note1: Contrary to what was stated in some design documents, snapshots
are not treated differently than releases or any other qualifier.
+  Note2: The Versionning Order quickly becomes complex unless you stick
with "sane" versions.
+
+
+
+
 *** {Exclusions}

   Exclusions explicitly tell Maven that you don't want to include the



Jon

On Sun, Mar 22, 2015 at 5:18 PM, Hervé BOUTEMY 
wrote:

> Hi Jon,
>
> Thank you for your great proposal.
> I fixed some formatting issues and integrated it: I think the intro is now
> better
>
> Regards,
>
> Hervé
>
> Le vendredi 20 mars 2015 19:28:24 Jon Harper a écrit :
> > Hi Hervé,
> > what do you think of the following first patch ? I haven't generated the
> > corresponding html yet, just throwing some ideas..
> >
> > Regards,
> > Jon
> >
> > Index: pom.apt
> > ===
> > --- pom.apt (révision 1668105)
> > +++ pom.apt (copie de travail)
> > @@ -303,8 +303,14 @@
> >  +-+
> >
> >* <>, <>, <>:\
> > -  These elements are self-explanatory, and you will see them often. This
> > trinity represents the coordinate
> > -  of a specific project in time, demarcating it as a dependency of this
> > project. You may be thinking:
> > +  You will see these elements often. This trinity is used to compute the
> > maven coordinate
> > +  of a specific project in time, demarcating it as a dependency of this
> > project. The purpose
> > +  of this computation is to select a version that matches all the
> > dependency declarations
> > +  (due to transitive dependencies, there can be multiple dependency
> > declarations for the
> > +  same artifact). The values should be:
> > +* <>, <>: directly the corresponding
> coordinates
> > of the dependency.
> > +* <>: a <> that will be used to compute the
> > dependency's version.
> > +  Since the dependency is described by maven coordinates, you may be
> > thinking:
> >"This means that my project can only depend upon Maven artifacts!" The
> > answer is, "Of course, but that's a
> >good thing." This forces you to depend solely on dependencies that
> Maven
> > can manage. There are times,
> >unfortunately, when a project cannot be downloaded from the central
> > Maven repository. For example, a project
> > @@ -388,6 +394,21 @@
> >In the shortest terms, <<>> lets other projects know that,
> > when you use this project, you
> >do not require this dependency in order to work correctly.
> >
> > +*** {Version Ranges}
> > +
> > +  Version Ranges used for the <> element have the following
> > syntax (TODO only examples??):
> > +  * 1.0: "Soft" requirement on 1.0 (just a recommendation - helps select
> > the correct version if it matches all ranges)
> > +  * (,1.0]: x <= 1.0
> > +  * [1.0]: Hard requirement on 1.0
> > +  * [1.2,1.3]: 1.2 <= x <= 1.3
> > +  * [1.0,2.0): 1.0 <= x < 2.0
> > +  * [1.5,): x >= 1.5
> > +  * (,1.0],[1.2,): x <= 1.0 or x >= 1.2. Multiple sets are
> comma-separated
> > +  * (,1.1),(1.1,): This excludes 1.1 if it is known not to work in
> > combination with this library
> > +
> > +  TODO: describe the pseudo-lexicographical order used above, using
> major
> > version, minor version, incremental version, and qualifier.
> > +  examples: 1.0.0-SNAPSHOT < 1.0.0 ...
> > +
> >  *** {Exclusions}
> >
> >Exclusions explicitly tell Maven that you don't want to include the
> >
> >
> > Jon
> >
> > On Sun, Feb 15, 2015 at 10:09 PM, Hervé BOUTEMY 
> >
> > wrote:
> > > Hi Jon,
> > >
> > > Le dimanche 15 février 2015 21:41:52 Jon Harper a écrit :
> > > > Hi,
> > > > since there were no answers, I'm not sure I wrote to the correct
> mailing
> > > > list for this problem.
> > >
> > > good mailing list, but can of worm :)
> > >
> > > > Can anyone direct me to someone who is interested in
> > > > working on this issue ?
> > >
> > > I can try to work on this once more: perhaps we'll manage to improve
> > > something
> > >
> > > > For info, the docs have been saying the following for 7+ years:
> > > > &q

Re: Version ranges and snapshots

2015-03-22 Thread Hervé BOUTEMY
Hi Jon,

Thank you for your great proposal.
I fixed some formatting issues and integrated it: I think the intro is now 
better

Regards,

Hervé

Le vendredi 20 mars 2015 19:28:24 Jon Harper a écrit :
> Hi Hervé,
> what do you think of the following first patch ? I haven't generated the
> corresponding html yet, just throwing some ideas..
> 
> Regards,
> Jon
> 
> Index: pom.apt
> ===
> --- pom.apt (révision 1668105)
> +++ pom.apt (copie de travail)
> @@ -303,8 +303,14 @@
>  +-+
> 
>* <>, <>, <>:\
> -  These elements are self-explanatory, and you will see them often. This
> trinity represents the coordinate
> -  of a specific project in time, demarcating it as a dependency of this
> project. You may be thinking:
> +  You will see these elements often. This trinity is used to compute the
> maven coordinate
> +  of a specific project in time, demarcating it as a dependency of this
> project. The purpose
> +  of this computation is to select a version that matches all the
> dependency declarations
> +  (due to transitive dependencies, there can be multiple dependency
> declarations for the
> +  same artifact). The values should be:
> +* <>, <>: directly the corresponding coordinates
> of the dependency.
> +* <>: a <> that will be used to compute the
> dependency's version.
> +  Since the dependency is described by maven coordinates, you may be
> thinking:
>"This means that my project can only depend upon Maven artifacts!" The
> answer is, "Of course, but that's a
>good thing." This forces you to depend solely on dependencies that Maven
> can manage. There are times,
>unfortunately, when a project cannot be downloaded from the central
> Maven repository. For example, a project
> @@ -388,6 +394,21 @@
>In the shortest terms, <<>> lets other projects know that,
> when you use this project, you
>do not require this dependency in order to work correctly.
> 
> +*** {Version Ranges}
> +
> +  Version Ranges used for the <> element have the following
> syntax (TODO only examples??):
> +  * 1.0: "Soft" requirement on 1.0 (just a recommendation - helps select
> the correct version if it matches all ranges)
> +  * (,1.0]: x <= 1.0
> +  * [1.0]: Hard requirement on 1.0
> +  * [1.2,1.3]: 1.2 <= x <= 1.3
> +  * [1.0,2.0): 1.0 <= x < 2.0
> +  * [1.5,): x >= 1.5
> +  * (,1.0],[1.2,): x <= 1.0 or x >= 1.2. Multiple sets are comma-separated
> +  * (,1.1),(1.1,): This excludes 1.1 if it is known not to work in
> combination with this library
> +
> +  TODO: describe the pseudo-lexicographical order used above, using major
> version, minor version, incremental version, and qualifier.
> +  examples: 1.0.0-SNAPSHOT < 1.0.0 ...
> +
>  *** {Exclusions}
> 
>Exclusions explicitly tell Maven that you don't want to include the
> 
> 
> Jon
> 
> On Sun, Feb 15, 2015 at 10:09 PM, Hervé BOUTEMY 
> 
> wrote:
> > Hi Jon,
> > 
> > Le dimanche 15 février 2015 21:41:52 Jon Harper a écrit :
> > > Hi,
> > > since there were no answers, I'm not sure I wrote to the correct mailing
> > > list for this problem.
> > 
> > good mailing list, but can of worm :)
> > 
> > > Can anyone direct me to someone who is interested in
> > > working on this issue ?
> > 
> > I can try to work on this once more: perhaps we'll manage to improve
> > something
> > 
> > > For info, the docs have been saying the following for 7+ years:
> > > "groupId, artifactId, version:
> > > These elements are self-explanatory"
> > > 
> > > The version element is *not* self-explanatory, especially regarding
> > > interactions between version ranges and *-SNAPSHOTs artifacts.
> > 
> > you're right: version *in dependencies* is not self explanatory (version
> > in
> > Maven coordinates is self explanatory)
> > It has a lot of subtle features: preferred vs exact match, version range,
> > then
> > the question of SNAPSHOTS
> > 
> > > Any thoughts on this matter would be appreciated.
> > 
> > if you have little patches for the source of the page [1], I can review
> > and we
> > can work and discuss on it step by step
> > 
> > Regards,
> > 
> > Hervé
> > 
> > [1] https://svn.apache.org/repos/asf/maven/site/trunk/content/apt/pom.apt
> > 
> > > Regards,
> > > Jon
> > > 
> > > On Thu, Feb

Re: Version ranges and snapshots

2015-03-20 Thread Jon Harper
Hi Hervé,
what do you think of the following first patch ? I haven't generated the
corresponding html yet, just throwing some ideas..

Regards,
Jon

Index: pom.apt
===
--- pom.apt (révision 1668105)
+++ pom.apt (copie de travail)
@@ -303,8 +303,14 @@
 +-+

   * <>, <>, <>:\
-  These elements are self-explanatory, and you will see them often. This
trinity represents the coordinate
-  of a specific project in time, demarcating it as a dependency of this
project. You may be thinking:
+  You will see these elements often. This trinity is used to compute the
maven coordinate
+  of a specific project in time, demarcating it as a dependency of this
project. The purpose
+  of this computation is to select a version that matches all the
dependency declarations
+  (due to transitive dependencies, there can be multiple dependency
declarations for the
+  same artifact). The values should be:
+* <>, <>: directly the corresponding coordinates
of the dependency.
+* <>: a <> that will be used to compute the
dependency's version.
+  Since the dependency is described by maven coordinates, you may be
thinking:
   "This means that my project can only depend upon Maven artifacts!" The
answer is, "Of course, but that's a
   good thing." This forces you to depend solely on dependencies that Maven
can manage. There are times,
   unfortunately, when a project cannot be downloaded from the central
Maven repository. For example, a project
@@ -388,6 +394,21 @@
   In the shortest terms, <<>> lets other projects know that,
when you use this project, you
   do not require this dependency in order to work correctly.

+*** {Version Ranges}
+
+  Version Ranges used for the <> element have the following
syntax (TODO only examples??):
+  * 1.0: "Soft" requirement on 1.0 (just a recommendation - helps select
the correct version if it matches all ranges)
+  * (,1.0]: x <= 1.0
+  * [1.0]: Hard requirement on 1.0
+  * [1.2,1.3]: 1.2 <= x <= 1.3
+  * [1.0,2.0): 1.0 <= x < 2.0
+  * [1.5,): x >= 1.5
+  * (,1.0],[1.2,): x <= 1.0 or x >= 1.2. Multiple sets are comma-separated
+  * (,1.1),(1.1,): This excludes 1.1 if it is known not to work in
combination with this library
+
+  TODO: describe the pseudo-lexicographical order used above, using major
version, minor version, incremental version, and qualifier.
+  examples: 1.0.0-SNAPSHOT < 1.0.0 ...
+
 *** {Exclusions}

   Exclusions explicitly tell Maven that you don't want to include the


Jon

On Sun, Feb 15, 2015 at 10:09 PM, Hervé BOUTEMY 
wrote:

> Hi Jon,
>
> Le dimanche 15 février 2015 21:41:52 Jon Harper a écrit :
> > Hi,
> > since there were no answers, I'm not sure I wrote to the correct mailing
> > list for this problem.
> good mailing list, but can of worm :)
>
> > Can anyone direct me to someone who is interested in
> > working on this issue ?
> I can try to work on this once more: perhaps we'll manage to improve
> something
>
> >
> > For info, the docs have been saying the following for 7+ years:
> > "groupId, artifactId, version:
> > These elements are self-explanatory"
> >
> > The version element is *not* self-explanatory, especially regarding
> > interactions between version ranges and *-SNAPSHOTs artifacts.
> you're right: version *in dependencies* is not self explanatory (version in
> Maven coordinates is self explanatory)
> It has a lot of subtle features: preferred vs exact match, version range,
> then
> the question of SNAPSHOTS
>
> >
> > Any thoughts on this matter would be appreciated.
> if you have little patches for the source of the page [1], I can review
> and we
> can work and discuss on it step by step
>
> Regards,
>
> Hervé
>
> [1] https://svn.apache.org/repos/asf/maven/site/trunk/content/apt/pom.apt
>
> > Regards,
> > Jon
> >
> > On Thu, Feb 5, 2015 at 5:52 PM, Jon Harper 
> wrote:
> > > Hi,
> > > I'm resurrecting this old thread to ask if it's possible to change
> > > http://maven.apache.org/pom.html to document the current
> implementation
> > > behavior (7+ years old).
> > >
> > > Please see my comment on MNG-3092:
> > >
> http://jira.codehaus.org/browse/MNG-3092?focusedCommentId=362616&page=com.
> > >
> atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-36261
> > > 6
> > >
> > > Jon
> > >
> > > Mark Hobson Fri, 06 Jul 2007 06:53:04 -0700
> > >
> > > > Hi,
> > > >
> > > > Whilst attempting to fix MNG-2994, I discovered MNG-3092 that w

Re: Version ranges and snapshots

2015-02-15 Thread Hervé BOUTEMY
Hi Jon,

Le dimanche 15 février 2015 21:41:52 Jon Harper a écrit :
> Hi,
> since there were no answers, I'm not sure I wrote to the correct mailing
> list for this problem.
good mailing list, but can of worm :)

> Can anyone direct me to someone who is interested in
> working on this issue ?
I can try to work on this once more: perhaps we'll manage to improve something

> 
> For info, the docs have been saying the following for 7+ years:
> "groupId, artifactId, version:
> These elements are self-explanatory"
> 
> The version element is *not* self-explanatory, especially regarding
> interactions between version ranges and *-SNAPSHOTs artifacts.
you're right: version *in dependencies* is not self explanatory (version in 
Maven coordinates is self explanatory)
It has a lot of subtle features: preferred vs exact match, version range, then 
the question of SNAPSHOTS

> 
> Any thoughts on this matter would be appreciated.
if you have little patches for the source of the page [1], I can review and we 
can work and discuss on it step by step

Regards,

Hervé

[1] https://svn.apache.org/repos/asf/maven/site/trunk/content/apt/pom.apt

> Regards,
> Jon
> 
> On Thu, Feb 5, 2015 at 5:52 PM, Jon Harper  wrote:
> > Hi,
> > I'm resurrecting this old thread to ask if it's possible to change
> > http://maven.apache.org/pom.html to document the current implementation
> > behavior (7+ years old).
> > 
> > Please see my comment on MNG-3092:
> > http://jira.codehaus.org/browse/MNG-3092?focusedCommentId=362616&page=com.
> > atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-36261
> > 6
> > 
> > Jon
> > 
> > Mark Hobson Fri, 06 Jul 2007 06:53:04 -0700
> > 
> > > Hi,
> > > 
> > > Whilst attempting to fix MNG-2994, I discovered MNG-3092 that was
> > > contrary to the 2.0 design docs:
> > > 
> > > http://jira.codehaus.org/browse/MNG-3092
> > > 
> > > Brett, Kenney and myself had a brief discussion on IRC about this:
> > > Kenney says that the behaviour is theoretically correct (which it is),
> > > although I feel it goes against the practical usage described in the
> > > docs.  The two main choices I can see are:
> > > 
> > > 1) We stick to the design docs and disallow snapshots in ranges when
> > > they aren't an explicit boundary, as per the MNG-3092 patch.
> > > 
> > > 2) We reconsider the design docs and leave range resolution behaving
> > > as it is, then use profiles to enable or disable snapshot repositories
> > > at build time.
> > > 
> > > Any thoughts?
> > > 
> > > Mark


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



Re: Version ranges and snapshots

2015-02-15 Thread Jon Harper
Hi,
since there were no answers, I'm not sure I wrote to the correct mailing
list for this problem. Can anyone direct me to someone who is interested in
working on this issue ?

For info, the docs have been saying the following for 7+ years:
"groupId, artifactId, version:
These elements are self-explanatory"

The version element is *not* self-explanatory, especially regarding
interactions between version ranges and *-SNAPSHOTs artifacts.

Any thoughts on this matter would be appreciated.
Regards,
Jon

On Thu, Feb 5, 2015 at 5:52 PM, Jon Harper  wrote:

> Hi,
> I'm resurrecting this old thread to ask if it's possible to change
> http://maven.apache.org/pom.html to document the current implementation
> behavior (7+ years old).
>
> Please see my comment on MNG-3092:
> http://jira.codehaus.org/browse/MNG-3092?focusedCommentId=362616&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-362616
>
> Jon
>
> Mark Hobson Fri, 06 Jul 2007 06:53:04 -0700
>
> > Hi,
> >
> > Whilst attempting to fix MNG-2994, I discovered MNG-3092 that was
> > contrary to the 2.0 design docs:
> >
> > http://jira.codehaus.org/browse/MNG-3092
> >
> > Brett, Kenney and myself had a brief discussion on IRC about this:
> > Kenney says that the behaviour is theoretically correct (which it is),
> > although I feel it goes against the practical usage described in the
> > docs.  The two main choices I can see are:
> >
> > 1) We stick to the design docs and disallow snapshots in ranges when
> > they aren't an explicit boundary, as per the MNG-3092 patch.
> >
> > 2) We reconsider the design docs and leave range resolution behaving
> > as it is, then use profiles to enable or disable snapshot repositories
> > at build time.
> >
> > Any thoughts?
> >
> > Mark
>
>


Re: Version ranges and snapshots

2015-02-05 Thread Jon Harper
Hi,
I'm resurrecting this old thread to ask if it's possible to change
http://maven.apache.org/pom.html to document the current implementation
behavior (7+ years old).

Please see my comment on MNG-3092:
http://jira.codehaus.org/browse/MNG-3092?focusedCommentId=362616&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-362616

Jon

Mark Hobson Fri, 06 Jul 2007 06:53:04 -0700
> Hi,
>
> Whilst attempting to fix MNG-2994, I discovered MNG-3092 that was
> contrary to the 2.0 design docs:
>
> http://jira.codehaus.org/browse/MNG-3092
>
> Brett, Kenney and myself had a brief discussion on IRC about this:
> Kenney says that the behaviour is theoretically correct (which it is),
> although I feel it goes against the practical usage described in the
> docs.  The two main choices I can see are:
>
> 1) We stick to the design docs and disallow snapshots in ranges when
> they aren't an explicit boundary, as per the MNG-3092 patch.
>
> 2) We reconsider the design docs and leave range resolution behaving
> as it is, then use profiles to enable or disable snapshot repositories
> at build time.
>
> Any thoughts?
>
> Mark


Re: Version ranges and snapshots

2008-02-18 Thread Michael McCallum
I am only speaking in regard to MNG-3092, there are several other related 
issues which I think all should be fixed

Cons
--

1) Continuous integration of trunks
I would like to be able to run the tests of all of my artifacts against a 
build of trunk of every other. How I currently achieve this...

Use continuum with clean install and force a rebuild of every artifact on a 
regular basis. 

If MNG-3092 were to go ahead in order to include a snapshot in a build I would 
have to change the dep of each artifact to include a -SNAPSHOT in one of the 
bounds.

2) Using MNG-3092 is not the correct approach to exclude snapshots from 
releases. The enforcer plugin can detect and alert when a  snapshot is 
resolved anywhere in the transitive tree. It would be nice to be able to bind 
this to a release 

Pros
-
1) stops you getting inconsistent builds when you have a snapshot repository 
in your repository list that has artifacts matching a range

2) will stop (i think) dirty builds from snapshot metadata in the local 
repository. The local repository has multiple personality disorder. There is 
no way to enable disable the local metadata left in the local repository 
after a release or install. If the local repository cache was separate and 
the actual local repository (i.e. for installs) was a first order repo then 
this problem would go away

On Thu, 31 Jan 2008 02:14:59 Stephen Connolly wrote:
> IMHO
>
> I think a vote with the two positions clearly identified (perhaps with pros
> and cons for both if the pair of ye can agree on the pros and cons).
> (unless somebody else has a third position)
>
> -Stephen.
>
> On Jan 30, 2008 12:56 PM, Mark Hobson <[EMAIL PROTECTED]> wrote:
> > On 30/01/2008, Mark Hobson <[EMAIL PROTECTED]> wrote:
> > > I don't think that linking this level of artifact resolution
> > > uncertainty to its source repository is a good idea.  How version
> > > ranges are resolved should be completely deterministic and independent
> > > from where the artifact was actually downloaded from, otherwise we'll
> > > end up with no end of build reproducibility problems.
> >
> > In addition, the local repository would be exempt from these rules.
> > This would require manually deleting artifacts from the local repo to
> > ensure that certain versions weren't picked up; a maintenance
> > nightmare I'm sure you'll agree.
> >
> > How's best to proceed with resolving this issue?  Would voting make
> > sense, or should the PMC lay down the intended direction?  I'm not
> > sure whether this thread needs to get any longer.. :)
> >
> > Mark
> >
> > -
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]



-- 
Michael McCallum
Enterprise Engineer
mailto:[EMAIL PROTECTED]

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



Re: Version ranges and snapshots

2008-02-18 Thread Michael McCallum
Well ask us to do something rather than blabber on and we shut up...

I lost two managers and a developer which has chewed up all my time...


On Thu, 31 Jan 2008 02:14:59 Stephen Connolly wrote:
> IMHO
>
> I think a vote with the two positions clearly identified (perhaps with pros
> and cons for both if the pair of ye can agree on the pros and cons).
> (unless somebody else has a third position)
>
> -Stephen.
>
> On Jan 30, 2008 12:56 PM, Mark Hobson <[EMAIL PROTECTED]> wrote:
> > On 30/01/2008, Mark Hobson <[EMAIL PROTECTED]> wrote:
> > > I don't think that linking this level of artifact resolution
> > > uncertainty to its source repository is a good idea.  How version
> > > ranges are resolved should be completely deterministic and independent
> > > from where the artifact was actually downloaded from, otherwise we'll
> > > end up with no end of build reproducibility problems.
> >
> > In addition, the local repository would be exempt from these rules.
> > This would require manually deleting artifacts from the local repo to
> > ensure that certain versions weren't picked up; a maintenance
> > nightmare I'm sure you'll agree.
> >
> > How's best to proceed with resolving this issue?  Would voting make
> > sense, or should the PMC lay down the intended direction?  I'm not
> > sure whether this thread needs to get any longer.. :)
> >
> > Mark
> >
> > -
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]



-- 
Michael McCallum
Enterprise Engineer
mailto:[EMAIL PROTECTED]

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



Re: Version ranges and snapshots

2008-01-30 Thread Michael McCallum
On Thu, 31 Jan 2008 01:56:09 Mark Hobson wrote:
> On 30/01/2008, Mark Hobson <[EMAIL PROTECTED]> wrote:
> > I don't think that linking this level of artifact resolution
> > uncertainty to its source repository is a good idea.  How version
> > ranges are resolved should be completely deterministic and independent
> > from where the artifact was actually downloaded from, otherwise we'll
> > end up with no end of build reproducibility problems.
fair enough

>
> In addition, the local repository would be exempt from these rules.
I think the local repository should be treated just like any repo and separate 
from the cache of remote repositories... this is actually the cause of _many_ 
problems in thats its always included...

> This would require manually deleting artifacts from the local repo to
> ensure that certain versions weren't picked up; a maintenance
> nightmare I'm sure you'll agree.
which is bloody annoying if I was able to configure my release profiles to not 
include the local repository that would be much better because I would only 
get released artifacts in remote repositories

>
> How's best to proceed with resolving this issue?  Would voting make
> sense, or should the PMC lay down the intended direction?  I'm not
> sure whether this thread needs to get any longer.. :)
open to a vote

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



-- 
Michael McCallum
Enterprise Engineer
mailto:[EMAIL PROTECTED]

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



Re: Version ranges and snapshots

2008-01-30 Thread Stephen Connolly
IMHO

I think a vote with the two positions clearly identified (perhaps with pros
and cons for both if the pair of ye can agree on the pros and cons). (unless
somebody else has a third position)

-Stephen.

On Jan 30, 2008 12:56 PM, Mark Hobson <[EMAIL PROTECTED]> wrote:

> On 30/01/2008, Mark Hobson <[EMAIL PROTECTED]> wrote:
> > I don't think that linking this level of artifact resolution
> > uncertainty to its source repository is a good idea.  How version
> > ranges are resolved should be completely deterministic and independent
> > from where the artifact was actually downloaded from, otherwise we'll
> > end up with no end of build reproducibility problems.
>
> In addition, the local repository would be exempt from these rules.
> This would require manually deleting artifacts from the local repo to
> ensure that certain versions weren't picked up; a maintenance
> nightmare I'm sure you'll agree.
>
> How's best to proceed with resolving this issue?  Would voting make
> sense, or should the PMC lay down the intended direction?  I'm not
> sure whether this thread needs to get any longer.. :)
>
> Mark
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


Re: Version ranges and snapshots

2008-01-30 Thread Mark Hobson
On 30/01/2008, Mark Hobson <[EMAIL PROTECTED]> wrote:
> I don't think that linking this level of artifact resolution
> uncertainty to its source repository is a good idea.  How version
> ranges are resolved should be completely deterministic and independent
> from where the artifact was actually downloaded from, otherwise we'll
> end up with no end of build reproducibility problems.

In addition, the local repository would be exempt from these rules.
This would require manually deleting artifacts from the local repo to
ensure that certain versions weren't picked up; a maintenance
nightmare I'm sure you'll agree.

How's best to proceed with resolving this issue?  Would voting make
sense, or should the PMC lay down the intended direction?  I'm not
sure whether this thread needs to get any longer.. :)

Mark

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



Re: Version ranges and snapshots

2008-01-30 Thread Mark Hobson
On 29/01/2008, Michael McCallum <[EMAIL PROTECTED]> wrote:
> How about for MNG-3092 we make it configurable per repository whether the
> metadata resolution includes snapshots in ranges... you could even default to
> false to keep Dave and yourself happy and I can turn it on where i need it.
>
> I'm not certain if its possible but would perhaps be the most flexible
> compromise.

I don't think that linking this level of artifact resolution
uncertainty to its source repository is a good idea.  How version
ranges are resolved should be completely deterministic and independent
from where the artifact was actually downloaded from, otherwise we'll
end up with no end of build reproducibility problems.

Mark

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



Re: Version ranges and snapshots

2008-01-29 Thread Michael McCallum

How about for MNG-3092 we make it configurable per repository whether the 
metadata resolution includes snapshots in ranges... you could even default to 
false to keep Dave and yourself happy and I can turn it on where i need it.

I'm not certain if its possible but would perhaps be the most flexible 
compromise.

-- 
Michael McCallum
Enterprise Engineer
mailto:[EMAIL PROTECTED]

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



Re: Version ranges and snapshots

2008-01-29 Thread Mark Hobson
On 23/01/2008, Michael McCallum <[EMAIL PROTECTED]> wrote:
> On Thu, 24 Jan 2008 03:42:13 Mark Hobson wrote:
> > There is another caveat in that it's all or nothing.  Using a profile
> > mechanism will switch all range dependencies into snapshot mode, when
> > typically a developer only wishes to upgrade a couple.  How could this
> > be achieved using profiles?
> i can think of two ways off the top of my head
> * install on the specific project

This doesn't work when suitable snapshot repositories are available to
the project, nor when the local repository contains cached snapshots
from other repositories.

> * selective repositories and profiles for different project groups

I move dependencies to their next snapshot when I need to work on
them, so this option would require a profile per dependency which is
unworkable and extremely error prone.

> The real question is what do you hope to achieve by enabling snapshots for a
> particular project or set of projects. Perhaps a change of direction in the
> discussion do you use multiple lines and merging to manage what your
> releases?

In the simplest case, this is how we typically use snapshots to add a
new feature to a previously released project ("A"):

1) A's component ("B") that the new feature will be added to is identified
2) A's dependency on B is upgraded to the next snapshot version, e.g.
1.1 to 1.2-SNAPSHOT
3) Work is carried out on B to add the new feature, installing locally
to receive the changes
4) Work on B is committed to SCM at suitable points for CI to push
changes to any developers working on the same feature
5) When the work is completed, B is released, e.g. 1.2
6) A's dependency on B is upgraded to the released version, e.g. 1.2
7) A is released

Hence the need to be able to switch a single dependency from a release
to the next snapshot is necessary.  Is this use case really that
atypical?  Version ranges will work in a similar way but with the
following differences:

2) A's dependency on B is upgraded to the next snapshot version, e.g.
[1.0,2.0) to [1.0,2.0-SNAPSHOT)
...
6) A's dependency on B is upgraded to the released version, e.g. [1.0,2.0)

> At the moment I can do continuous integration in two ways
> * head to head (configure continuum deployment #1 to do clean install)
> * latest relevant release to latest relevant release - using version ranges
> (configure continuum deployment #2 do just do clean test)
>
> With mgn-3092 it will be impossible to take one artifact commit a change to
> the head and see if that breaks any of my other artifacts without changing
> poms. As the #1 won't pickup any changes because snapshot is not explicitly
> selected.

That's the way it normally works.  When a project is ready to receive
an upgraded dependency, the dependency is explicitly upgraded,
adjustments are made accordingly, it is then tested and released.
Reproducibility is the focus here, not the ease of upgrading a
project's dependencies; that's what tools should facilitate.

> I think people just overrate what snapshots provide... a non reproducible...
> non rollbackable... changes get pushed on me as a developer so i get broken
> when its incovenient to me...

This is not a problem when managed correctly.  Of course, if all
dependencies are left in snapshot on trunk with multiple developers
working on various new features simultaneously, then yes, development
will be troublesome.  But feature branches and the emphasis on
releasing often mitigates this.

> I work on the basic premise that the system should be in a state or
> releasability not development. Snapshots just bugger that up. And worse it
> makes people lazy. "Its only a snapshot". Not using snapshots as a norm gives
> me more power to "smack someone in the head" - if you will excuse the
> metaphor - if they are not working responsibly.

Surely having the pom control exact versions of dependencies promotes
reproducibility and releaseability?  Having the command line control
them via profiles and the such moves the responsibility to the user,
thus becoming more error prone.

> IMO if its not in source control it does not count, there is no trail, no
> guarantees, no possibility of generating diffs -Perhaps mercurial or svk
> could mitigate that to some extent - and chances are no recent backups.

All source changes that occur in a snapshot are in SCM since that's
what CI builds from?

I really would like to come to a resolution of how we want version
ranges to work within Maven.  This is holding up using ranges
seriously and fixing bugs relating to ranges, e.g. MNG-2994,
MRELEASE-318 and of course MNG-3092.  I've got some time to be able to
work on these issues but my hands are tied until we have a clear
direction.

Does anyone from the PMC care to comment?

Mark

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



Re: Version ranges and snapshots

2008-01-23 Thread Michael McCallum
so you are saying that A-2.0-SNAPSHOT uses B [1,2-!) and someone deploys B 
1.4.1-SNAPSHOT and that overrides B 2.0-SNAPSHOT and B 1.4 or just that it 
overrides B1.4?

Depends on your use case... as to how you would deal with that. And one of the 
reasons why I don't want mng-3092 because I can CI for this problem at the 
moment.


well you do need to be careful but the same it true even if you have version 
ranges for releases... mvn depedency:resolve is your friend...

when creating patched assemblies you need to confirm that any changes are 
ok... its not sufficient just to exclude snapshots... because any released 
version could also change the behaviour of the system...


On Thu, 24 Jan 2008 08:41:48 Stephen Connolly wrote:
> But that will bugger you up...
>
> You are working on the version 2 branch, there is no 2.0 released, only
> 2.0-SNAPSHOT... you don't care as it is still new and you are happy to use
> the last stable release, 1.4...
>
> Now there is some work that is needed for the 1.4 service pack, so
> 1.4.1-SNAPSHOT arrives and bang! you are scuppered
>
> On Jan 23, 2008 7:31 PM, Michael McCallum <[EMAIL PROTECTED]> wrote:
> > BTW if you want to _not_ include a snapshot on an open upper bound you
> > can..
> > [1,2-!)
> >
> > which will not include 1.0-SNAPSHOT, 1-SNAPSHOT
> > will include any version between 1 and 2 including any 1.2-SNAPSHOT or
> > 1.4-SNAPSHOT
> > will not include 2.0-SNAPSHOT or 2-SNAPSHOT
> >
> > On Thu, 24 Jan 2008 03:42:13 Mark Hobson wrote:
> > > Hi Michael,
> > >
> > > On 23/01/2008, Michael McCallum <[EMAIL PROTECTED]> wrote:
> > > > Firstly IMHO of MNG-3092 is that is it not the right thing for maven
> >
> > in
> >
> > > > general.
> > > >
> > > > I believe with MNG-2994 and appropriate use of profiles to enable and
> > > > disable snapshot repositories you can have everything that you want
> >
> > and
> >
> > > > still maintain the ability to allow any snapshot to be injected when
> > > > desired. There is a little gem that i discovered - or maybe i just
> > > > imagined it - the resolution tree is built from metadata, if you have
> >
> > no
> >
> > > > local metadata and MNG-2994 is fixed then you can control the
> >
> > resolution
> >
> > > > of any artifact by controlling its set of repositories - irrelevant
> > > > of
> >
> > if
> >
> > > > a snapshot is cached in the local repo.
> > > >
> > > > There is one caveat: the local repository is a merging of two
> >
> > things... a
> >
> > > > local repository and a cache of remote repositories... which is
> > > > unfortunate because that means deploy ends up installing local
> >
> > metadata
> >
> > > > and that results in my view of snapshots and other peoples views of
> > > > snapshots being different. So the act of deploying or installing
> >
> > breaks
> >
> > > > the use of repository selection because local metadata is always
> > > > used. Perhaps the 'local' repository metadata should be maskable as
> > > > well. Strictly speaking there is no reason it should be treated
> > > > differently.
> > >
> > > There is another caveat in that it's all or nothing.  Using a profile
> > > mechanism will switch all range dependencies into snapshot mode, when
> > > typically a developer only wishes to upgrade a couple.  How could this
> > > be achieved using profiles?
> > >
> > > > I'm concerned that MNG-3092 is a one way street where better more
> > > > flexible solutions could exist. But having said that if you did fix
> >
> > 3092
> >
> > > > it would not adversely affect me right now. And if it does... well
> >
> > I'll
> >
> > > > figure something out.
> > >
> > > I can see the theoretical opposition to fixing MNG-3092, but since
> > > it's impractical and unworkable it seems merely academic.  I'm open to
> > > suggestions if they still give the efficiency gains that working with
> > > version ranges will provide.
> > >
> > > Cheers,
> > >
> > > Mark
> > >
> > > -
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> > --
> > Michael McCallum
> > Enterprise Engineer
> > mailto:[EMAIL PROTECTED]
> >
> > -
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]



-- 
Michael McCallum
Enterprise Engineer
mailto:[EMAIL PROTECTED]

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



Re: Version ranges and snapshots

2008-01-23 Thread Stephen Connolly
But that will bugger you up...

You are working on the version 2 branch, there is no 2.0 released, only
2.0-SNAPSHOT... you don't care as it is still new and you are happy to use
the last stable release, 1.4...

Now there is some work that is needed for the 1.4 service pack, so
1.4.1-SNAPSHOT arrives and bang! you are scuppered

On Jan 23, 2008 7:31 PM, Michael McCallum <[EMAIL PROTECTED]> wrote:

> BTW if you want to _not_ include a snapshot on an open upper bound you
> can..
> [1,2-!)
>
> which will not include 1.0-SNAPSHOT, 1-SNAPSHOT
> will include any version between 1 and 2 including any 1.2-SNAPSHOT or
> 1.4-SNAPSHOT
> will not include 2.0-SNAPSHOT or 2-SNAPSHOT
>
>
> On Thu, 24 Jan 2008 03:42:13 Mark Hobson wrote:
> > Hi Michael,
> >
> > On 23/01/2008, Michael McCallum <[EMAIL PROTECTED]> wrote:
> > > Firstly IMHO of MNG-3092 is that is it not the right thing for maven
> in
> > > general.
> > >
> > > I believe with MNG-2994 and appropriate use of profiles to enable and
> > > disable snapshot repositories you can have everything that you want
> and
> > > still maintain the ability to allow any snapshot to be injected when
> > > desired. There is a little gem that i discovered - or maybe i just
> > > imagined it - the resolution tree is built from metadata, if you have
> no
> > > local metadata and MNG-2994 is fixed then you can control the
> resolution
> > > of any artifact by controlling its set of repositories - irrelevant of
> if
> > > a snapshot is cached in the local repo.
> > >
> > > There is one caveat: the local repository is a merging of two
> things... a
> > > local repository and a cache of remote repositories... which is
> > > unfortunate because that means deploy ends up installing local
> metadata
> > > and that results in my view of snapshots and other peoples views of
> > > snapshots being different. So the act of deploying or installing
> breaks
> > > the use of repository selection because local metadata is always used.
> > > Perhaps the 'local' repository metadata should be maskable as well.
> > > Strictly speaking there is no reason it should be treated differently.
> >
> > There is another caveat in that it's all or nothing.  Using a profile
> > mechanism will switch all range dependencies into snapshot mode, when
> > typically a developer only wishes to upgrade a couple.  How could this
> > be achieved using profiles?
> >
> > > I'm concerned that MNG-3092 is a one way street where better more
> > > flexible solutions could exist. But having said that if you did fix
> 3092
> > > it would not adversely affect me right now. And if it does... well
> I'll
> > > figure something out.
> >
> > I can see the theoretical opposition to fixing MNG-3092, but since
> > it's impractical and unworkable it seems merely academic.  I'm open to
> > suggestions if they still give the efficiency gains that working with
> > version ranges will provide.
> >
> > Cheers,
> >
> > Mark
> >
> > -
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
> --
> Michael McCallum
> Enterprise Engineer
> mailto:[EMAIL PROTECTED]
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


Re: Version ranges and snapshots

2008-01-23 Thread Michael McCallum
BTW if you want to _not_ include a snapshot on an open upper bound you can..
[1,2-!)

which will not include 1.0-SNAPSHOT, 1-SNAPSHOT
will include any version between 1 and 2 including any 1.2-SNAPSHOT or 
1.4-SNAPSHOT
will not include 2.0-SNAPSHOT or 2-SNAPSHOT


On Thu, 24 Jan 2008 03:42:13 Mark Hobson wrote:
> Hi Michael,
>
> On 23/01/2008, Michael McCallum <[EMAIL PROTECTED]> wrote:
> > Firstly IMHO of MNG-3092 is that is it not the right thing for maven in
> > general.
> >
> > I believe with MNG-2994 and appropriate use of profiles to enable and
> > disable snapshot repositories you can have everything that you want and
> > still maintain the ability to allow any snapshot to be injected when
> > desired. There is a little gem that i discovered - or maybe i just
> > imagined it - the resolution tree is built from metadata, if you have no
> > local metadata and MNG-2994 is fixed then you can control the resolution
> > of any artifact by controlling its set of repositories - irrelevant of if
> > a snapshot is cached in the local repo.
> >
> > There is one caveat: the local repository is a merging of two things... a
> > local repository and a cache of remote repositories... which is
> > unfortunate because that means deploy ends up installing local metadata
> > and that results in my view of snapshots and other peoples views of
> > snapshots being different. So the act of deploying or installing breaks
> > the use of repository selection because local metadata is always used.
> > Perhaps the 'local' repository metadata should be maskable as well.
> > Strictly speaking there is no reason it should be treated differently.
>
> There is another caveat in that it's all or nothing.  Using a profile
> mechanism will switch all range dependencies into snapshot mode, when
> typically a developer only wishes to upgrade a couple.  How could this
> be achieved using profiles?
>
> > I'm concerned that MNG-3092 is a one way street where better more
> > flexible solutions could exist. But having said that if you did fix 3092
> > it would not adversely affect me right now. And if it does... well I'll
> > figure something out.
>
> I can see the theoretical opposition to fixing MNG-3092, but since
> it's impractical and unworkable it seems merely academic.  I'm open to
> suggestions if they still give the efficiency gains that working with
> version ranges will provide.
>
> Cheers,
>
> Mark
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]



-- 
Michael McCallum
Enterprise Engineer
mailto:[EMAIL PROTECTED]

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



Re: Version ranges and snapshots

2008-01-23 Thread Michael McCallum
On Thu, 24 Jan 2008 03:42:13 Mark Hobson wrote:
> Hi Michael,

> There is another caveat in that it's all or nothing.  Using a profile
> mechanism will switch all range dependencies into snapshot mode, when
> typically a developer only wishes to upgrade a couple.  How could this
> be achieved using profiles?
i can think of two ways off the top of my head
* install on the specific project
* selective repositories and profiles for different project groups

The real question is what do you hope to achieve by enabling snapshots for a 
particular project or set of projects. Perhaps a change of direction in the 
discussion do you use multiple lines and merging to manage what your 
releases? 
>
> > I'm concerned that MNG-3092 is a one way street where better more
> > flexible solutions could exist. But having said that if you did fix 3092
> > it would not adversely affect me right now. And if it does... well I'll
> > figure something out.
>
> I can see the theoretical opposition to fixing MNG-3092, but since
> it's impractical and unworkable it seems merely academic.  I'm open to
At the moment I can do continuous integration in two ways
* head to head (configure continuum deployment #1 to do clean install)
* latest relevant release to latest relevant release - using version ranges 
(configure continuum deployment #2 do just do clean test)

With mgn-3092 it will be impossible to take one artifact commit a change to 
the head and see if that breaks any of my other artifacts without changing 
poms. As the #1 won't pickup any changes because snapshot is not explicitly 
selected.

> suggestions if they still give the efficiency gains that working with
> version ranges will provide.
I think people just overrate what snapshots provide... a non reproducible... 
non rollbackable... changes get pushed on me as a developer so i get broken 
when its incovenient to me... 

I work on the basic premise that the system should be in a state or 
releasability not development. Snapshots just bugger that up. And worse it 
makes people lazy. "Its only a snapshot". Not using snapshots as a norm gives 
me more power to "smack someone in the head" - if you will excuse the 
metaphor - if they are not working responsibly.

IMO if its not in source control it does not count, there is no trail, no 
guarantees, no possibility of generating diffs -Perhaps mercurial or svk 
could mitigate that to some extent - and chances are no recent backups.

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



-- 
Michael McCallum
Enterprise Engineer
mailto:[EMAIL PROTECTED]

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



Re: Version ranges and snapshots

2008-01-23 Thread Mark Hobson
Hi Michael,

On 23/01/2008, Michael McCallum <[EMAIL PROTECTED]> wrote:
> Firstly IMHO of MNG-3092 is that is it not the right thing for maven in
> general.
>
> I believe with MNG-2994 and appropriate use of profiles to enable and disable
> snapshot repositories you can have everything that you want and still
> maintain the ability to allow any snapshot to be injected when desired.
> There is a little gem that i discovered - or maybe i just imagined it - the
> resolution tree is built from metadata, if you have no local metadata and
> MNG-2994 is fixed then you can control the resolution of any artifact by
> controlling its set of repositories - irrelevant of if a snapshot is cached
> in the local repo.
>
> There is one caveat: the local repository is a merging of two things... a
> local repository and a cache of remote repositories... which is unfortunate
> because that means deploy ends up installing local metadata and that results
> in my view of snapshots and other peoples views of snapshots being different.
> So the act of deploying or installing breaks the use of repository selection
> because local metadata is always used. Perhaps the 'local' repository
> metadata should be maskable as well. Strictly speaking there is no reason it
> should be treated differently.

There is another caveat in that it's all or nothing.  Using a profile
mechanism will switch all range dependencies into snapshot mode, when
typically a developer only wishes to upgrade a couple.  How could this
be achieved using profiles?

> I'm concerned that MNG-3092 is a one way street where better more flexible
> solutions could exist. But having said that if you did fix 3092 it would not
> adversely affect me right now. And if it does... well I'll figure something
> out.

I can see the theoretical opposition to fixing MNG-3092, but since
it's impractical and unworkable it seems merely academic.  I'm open to
suggestions if they still give the efficiency gains that working with
version ranges will provide.

Cheers,

Mark

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



Re: Version ranges and snapshots

2008-01-22 Thread Michael McCallum
Firstly IMHO of MNG-3092 is that is it not the right thing for maven in 
general.

I believe with MNG-2994 and appropriate use of profiles to enable and disable 
snapshot repositories you can have everything that you want and still 
maintain the ability to allow any snapshot to be injected when desired.
There is a little gem that i discovered - or maybe i just imagined it - the 
resolution tree is built from metadata, if you have no local metadata and 
MNG-2994 is fixed then you can control the resolution of any artifact by 
controlling its set of repositories - irrelevant of if a snapshot is cached 
in the local repo.

There is one caveat: the local repository is a merging of two things... a 
local repository and a cache of remote repositories... which is unfortunate 
because that means deploy ends up installing local metadata and that results 
in my view of snapshots and other peoples views of snapshots being different.
So the act of deploying or installing breaks the use of repository selection 
because local metadata is always used. Perhaps the 'local' repository 
metadata should be maskable as well. Strictly speaking there is no reason it 
should be treated differently.

I'm concerned that MNG-3092 is a one way street where better more flexible 
solutions could exist. But having said that if you did fix 3092 it would not 
adversely affect me right now. And if it does... well I'll figure something 
out.


-- 
Michael McCallum
Enterprise Engineer
mailto:[EMAIL PROTECTED]

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



Re: Version ranges and snapshots

2008-01-22 Thread dhoffer
gt; snapshots that it might be nice to have a global override of this
>>> behavior.
>>> That is, I want/need this bug fixed but I suggest we add a new command
>>> line
>>> switch that can optionally be used to keep the behavior as it is.
>>>
>>> I vote to fix this bug.  (If it will help I will get my dev team to vote
>>> also!)
>>>
>>>
>>> Michael McCallum-3 wrote:
>>> >
>>> > Back to the origin of the thread
>>> >
>>> > Version ranges with non-snapshot bounds can contain snapshot versions
>>> > http://jira.codehaus.org/browse/MNG-3092
>>> >
>>> >
>>> > I feel that the current behaviour is correct and can be managed
>>> > sufficiently
>>> > by profiles. Let me render some scenarios...
>>> >
>>> > 1) You wish a release build with no snapshots which is the normal
>>> > behaviour
>>> > and so you just build the trunk of your artifact and it works...
>>> > optionally
>>> > the enforcer plugin can ensure that you are not including snapshot
>>> > dependencies
>>> >
>>> > 2) You wish a dev build with all snapshots enabled so you enable a
>>> project
>>> > configured in your settings.xml that exposes you snapshot repositories
>>> > Obivously we need to fix... http://jira.codehaus.org/browse/MNG-2994
>>> first
>>> >
>>> > 3) You wish a dev build but with only a single snapshot... build the
>>> > project
>>> > you wish a snapshot of into your local repo... build as in #1
>>> >
>>> >
>>> > If we were to fix MNG-3092 then 2 would not be possible... as you
>>> would
>>> > have
>>> > to go and edit all your poms to enable snapshots... i have well over
>>> 100
>>> > artifacts and many dependencies that exist in 40 or more projects...
>>> it
>>> > seems
>>> > to be that decent continuous integration would not be possible if you
>>> fix
>>> > MNG-3092
>>> >
>>> > Can we start a vote for this issue here I guess the same rules as
>>> releases
>>> > would apply. 72 hours only pmc votes are binding. etc etc
>>> >
>>> > --
>>> > Michael McCallum
>>> > Enterprise Engineer
>>> > mailto:[EMAIL PROTECTED]
>>> >
>>> > -
>>> > To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> > For additional commands, e-mail: [EMAIL PROTECTED]
>>> >
>>> >
>>> >
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Version-ranges-and-snapshots-tp11464715s177p14967465.html
>>> Sent from the Maven Developers mailing list archive at Nabble.com.
>>>
>>>
>>> -
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>> 
>> -
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>> 
>> 
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Version-ranges-and-snapshots-tp11464715s177p15032985.html
Sent from the Maven Developers mailing list archive at Nabble.com.


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



Re: Version ranges and snapshots

2008-01-22 Thread dhoffer
t; >
>> >
>> > I feel that the current behaviour is correct and can be managed
>> > sufficiently
>> > by profiles. Let me render some scenarios...
>> >
>> > 1) You wish a release build with no snapshots which is the normal
>> > behaviour
>> > and so you just build the trunk of your artifact and it works...
>> > optionally
>> > the enforcer plugin can ensure that you are not including snapshot
>> > dependencies
>> >
>> > 2) You wish a dev build with all snapshots enabled so you enable a
>> project
>> > configured in your settings.xml that exposes you snapshot repositories
>> > Obivously we need to fix... http://jira.codehaus.org/browse/MNG-2994
>> first
>> >
>> > 3) You wish a dev build but with only a single snapshot... build the
>> > project
>> > you wish a snapshot of into your local repo... build as in #1
>> >
>> >
>> > If we were to fix MNG-3092 then 2 would not be possible... as you would
>> > have
>> > to go and edit all your poms to enable snapshots... i have well over
>> 100
>> > artifacts and many dependencies that exist in 40 or more projects... it
>> > seems
>> > to be that decent continuous integration would not be possible if you
>> fix
>> > MNG-3092
>> >
>> > Can we start a vote for this issue here I guess the same rules as
>> releases
>> > would apply. 72 hours only pmc votes are binding. etc etc
>> >
>> > --
>> > Michael McCallum
>> > Enterprise Engineer
>> > mailto:[EMAIL PROTECTED]
>> >
>> > -
>> > To unsubscribe, e-mail: [EMAIL PROTECTED]
>> > For additional commands, e-mail: [EMAIL PROTECTED]
>> >
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Version-ranges-and-snapshots-tp11464715s177p14967465.html
>> Sent from the Maven Developers mailing list archive at Nabble.com.
>>
>>
>> -
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
> 
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Version-ranges-and-snapshots-tp11464715s177p15032547.html
Sent from the Maven Developers mailing list archive at Nabble.com.


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



Re: Version ranges and snapshots

2008-01-22 Thread Mark Hobson
 possible... as you would
> > have
> > to go and edit all your poms to enable snapshots... i have well over 100
> > artifacts and many dependencies that exist in 40 or more projects... it
> > seems
> > to be that decent continuous integration would not be possible if you fix
> > MNG-3092
> >
> > Can we start a vote for this issue here I guess the same rules as releases
> > would apply. 72 hours only pmc votes are binding. etc etc
> >
> > --
> > Michael McCallum
> > Enterprise Engineer
> > mailto:[EMAIL PROTECTED]
> >
> > -
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> >
>
> --
> View this message in context: 
> http://www.nabble.com/Version-ranges-and-snapshots-tp11464715s177p14967465.html
> Sent from the Maven Developers mailing list archive at Nabble.com.
>
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

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



Re: Version ranges and snapshots

2008-01-18 Thread dhoffer

I feel this is the most important bug that needs to be fixed.  We make heavy
use of version ranges and without this fix they are unusable (we have to
manually apply a patch to each maven release).

"1) You wish a release build with no snapshots which is the normal behaviour
and so you just build the trunk of your artifact and it works... optionally
the enforcer plugin can ensure that you are not including snapshot
dependencies "
-No it doesn't work.  We can't release using version ranges because of this
bug, (that is what this issue is all about).  The enforcer is no fix, that
doesn't help the release succeed.

"2) You wish a dev build with all snapshots enabled so you enable a project
configured in your settings.xml that exposes you snapshot repositories
Obivously we need to fix... http://jira.codehaus.org/browse/MNG-2994 first"
-No, that does not work.  If I have already specified what versions
(snapshots, version ranges, etc) in my pom that I need, I should not have to
do a system fix/workaround of modifying my settings.xml to get the pom to do
what it says.  But even if I could do this it will not work, because it
cannot stop the build from getting snapshots from my local repo.  For this
workaround to work I would also have to delete my local repo before each
build!

"3) You wish a dev build but with only a single snapshot... build the
project you wish a snapshot of into your local repo... build as in #1"
-No again.  I don't want to have to build local snapshots first of every
snapshot i want to depend on!  Furthermore each developer would have to do
the same.

"If we were to fix MNG-3092 then 2 would not be possible... as you would
have to go and edit all your poms to enable snapshots... i have well over
100 artifacts and many dependencies that exist in 40 or more projects... it
seems to be that decent continuous integration would not be possible if you
fix MNG-3092"
-Again we don't want the settings.xml to control if snapshots are visible or
not...as discussed, it simply cannot do this job.  You have made a process
that works for you but in essence you do not use snapshots, rather you make
many releases instead so why would you need to go back and modify your 40
projects to include snapshots.  Now I can see for others that do use
snapshots that it might be nice to have a global override of this behavior. 
That is, I want/need this bug fixed but I suggest we add a new command line
switch that can optionally be used to keep the behavior as it is.

I vote to fix this bug.  (If it will help I will get my dev team to vote
also!)


Michael McCallum-3 wrote:
> 
> Back to the origin of the thread
> 
> Version ranges with non-snapshot bounds can contain snapshot versions
> http://jira.codehaus.org/browse/MNG-3092
> 
> 
> I feel that the current behaviour is correct and can be managed
> sufficiently 
> by profiles. Let me render some scenarios...
> 
> 1) You wish a release build with no snapshots which is the normal
> behaviour 
> and so you just build the trunk of your artifact and it works...
> optionally 
> the enforcer plugin can ensure that you are not including snapshot 
> dependencies 
> 
> 2) You wish a dev build with all snapshots enabled so you enable a project 
> configured in your settings.xml that exposes you snapshot repositories
> Obivously we need to fix... http://jira.codehaus.org/browse/MNG-2994 first
> 
> 3) You wish a dev build but with only a single snapshot... build the
> project 
> you wish a snapshot of into your local repo... build as in #1
> 
> 
> If we were to fix MNG-3092 then 2 would not be possible... as you would
> have 
> to go and edit all your poms to enable snapshots... i have well over 100 
> artifacts and many dependencies that exist in 40 or more projects... it
> seems 
> to be that decent continuous integration would not be possible if you fix 
> MNG-3092
> 
> Can we start a vote for this issue here I guess the same rules as releases 
> would apply. 72 hours only pmc votes are binding. etc etc 
> 
> -- 
> Michael McCallum
> Enterprise Engineer
> mailto:[EMAIL PROTECTED]
> 
> -------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Version-ranges-and-snapshots-tp11464715s177p14967465.html
Sent from the Maven Developers mailing list archive at Nabble.com.


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



Re: Version ranges and snapshots

2008-01-18 Thread dhoffer

"..It's crazy that version ranges are still unusable in 2.0.8.."
Exactly, we really need this fixed, can we apply this patch so we can use
version ranges and snapshots.  This issue is killing us.

-Dave


mihobson wrote:
> 
> On 10/01/2008, Michael McCallum <[EMAIL PROTECTED]> wrote:
>> another thought...
>>
>> by default you could not have snapshot repositories enabled and just
>> enable
>> them with a profile...
>>
>> that way all builds by default have no snapshots, you could even have
>> separate
>> profiles and snapshot repos for different departments to a allow more
>> flexible integration
> 
> Unfortunately this won't work either due to
> http://jira.codehaus.org/browse/MNG-2994
> 
> Both MNG-2994 and MNG-3092 need to be fixed before we can really start
> using version ranges as they were intended.  I think we should just
> stick with the original design docs and apply the patch for MNG-3092.
> It's crazy that version ranges are still unusable in 2.0.8..
> 
> Cheers,
> 
> Mark
> 
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Version-ranges-and-snapshots-tp11464715s177p14967237.html
Sent from the Maven Developers mailing list archive at Nabble.com.


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



Re: Version ranges and snapshots

2008-01-14 Thread Michael McCallum
Back to the origin of the thread

Version ranges with non-snapshot bounds can contain snapshot versions
http://jira.codehaus.org/browse/MNG-3092


I feel that the current behaviour is correct and can be managed sufficiently 
by profiles. Let me render some scenarios...

1) You wish a release build with no snapshots which is the normal behaviour 
and so you just build the trunk of your artifact and it works... optionally 
the enforcer plugin can ensure that you are not including snapshot 
dependencies 

2) You wish a dev build with all snapshots enabled so you enable a project 
configured in your settings.xml that exposes you snapshot repositories
Obivously we need to fix... http://jira.codehaus.org/browse/MNG-2994 first

3) You wish a dev build but with only a single snapshot... build the project 
you wish a snapshot of into your local repo... build as in #1


If we were to fix MNG-3092 then 2 would not be possible... as you would have 
to go and edit all your poms to enable snapshots... i have well over 100 
artifacts and many dependencies that exist in 40 or more projects... it seems 
to be that decent continuous integration would not be possible if you fix 
MNG-3092

Can we start a vote for this issue here I guess the same rules as releases 
would apply. 72 hours only pmc votes are binding. etc etc 

-- 
Michael McCallum
Enterprise Engineer
mailto:[EMAIL PROTECTED]

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



Re: Version ranges and snapshots

2008-01-14 Thread Michael McCallum
On Tue, 15 Jan 2008 08:43:38 Michael McCallum wrote:
> > It's crazy that version ranges are still unusable in 2.0.8..

> * we can mix and match snapshots during development if we need to
would not appear to work, i could swear i had this working in the last year... 

oh well, i can see how that would affect most projects

-- 
Michael McCallum
Enterprise Engineer
mailto:[EMAIL PROTECTED]

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



Re: Version ranges and snapshots

2008-01-14 Thread Michael McCallum
> It's crazy that version ranges are still unusable in 2.0.8..
I disagree entirely.

I use version ranges for a very complex Project... and it works very well 

* we have repeatable builds
* we can mix and match snapshots during development if we need to
* releases fail if you have snapshot deps even in ranges and transitions
* this is all out of the box released maven core and plugins

* have modules projects to test that the trunk of all projects builds and 
tests against the latest releases of all projects
* have modules projects to test that the trunk of all projects builds and 
tests against the latest releases of all projects

what more do you need?

On Tue, 15 Jan 2008 06:41:42 Mark Hobson wrote:
> On 10/01/2008, Michael McCallum <[EMAIL PROTECTED]> wrote:
> > another thought...
> >
> > by default you could not have snapshot repositories enabled and just
> > enable them with a profile...
> >
> > that way all builds by default have no snapshots, you could even have
> > separate profiles and snapshot repos for different departments to a allow
> > more flexible integration
>
> Unfortunately this won't work either due to
> http://jira.codehaus.org/browse/MNG-2994
>
> Both MNG-2994 and MNG-3092 need to be fixed before we can really start
> using version ranges as they were intended.  I think we should just
> stick with the original design docs and apply the patch for MNG-3092.
>
> Cheers,
>
> Mark
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]



-- 
Michael McCallum
Enterprise Engineer
mailto:[EMAIL PROTECTED]

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



Re: Version ranges and snapshots

2008-01-14 Thread Mark Hobson
On 10/01/2008, Michael McCallum <[EMAIL PROTECTED]> wrote:
> another thought...
>
> by default you could not have snapshot repositories enabled and just enable
> them with a profile...
>
> that way all builds by default have no snapshots, you could even have separate
> profiles and snapshot repos for different departments to a allow more
> flexible integration

Unfortunately this won't work either due to
http://jira.codehaus.org/browse/MNG-2994

Both MNG-2994 and MNG-3092 need to be fixed before we can really start
using version ranges as they were intended.  I think we should just
stick with the original design docs and apply the patch for MNG-3092.
It's crazy that version ranges are still unusable in 2.0.8..

Cheers,

Mark

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



RE: Version ranges and snapshots

2008-01-10 Thread Brian E. Fox
It will warn or fail the build. It's a gatekeeper not a negotiator ;-)

-Original Message-
From: dhoffer [mailto:[EMAIL PROTECTED] 
Sent: Thursday, January 10, 2008 9:49 PM
To: dev@maven.apache.org
Subject: Re: Version ranges and snapshots


Does maven-enforcer-plugin just stop a build from including a snapshot
or
does it force it to find a release?  You know what I mean?  Is it a
after-the-fact filter or does it change the behavior of maven?



Michael McCallum-3 wrote:
> 
> On Wed, 09 Jan 2008 15:15:55 Michael McCallum wrote:
>> > IMHO, I think our approach excels in making sure this doesn't
happen.
>> > First and foremost, if this version range issue can be fixed,
snapshots
>> > will never be considered valid unless explicitly asked for.
Therefore
>> > snapshot deploys will never be a problem for me.  Currently I can't
>> even
>> > release because snapshots are not filtered out.
>>
>> the enforcer plugin definitely fixes this and the
>> generateReleasePoms=true
>> ensures that the build from tag uses the same clean deps as when
tagging
> sorry lets you get errors if you try to release with snapshots...
> 
> this is how i configured it... it pays to do a clean test enabling the
> profile 
> first otherwise it fails on perform rather than tag... there may be a
> better 
> way that this though
> 
>  
>   enforce-no-snapshots
>   
> 
>   performRelease
>   true
> 
>   
>   
> 
>   
> org.apache.maven.plugins
> maven-enforcer-plugin
> 
>   
> enforce-no-snapshots
> validate
> 
>   enforce
> 
> 
>   
> 
>   
> No snapshots allowed in releases it breaks
build 
> reproducibility.
>   
> 
>   
>   true
>   true
> 
>   
> 
>   
> 
>   
> 
> -- 
> Michael McCallum
> Enterprise Engineer
> mailto:[EMAIL PROTECTED]
> 
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context:
http://www.nabble.com/Version-ranges-and-snapshots-tp11464715s177p147487
36.html
Sent from the Maven Developers mailing list archive at Nabble.com.


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


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



Re: Version ranges and snapshots

2008-01-10 Thread dhoffer

Does maven-enforcer-plugin just stop a build from including a snapshot or
does it force it to find a release?  You know what I mean?  Is it a
after-the-fact filter or does it change the behavior of maven?



Michael McCallum-3 wrote:
> 
> On Wed, 09 Jan 2008 15:15:55 Michael McCallum wrote:
>> > IMHO, I think our approach excels in making sure this doesn't happen.
>> > First and foremost, if this version range issue can be fixed, snapshots
>> > will never be considered valid unless explicitly asked for.  Therefore
>> > snapshot deploys will never be a problem for me.  Currently I can't
>> even
>> > release because snapshots are not filtered out.
>>
>> the enforcer plugin definitely fixes this and the
>> generateReleasePoms=true
>> ensures that the build from tag uses the same clean deps as when tagging
> sorry lets you get errors if you try to release with snapshots...
> 
> this is how i configured it... it pays to do a clean test enabling the
> profile 
> first otherwise it fails on perform rather than tag... there may be a
> better 
> way that this though
> 
>  
>   enforce-no-snapshots
>   
> 
>   performRelease
>   true
> 
>   
>   
> 
>   
> org.apache.maven.plugins
> maven-enforcer-plugin
> 
>   
> enforce-no-snapshots
> validate
> 
>   enforce
> 
> 
>   
> 
>   
> No snapshots allowed in releases it breaks build 
> reproducibility.
>   
> 
>   
>   true
>   true
> 
>   
> 
>   
> 
>   
> 
> -- 
> Michael McCallum
> Enterprise Engineer
> mailto:[EMAIL PROTECTED]
> 
> ---------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Version-ranges-and-snapshots-tp11464715s177p14748736.html
Sent from the Maven Developers mailing list archive at Nabble.com.


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



Re: Version ranges and snapshots

2008-01-10 Thread dhoffer

We have thought about this but since it cannot prevent local snapshots it is
not really a solution only a technique to limit the problem.  BTW, we use
TeamCity for CI, builds get farmed out to many build agents so what is in
their local repo is quite random; sometimes it works sometimes it doesn't.

We do keep our snapshots on a separate repo (different server port no less)
but again this really doesn't help fix the problem.

There is no solution (we can come up with) other than patching maven.  I
have done this and submitted the patch with my JIRA.  Unfortunately, my JIRA
got closed in favor of this JIRA w/ patch.  But then this discussion started
and no fix has been implemented...


Michael McCallum-3 wrote:
> 
> another thought... 
> 
> by default you could not have snapshot repositories enabled and just
> enable 
> them with a profile...
> 
> that way all builds by default have no snapshots, you could even have
> separate 
> profiles and snapshot repos for different departments to a allow more 
> flexible integration
> -- 
> Michael McCallum
> Enterprise Engineer
> mailto:[EMAIL PROTECTED]
> 
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Version-ranges-and-snapshots-tp11464715s177p14748696.html
Sent from the Maven Developers mailing list archive at Nabble.com.


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



Re: Version ranges and snapshots

2008-01-10 Thread Michael McCallum
another thought... 

by default you could not have snapshot repositories enabled and just enable 
them with a profile...

that way all builds by default have no snapshots, you could even have separate 
profiles and snapshot repos for different departments to a allow more 
flexible integration
-- 
Michael McCallum
Enterprise Engineer
mailto:[EMAIL PROTECTED]

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



Re: Version ranges and snapshots

2008-01-08 Thread Michael McCallum
On Wed, 09 Jan 2008 15:15:55 Michael McCallum wrote:
> > IMHO, I think our approach excels in making sure this doesn't happen.
> > First and foremost, if this version range issue can be fixed, snapshots
> > will never be considered valid unless explicitly asked for.  Therefore
> > snapshot deploys will never be a problem for me.  Currently I can't even
> > release because snapshots are not filtered out.
>
> the enforcer plugin definitely fixes this and the generateReleasePoms=true
> ensures that the build from tag uses the same clean deps as when tagging
sorry lets you get errors if you try to release with snapshots...

this is how i configured it... it pays to do a clean test enabling the profile 
first otherwise it fails on perform rather than tag... there may be a better 
way that this though

 
  enforce-no-snapshots
  

  performRelease
  true

  
  

  
org.apache.maven.plugins
maven-enforcer-plugin

  
enforce-no-snapshots
validate

  enforce


  

  
No snapshots allowed in releases it breaks build 
reproducibility.
  

  
  true
  true

  

  

  

-- 
Michael McCallum
Enterprise Engineer
mailto:[EMAIL PROTECTED]

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



Re: Version ranges and snapshots

2008-01-08 Thread Michael McCallum

> IMHO, I think our approach excels in making sure this doesn't happen. 
> First and foremost, if this version range issue can be fixed, snapshots
> will never be considered valid unless explicitly asked for.  Therefore
> snapshot deploys will never be a problem for me.  Currently I can't even
> release because snapshots are not filtered out.
the enforcer plugin definitely fixes this and the generateReleasePoms=true 
ensures that the build from tag uses the same clean deps as when tagging

-- 
Michael McCallum
Enterprise Engineer
mailto:[EMAIL PROTECTED]

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



Re: Version ranges and snapshots

2008-01-08 Thread dhoffer

"...But at the same time I would never want another department to break my
build
by deploying a snapshot I'm not ready for. "

IMHO, I think our approach excels in making sure this doesn't happen.  First
and foremost, if this version range issue can be fixed, snapshots will never
be considered valid unless explicitly asked for.  Therefore snapshot deploys
will never be a problem for me.  Currently I can't even release because
snapshots are not filtered out.

"... Did we not start this 
whole discussion because you wanted artifact resolution to not work 
transparently with snapshots? i.e. you have to explicitly mention snapshots 
in the ranges as defined the original maven2 dependency spec."

Yes exactly, if I don't explicitly mention a snapshot on either end of an
inclusive version range I don't want snapshots to be part of my build.

"...BTW snapshots are not filtered/faulted by the release plugin when
defined in 
ranges, it would appear to work on the defined not resolved dependencies... 
you have to use the enforcer plugin which works on the resolved tree."

Hum, not sure.  I briefly looked at the enforcer plugin and it didn't seem
like it was something that should be required use here; i.e. to fix this
issue.

In summary, I think your process and mine are similar yet different. 
Similar in that we have lots of projects and internal dependencies and we
want projects to 'automatically' use later versions.  Different in that I
move all the 'bad releases' to snapshots which essentially go away when not
needed anymore.  I vote we fix this issue such that version ranges work for
both of us (and others), if this requires a command line option (or
something) that is fine with me.

BTW, our CI server does clean deploys on all SVN checkins; releases never
occur unless we push the release button. 
 


Michael McCallum-3 wrote:
> 
> All fair comments. We don't release documentation for each release. 
> site-deploys are independent. And we have perhaps fewer people.
> 
> But at the same time I would never want another department to break my
> build 
> by deploying a snapshot I'm not ready for.
> 
> Quite possibly we could make more use of snapshots. Did we not start this 
> whole discussion because you wanted artifact resolution to not work 
> transparently with snapshots? i.e. you have to explicitly mention
> snapshots 
> in the ranges as defined the original maven2 dependency spec.
> 
> BTW snapshots are not filtered/faulted by the release plugin when defined
> in 
> ranges, it would appear to work on the defined not resolved
> dependencies... 
> you have to use the enforcer plugin which works on the resolved tree.
> 
> cheers
> 
> -- 
> Michael McCallum
> Enterprise Engineer
> mailto:[EMAIL PROTECTED]
> 
> -----
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Version-ranges-and-snapshots-tp11464715s177p14689271.html
Sent from the Maven Developers mailing list archive at Nabble.com.


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



Re: Version ranges and snapshots

2008-01-08 Thread Michael McCallum
All fair comments. We don't release documentation for each release. 
site-deploys are independent. And we have perhaps fewer people.

But at the same time I would never want another department to break my build 
by deploying a snapshot I'm not ready for.

Quite possibly we could make more use of snapshots. Did we not start this 
whole discussion because you wanted artifact resolution to not work 
transparently with snapshots? i.e. you have to explicitly mention snapshots 
in the ranges as defined the original maven2 dependency spec.

BTW snapshots are not filtered/faulted by the release plugin when defined in 
ranges, it would appear to work on the defined not resolved dependencies... 
you have to use the enforcer plugin which works on the resolved tree.

cheers

-- 
Michael McCallum
Enterprise Engineer
mailto:[EMAIL PROTECTED]

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



Re: Version ranges and snapshots

2008-01-07 Thread dhoffer
gt; repo, never mixed with releases.
>>
> Perhaps the implementor realised the spec wasn't right and failed to
> update 
> the docs...
> 
> Anyway to snapshots, well the pom thats in the trunk of any artifact has a 
> snapshot version but anything that i share with other developers has a 
> release version. Each of our artifacts that in active development will get 
> released at least once a day. The main reason being that i should not go 
> messing with other developers environments unless I am confident that all
> the 
> tests pass and the code works the same or better than before. 
> 
> I want a tool than gives me the power to define exactly what I am
> deploying 
> and allow me to easily develop that and patch it if necessary. We are
> working 
> with over 11 projects composed of 130 or so artifacts. It all works very
> well 
> without snapshots being deployed. We do of course make use of snapshots in 
> our local repositories though.
> 
> Once of my major beefs about snapshots being deployed is that you get to a 
> point where you want to make Release and have to unroll and whole tangle
> of 
> transitive snapshots. We make at least one Release everyday and really
> need a 
> fully consistent ready to deploy tree of artifacts.
> 
> We mark the completion of a task as the release of the artifact... so if
> you 
> have developers willy nilly deploying snapshots as a single developer i 
> cannot easily mark the end of my work without rolling up other peoples as 
> well. The simplest solution is to require by process that people release 
> things regularly. And use metadata - or otherwise -to manage horribly
> broken 
> artifacts, which very rarely happen with decent tests.
> 
> Consider one of my least favourite quotes "But it worked yesterday!"
> 
> For stable artifacts the rate of commits/checkin to releases is close to
> 1:1. 
> For developing artifacts its much higher.
> 
> In any case My vote would be for maintaining the current behaviour and 
> allowing an option to change it at runtime or on the command line. You run 
> the risk of breaking builds otherwise.
> 
> -- 
> Michael McCallum
> Enterprise Engineer
> mailto:[EMAIL PROTECTED]
> 
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Version-ranges-and-snapshots-tp11464715s177p14681397.html
Sent from the Maven Developers mailing list archive at Nabble.com.


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



Re: Version ranges and snapshots

2008-01-07 Thread Michael McCallum
On Tue, 08 Jan 2008 14:25:06 dhoffer wrote:
> Regarding 1:  Well that's not normal maven operation.  You apparently have
> created a 'work-around' that works for you...I prefer to fix the bug so it
> works as it is specified.
>
> There are lots of reasons to deploy snapshots.  Normal maven behavior is
> that everything, in development, is always a snapshot.  You have to deploy
> these so they can be used by others;  now we do keep these on a separate
> repo, never mixed with releases.
>
Perhaps the implementor realised the spec wasn't right and failed to update 
the docs...

Anyway to snapshots, well the pom thats in the trunk of any artifact has a 
snapshot version but anything that i share with other developers has a 
release version. Each of our artifacts that in active development will get 
released at least once a day. The main reason being that i should not go 
messing with other developers environments unless I am confident that all the 
tests pass and the code works the same or better than before. 

I want a tool than gives me the power to define exactly what I am deploying 
and allow me to easily develop that and patch it if necessary. We are working 
with over 11 projects composed of 130 or so artifacts. It all works very well 
without snapshots being deployed. We do of course make use of snapshots in 
our local repositories though.

Once of my major beefs about snapshots being deployed is that you get to a 
point where you want to make Release and have to unroll and whole tangle of 
transitive snapshots. We make at least one Release everyday and really need a 
fully consistent ready to deploy tree of artifacts.

We mark the completion of a task as the release of the artifact... so if you 
have developers willy nilly deploying snapshots as a single developer i 
cannot easily mark the end of my work without rolling up other peoples as 
well. The simplest solution is to require by process that people release 
things regularly. And use metadata - or otherwise -to manage horribly broken 
artifacts, which very rarely happen with decent tests.

Consider one of my least favourite quotes "But it worked yesterday!"

For stable artifacts the rate of commits/checkin to releases is close to 1:1. 
For developing artifacts its much higher.

In any case My vote would be for maintaining the current behaviour and 
allowing an option to change it at runtime or on the command line. You run 
the risk of breaking builds otherwise.

-- 
Michael McCallum
Enterprise Engineer
mailto:[EMAIL PROTECTED]

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



Re: Version ranges and snapshots

2008-01-07 Thread dhoffer
ot
>> repositories
>> >> > at build time.
>> >> >
>> >> > Any thoughts?
>> >> >
>> >> > Mark
>> >> >
>> >> >
>> -------------
>> >> > To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >> > For additional commands, e-mail: [EMAIL PROTECTED]
>> >
>> > --
>> > Michael McCallum
>> > Enterprise Engineer
>> > mailto:[EMAIL PROTECTED]
>> >
>> > -
>> > To unsubscribe, e-mail: [EMAIL PROTECTED]
>> > For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 
> -- 
> Michael McCallum
> Enterprise Engineer
> mailto:[EMAIL PROTECTED]
> 
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Version-ranges-and-snapshots-tp11464715s177p14680482.html
Sent from the Maven Developers mailing list archive at Nabble.com.


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



Re: Version ranges and snapshots

2008-01-07 Thread Michael McCallum
We just avoid that being an issue in three ways...

1) I slap anyone around who deploys a snapshot to a remote repository unless 
they have a _very_ good excuse. My method is to increment the major version 
if there is a breaking change and release early to avoid the need for 
snapshots. Ideally the repository would support sufficient metadata to tag 
releases as broken... but we get by for now.

2) enforcer plugin to stop releases having snapshots in them

3) all our versions are X.Y you only ever get X.Y.Z when you have patched a 
change to a library deployed into production


On Tue, 08 Jan 2008 07:13:42 dhoffer wrote:
> Which maven release/build is this in?
>
> Based on my understanding I don't think this is sufficient to resolve this
> issue.  It needs to exclude 1.0.4-SNAPSHOT as well, let me try to explain.
>
> If I specify a version range of [1.0,2.0) for a dependency, what I am
> saying is that I will accept any RELEASED version from 1.0 (inclusive) to
> 2.0 (exclusive).  I am not saying I want any SNAPSHOTS to be allowed.  The
> only time a SNAPSHOT should be allowed is when it is specified by an
> inclusive version range boundary.
>
> Michael McCallum-3 wrote:
> > you can specify a range [1.0,1.1-!) which will stop 1.1-SNAPSHOT from
> > being
> > included, this wont stop 1.0.4-SNAPSHOT but i think thats valid anyway...
> >
> > On Sun, 06 Jan 2008 14:39:37 dhoffer wrote:
> >> What is the status of this?  This issue is very serious (highest
> >> priority)
> >> for us; every time we update maven we have to apply a patch to fix this
> >> else releases fail.
> >>
> >> Can we come to some conclusion on how to fix this?
> >>
> >> -Dave
> >>
> >> mihobson wrote:
> >> > Hi,
> >> >
> >> > Whilst attempting to fix MNG-2994, I discovered MNG-3092 that was
> >> > contrary to the 2.0 design docs:
> >> >
> >> > http://jira.codehaus.org/browse/MNG-3092
> >> >
> >> > Brett, Kenney and myself had a brief discussion on IRC about this:
> >> > Kenney says that the behaviour is theoretically correct (which it is),
> >> > although I feel it goes against the practical usage described in the
> >> > docs.  The two main choices I can see are:
> >> >
> >> > 1) We stick to the design docs and disallow snapshots in ranges when
> >> > they aren't an explicit boundary, as per the MNG-3092 patch.
> >> >
> >> > 2) We reconsider the design docs and leave range resolution behaving
> >> > as it is, then use profiles to enable or disable snapshot repositories
> >> > at build time.
> >> >
> >> > Any thoughts?
> >> >
> >> > Mark
> >> >
> >> > -
> >> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> > --
> > Michael McCallum
> > Enterprise Engineer
> > mailto:[EMAIL PROTECTED]
> >
> > -
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]



-- 
Michael McCallum
Enterprise Engineer
mailto:[EMAIL PROTECTED]

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



Re: Version ranges and snapshots

2008-01-07 Thread dhoffer

Which maven release/build is this in?

Based on my understanding I don't think this is sufficient to resolve this
issue.  It needs to exclude 1.0.4-SNAPSHOT as well, let me try to explain.

If I specify a version range of [1.0,2.0) for a dependency, what I am saying
is that I will accept any RELEASED version from 1.0 (inclusive) to 2.0
(exclusive).  I am not saying I want any SNAPSHOTS to be allowed.  The only
time a SNAPSHOT should be allowed is when it is specified by an inclusive
version range boundary.



Michael McCallum-3 wrote:
> 
> you can specify a range [1.0,1.1-!) which will stop 1.1-SNAPSHOT from
> being 
> included, this wont stop 1.0.4-SNAPSHOT but i think thats valid anyway...
> 
> 
> On Sun, 06 Jan 2008 14:39:37 dhoffer wrote:
>> What is the status of this?  This issue is very serious (highest
>> priority)
>> for us; every time we update maven we have to apply a patch to fix this
>> else releases fail.
>>
>> Can we come to some conclusion on how to fix this?
>>
>> -Dave
>>
>> mihobson wrote:
>> > Hi,
>> >
>> > Whilst attempting to fix MNG-2994, I discovered MNG-3092 that was
>> > contrary to the 2.0 design docs:
>> >
>> > http://jira.codehaus.org/browse/MNG-3092
>> >
>> > Brett, Kenney and myself had a brief discussion on IRC about this:
>> > Kenney says that the behaviour is theoretically correct (which it is),
>> > although I feel it goes against the practical usage described in the
>> > docs.  The two main choices I can see are:
>> >
>> > 1) We stick to the design docs and disallow snapshots in ranges when
>> > they aren't an explicit boundary, as per the MNG-3092 patch.
>> >
>> > 2) We reconsider the design docs and leave range resolution behaving
>> > as it is, then use profiles to enable or disable snapshot repositories
>> > at build time.
>> >
>> > Any thoughts?
>> >
>> > Mark
>> >
>> > -
>> > To unsubscribe, e-mail: [EMAIL PROTECTED]
>> > For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 
> -- 
> Michael McCallum
> Enterprise Engineer
> mailto:[EMAIL PROTECTED]
> 
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Version-ranges-and-snapshots-tp11464715s177p14672336.html
Sent from the Maven Developers mailing list archive at Nabble.com.


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



Re: Version ranges and snapshots

2008-01-06 Thread Michael McCallum
you can specify a range [1.0,1.1-!) which will stop 1.1-SNAPSHOT from being 
included, this wont stop 1.0.4-SNAPSHOT but i think thats valid anyway...


On Sun, 06 Jan 2008 14:39:37 dhoffer wrote:
> What is the status of this?  This issue is very serious (highest priority)
> for us; every time we update maven we have to apply a patch to fix this
> else releases fail.
>
> Can we come to some conclusion on how to fix this?
>
> -Dave
>
> mihobson wrote:
> > Hi,
> >
> > Whilst attempting to fix MNG-2994, I discovered MNG-3092 that was
> > contrary to the 2.0 design docs:
> >
> > http://jira.codehaus.org/browse/MNG-3092
> >
> > Brett, Kenney and myself had a brief discussion on IRC about this:
> > Kenney says that the behaviour is theoretically correct (which it is),
> > although I feel it goes against the practical usage described in the
> > docs.  The two main choices I can see are:
> >
> > 1) We stick to the design docs and disallow snapshots in ranges when
> > they aren't an explicit boundary, as per the MNG-3092 patch.
> >
> > 2) We reconsider the design docs and leave range resolution behaving
> > as it is, then use profiles to enable or disable snapshot repositories
> > at build time.
> >
> > Any thoughts?
> >
> > Mark
> >
> > -
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]



-- 
Michael McCallum
Enterprise Engineer
mailto:[EMAIL PROTECTED]

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



Re: Version ranges and snapshots

2008-01-05 Thread dhoffer

What is the status of this?  This issue is very serious (highest priority)
for us; every time we update maven we have to apply a patch to fix this else
releases fail.  

Can we come to some conclusion on how to fix this?

-Dave





mihobson wrote:
> 
> Hi,
> 
> Whilst attempting to fix MNG-2994, I discovered MNG-3092 that was
> contrary to the 2.0 design docs:
> 
> http://jira.codehaus.org/browse/MNG-3092
> 
> Brett, Kenney and myself had a brief discussion on IRC about this:
> Kenney says that the behaviour is theoretically correct (which it is),
> although I feel it goes against the practical usage described in the
> docs.  The two main choices I can see are:
> 
> 1) We stick to the design docs and disallow snapshots in ranges when
> they aren't an explicit boundary, as per the MNG-3092 patch.
> 
> 2) We reconsider the design docs and leave range resolution behaving
> as it is, then use profiles to enable or disable snapshot repositories
> at build time.
> 
> Any thoughts?
> 
> Mark
> 
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Version-ranges-and-snapshots-tp11464715s177p14642183.html
Sent from the Maven Developers mailing list archive at Nabble.com.


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



Re: Version ranges and snapshots

2007-10-17 Thread dhoffer

...be sure to cast your ballot for MNG-3092:)



ossi petz-2 wrote:
> 
> hallo
> 
> i would like to add one vote to exclude snapshots from version ranges 
> that do not declare them.
> 
> we encounter two problematic situations:
> 
> when using the release plugin we need to clean the local repository from 
> snapshots to make sure no snapshots end up in the build or any assembly.
> 
> the situation is different in active development. somtimes a new version 
> of a dependecy is required. this will be the next snapshot. imagine a 
> range [1.1,2.0). the next snapshot is 1.2-SNAPSHOT. yet this must not be 
> used in releases. its only the developer that needs to use the snapshot. 
> something like [1.1,2.0)-SNAPSHOT could indicate to find the newest 
> version including snapshots.
> 
> as not every deloper should have to locally build/install the module we 
> use a CI server too (clean deploy). if the pom does not tell exaclty 
> which version is ok, we currently have the situation that released 
> versions are downloaded from the repository, but snapshots are only 
> ocnsidered if they are available in the local repository.
> 
> so to make things clear for both the release man and the developer an 
> explicit snaphot 'flag' or statement to specify the version range with 
> or without snapshots would definitly improve the situation.
> 
> currently the builds are not reproducable. they depend on the current 
> state of the local repository.
> 
> 
> regards
> 
> ossi
> 
> 
> 
> 
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Version-ranges-and-snapshots-tf4035629s177.html#a13253264
Sent from the Maven Developers mailing list archive at Nabble.com.


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



Re: Version ranges and snapshots

2007-10-17 Thread ossi petz

hallo

i would like to add one vote to exclude snapshots from version ranges 
that do not declare them.


we encounter two problematic situations:

when using the release plugin we need to clean the local repository from 
snapshots to make sure no snapshots end up in the build or any assembly.


the situation is different in active development. somtimes a new version 
of a dependecy is required. this will be the next snapshot. imagine a 
range [1.1,2.0). the next snapshot is 1.2-SNAPSHOT. yet this must not be 
used in releases. its only the developer that needs to use the snapshot. 
something like [1.1,2.0)-SNAPSHOT could indicate to find the newest 
version including snapshots.


as not every deloper should have to locally build/install the module we 
use a CI server too (clean deploy). if the pom does not tell exaclty 
which version is ok, we currently have the situation that released 
versions are downloaded from the repository, but snapshots are only 
ocnsidered if they are available in the local repository.


so to make things clear for both the release man and the developer an 
explicit snaphot 'flag' or statement to specify the version range with 
or without snapshots would definitly improve the situation.


currently the builds are not reproducable. they depend on the current 
state of the local repository.



regards

ossi




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



Re: Version ranges and snapshots

2007-10-12 Thread dhoffer
you can declare the same repo
> twice, once with snapshots enabled
> and once without, listing the dependencies.
> 
> Not sure if this is worth the trouble though..
> 
> Anyway, we could just 'assume' that when people specify version ranges
> they don't want
> snapshots and apply this change. I'm just worried about the side effects,
> since A (using snapshots
> in ranges) is possible now and B (excluding snapshots in ranges) is
> cumbersome, 
> but when we apply this, B is possible but A is even more cumbersome.
> 
> Ow, just thought of something - have 'processing instructions' or similar
> in the version ranges,
> like [1.0,2.0){snapshots=off} (or just use xml attributes ofcourse ;))
> 
> -- Kenney 
> 
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Version-ranges-and-snapshots-tf4035629s177.html#a13174214
Sent from the Maven Developers mailing list archive at Nabble.com.


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



Re: Version ranges and snapshots

2007-10-11 Thread dhoffer

You can't fix this by disallowing repos because snapshots may be in the local
repo.


Max O Bowsher wrote:
> 
> Kenney Westerhof wrote:
>> 
>> 
>> Patrick Schneider wrote:
>>> For now, I'm a fan of disallowing snapshots when they are not
>>> explicitly in
>>> the boundary, as per the patch.
>>>
>>> In my mind, the problem with a profile flag is that it's an
>>> all-or-nothing
>>> proposition.  Any released artifacts with version ranges will also
>>> start to
>>> pull in snapshots.  There wouldn't be enough control, IMO.
>>>
>> 
>> You can always exclude snapshots explicitly:
>> 
>> [1.0,1.1-SNAPSHOT),(1.1-SNAPSHOT,1.1]
>> 
>> Snapshots are valid versions in a range [1.0, 1.1], or even [1.0, 1.1).
>> 
>> Personally I'm +1 for updating the docs, and let the presence of
>> snapshot repo's
>> and valid snapshot artifacts there determine wheter snapshots are used
>> or not.
> 
> Not only is the syntax above very cumbersome, but what about the
> possibility of 1.0.1-SNAPSHOT, etc?
> 
> Controlling this through snapshot repo presence/absence would be rather
> suboptimal, because you couldn't pull in a snapshot for one particular
> artifact without possibly getting unwanted snapshots for other
> dependency artifacts published in the same repo.
> 
> Max.
> 
> 
> 
> 
>  
> 

-- 
View this message in context: 
http://www.nabble.com/Version-ranges-and-snapshots-tf4035629s177.html#a13164250
Sent from the Maven Developers mailing list archive at Nabble.com.


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



Re: Version ranges and snapshots

2007-10-11 Thread dhoffer

This approach will not work because one would then have to continually
specify what snapshots to exclude.  We use version ranges to specify the
range of valid released versions.  I.e. when building get the latest
released version (in most all cases).  What is need is to somehow disallow
all snapshots.

This is a blocking bug for us with maven.  We use a custom build that fixes
this issue (does not allow snapshots).  The feature of version ranges is not
usable without this fix. 



Kenney Westerhof-3 wrote:
> 
> 
> 
> Patrick Schneider wrote:
>> For now, I'm a fan of disallowing snapshots when they are not explicitly
>> in
>> the boundary, as per the patch.
>> 
>> In my mind, the problem with a profile flag is that it's an
>> all-or-nothing
>> proposition.  Any released artifacts with version ranges will also start
>> to
>> pull in snapshots.  There wouldn't be enough control, IMO.
>> 
> 
> You can always exclude snapshots explicitly:
> 
> [1.0,1.1-SNAPSHOT),(1.1-SNAPSHOT,1.1]
> 
> Snapshots are valid versions in a range [1.0, 1.1], or even [1.0, 1.1).
> 
> Personally I'm +1 for updating the docs, and let the presence of snapshot
> repo's
> and valid snapshot artifacts there determine wheter snapshots are used or
> not.
> 
> -- Kenney
> 
> 
>> 
>> Patrick
>> 
>> On 7/6/07, Mark Hobson <[EMAIL PROTECTED]> wrote:
>>>
>>> Hi,
>>>
>>> Whilst attempting to fix MNG-2994, I discovered MNG-3092 that was
>>> contrary to the 2.0 design docs:
>>>
>>> http://jira.codehaus.org/browse/MNG-3092
>>>
>>> Brett, Kenney and myself had a brief discussion on IRC about this:
>>> Kenney says that the behaviour is theoretically correct (which it is),
>>> although I feel it goes against the practical usage described in the
>>> docs.  The two main choices I can see are:
>>>
>>> 1) We stick to the design docs and disallow snapshots in ranges when
>>> they aren't an explicit boundary, as per the MNG-3092 patch.
>>>
>>> 2) We reconsider the design docs and leave range resolution behaving
>>> as it is, then use profiles to enable or disable snapshot repositories
>>> at build time.
>>>
>>> Any thoughts?
>>>
>>> Mark
>>>
>>> -------------
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>> 
> 
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Version-ranges-and-snapshots-tf4035629s177.html#a13164246
Sent from the Maven Developers mailing list archive at Nabble.com.


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



Re: Version ranges and snapshots

2007-07-10 Thread Kenney Westerhof



Max Bowsher wrote:

Kenney Westerhof wrote:


Patrick Schneider wrote:

For now, I'm a fan of disallowing snapshots when they are not
explicitly in
the boundary, as per the patch.

In my mind, the problem with a profile flag is that it's an
all-or-nothing
proposition.  Any released artifacts with version ranges will also
start to
pull in snapshots.  There wouldn't be enough control, IMO.


You can always exclude snapshots explicitly:

[1.0,1.1-SNAPSHOT),(1.1-SNAPSHOT,1.1]

Snapshots are valid versions in a range [1.0, 1.1], or even [1.0, 1.1).

Personally I'm +1 for updating the docs, and let the presence of
snapshot repo's
and valid snapshot artifacts there determine wheter snapshots are used
or not.


Not only is the syntax above very cumbersome, but what about the
possibility of 1.0.1-SNAPSHOT, etc?


Ah. Yes indeed. That'll be really cumbersome.


Controlling this through snapshot repo presence/absence would be rather
suboptimal, because you couldn't pull in a snapshot for one particular
artifact without possibly getting unwanted snapshots for other
dependency artifacts published in the same repo.


True, though the proposed change will only affect version ranges, not versions.

I think snapshots are a different aspect, outside of version ranges. Version
ranges are meant to specify a range of versions. Snapshots fit perfectly
in a version range.

So you want to prevent accidental use of snapshots when released versions
are available in the given range.

Having a mechanism in place to explicitly state what dependencies can be 
resolved
to snapshot versions, and what dependencies cannot is certainly useful

So what we're dealing here is a way to do that. This has nothing to do with 
version
ranges but with being able to say that you don't want snapshots for a certain
artifact. Specifying a normal version (without SNAPSHOT) is not going to be resolved to a snapshot, 
unless there's another declaration that does mention it, and with version ranges that could happen.
The current resolution mechanism uses the first match, so it's pretty random 
(the order of the searched repositories is important here).


If someone specifies a version range, he doesn't care about the version except 
that it must
be in that range because he knows those versions work. SNAPSHOTs that fall into 
that range
are compatible, so why can't they be used?
What about other dependencies that _are_ declared as a snapshot and bring in a 
SNAPSHOT version
also declared somewhere else with a SNAPSHOT-excluding range? Should the build 
fail then?

Most importantly, making this change prevents snapshots from being used in 
version ranges.
Sure, you can explicitly mention them in the range, but you'd have the same 
problem
as the other way around: specifying 1.0.1-SNAPSHOT, 1.0.2-SNAPSHOT etc..

It seems we want more fine grained control on this matter.
We could change the order of resolution to first check for non-snapshots,
then for snapshots, so a non-snapshot will be used when it's possible. That 
would solve the problem,
except for people who want to use snapshots.
Another solution would be to somehow mark wheter a dependency or version range 
should
include or exclude snapshots, or add information to repositories specifying the 
groupid/artifactids
they provide or must not provide. That way you can declare the same repo twice, 
once with snapshots enabled
and once without, listing the dependencies.

Not sure if this is worth the trouble though..

Anyway, we could just 'assume' that when people specify version ranges they 
don't want
snapshots and apply this change. I'm just worried about the side effects, since 
A (using snapshots
in ranges) is possible now and B (excluding snapshots in ranges) is cumbersome, 
but when we apply this, B is possible but A is even more cumbersome.


Ow, just thought of something - have 'processing instructions' or similar in 
the version ranges,
like [1.0,2.0){snapshots=off} (or just use xml attributes ofcourse ;))

-- Kenney 


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



Re: Version ranges and snapshots

2007-07-10 Thread Max Bowsher
Kenney Westerhof wrote:
> 
> 
> Patrick Schneider wrote:
>> For now, I'm a fan of disallowing snapshots when they are not
>> explicitly in
>> the boundary, as per the patch.
>>
>> In my mind, the problem with a profile flag is that it's an
>> all-or-nothing
>> proposition.  Any released artifacts with version ranges will also
>> start to
>> pull in snapshots.  There wouldn't be enough control, IMO.
>>
> 
> You can always exclude snapshots explicitly:
> 
> [1.0,1.1-SNAPSHOT),(1.1-SNAPSHOT,1.1]
> 
> Snapshots are valid versions in a range [1.0, 1.1], or even [1.0, 1.1).
> 
> Personally I'm +1 for updating the docs, and let the presence of
> snapshot repo's
> and valid snapshot artifacts there determine wheter snapshots are used
> or not.

Not only is the syntax above very cumbersome, but what about the
possibility of 1.0.1-SNAPSHOT, etc?

Controlling this through snapshot repo presence/absence would be rather
suboptimal, because you couldn't pull in a snapshot for one particular
artifact without possibly getting unwanted snapshots for other
dependency artifacts published in the same repo.

Max.





signature.asc
Description: OpenPGP digital signature


Re: Version ranges and snapshots

2007-07-10 Thread Kenney Westerhof



Patrick Schneider wrote:

For now, I'm a fan of disallowing snapshots when they are not explicitly in
the boundary, as per the patch.

In my mind, the problem with a profile flag is that it's an all-or-nothing
proposition.  Any released artifacts with version ranges will also start to
pull in snapshots.  There wouldn't be enough control, IMO.



You can always exclude snapshots explicitly:

[1.0,1.1-SNAPSHOT),(1.1-SNAPSHOT,1.1]

Snapshots are valid versions in a range [1.0, 1.1], or even [1.0, 1.1).

Personally I'm +1 for updating the docs, and let the presence of snapshot repo's
and valid snapshot artifacts there determine wheter snapshots are used or not.

-- Kenney




Patrick

On 7/6/07, Mark Hobson <[EMAIL PROTECTED]> wrote:


Hi,

Whilst attempting to fix MNG-2994, I discovered MNG-3092 that was
contrary to the 2.0 design docs:

http://jira.codehaus.org/browse/MNG-3092

Brett, Kenney and myself had a brief discussion on IRC about this:
Kenney says that the behaviour is theoretically correct (which it is),
although I feel it goes against the practical usage described in the
docs.  The two main choices I can see are:

1) We stick to the design docs and disallow snapshots in ranges when
they aren't an explicit boundary, as per the MNG-3092 patch.

2) We reconsider the design docs and leave range resolution behaving
as it is, then use profiles to enable or disable snapshot repositories
at build time.

Any thoughts?

Mark

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






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



Re: Version ranges and snapshots

2007-07-06 Thread Patrick Schneider

For now, I'm a fan of disallowing snapshots when they are not explicitly in
the boundary, as per the patch.

In my mind, the problem with a profile flag is that it's an all-or-nothing
proposition.  Any released artifacts with version ranges will also start to
pull in snapshots.  There wouldn't be enough control, IMO.


Patrick

On 7/6/07, Mark Hobson <[EMAIL PROTECTED]> wrote:


Hi,

Whilst attempting to fix MNG-2994, I discovered MNG-3092 that was
contrary to the 2.0 design docs:

http://jira.codehaus.org/browse/MNG-3092

Brett, Kenney and myself had a brief discussion on IRC about this:
Kenney says that the behaviour is theoretically correct (which it is),
although I feel it goes against the practical usage described in the
docs.  The two main choices I can see are:

1) We stick to the design docs and disallow snapshots in ranges when
they aren't an explicit boundary, as per the MNG-3092 patch.

2) We reconsider the design docs and leave range resolution behaving
as it is, then use profiles to enable or disable snapshot repositories
at build time.

Any thoughts?

Mark

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




Version ranges and snapshots

2007-07-06 Thread Mark Hobson

Hi,

Whilst attempting to fix MNG-2994, I discovered MNG-3092 that was
contrary to the 2.0 design docs:

http://jira.codehaus.org/browse/MNG-3092

Brett, Kenney and myself had a brief discussion on IRC about this:
Kenney says that the behaviour is theoretically correct (which it is),
although I feel it goes against the practical usage described in the
docs.  The two main choices I can see are:

1) We stick to the design docs and disallow snapshots in ranges when
they aren't an explicit boundary, as per the MNG-3092 patch.

2) We reconsider the design docs and leave range resolution behaving
as it is, then use profiles to enable or disable snapshot repositories
at build time.

Any thoughts?

Mark

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