incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Craig McClanahan" <>
Subject Re: Maven 2 repo for incubating project releases?
Date Sun, 30 Jul 2006 04:41:06 GMT
On 7/29/06, Andrus Adamchik <> wrote:
> On Jul 29, 2006, at 7:12 PM, Justin Erenkrantz wrote:
> > AIUI, the concern raised by Noel was that Maven never indicates the
> > artifact version number.  Therefore, even if it had 'incubating' in
> > there somewhere, it wouldn't matter as no one would know it was under
> > incubation.
> I guess I am with Jukka on that. From my limited Maven experience
> (correct me if I am wrong), Maven 2 is very explicit about versions.
> You have to specify it at least in the parent POM of the project:
> <dependency>
>         <groupId>abc</groupId>
>         <artifactId>xyz</artifactId>
>         <version>1.0-incubating-SNAPSHOT</version>
> </dependency>
> The only case I can think of where you don't set an explicit version
> is when you get a dependency indirectly (as a dependency of another
> dependency). Still the files ("artifacts") you end up downloading as
> a result will have "incubating" in the file name, and the folder name
> of the local repository.
> In this later case if a user doesn't pay attention (s)he will not be
> aware that something was downloaded from Apache at all (incubating or
> otherwise); if (s)he does - "incubating" label is clearly visible.

There are (at least) two scenarios where I believe there is legitimate cause
for concern with the way Maven does things:

* You can declare a dependency on a particular groupId/artifactId
  combination *without* specifying a version number.  The meaning
  is something along the lines of "take the latest version you know about."
  Thus, you could unknowingly be declaring a dependency on an
  incubating project if "incubating" is only present in the version number.
  This can be alleviated by requiring that "incubating" be part of the group
  or artifact identifier, which I think would be a really good idea.

* The harder problem is that Maven2 does transitive dependency
  identification.  If you declare an explicit dependency on module A,
  which itself has a dependency on incubating module B, you're not
  going to know that you are depending on incubating code unless
  you are very careful about analyzing the entire set of POMs for all
  your dependencies (or you generate the website and analyze the
  dependency report that is produced there).

In short, direct dependencies can be addressed by an Incubator policy that
requires "incubating" in the group or artifact identifiers of Maven POMs.
The harder problem is indirect dependencies.

Craig McClanahan

> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message