Re: Gump integration with Maven

2004-05-19 Thread Mark R. Diggory
Adam R. B. Jack wrote:
Agreed.
   

I think the real challenge is at the project level, projects need to
establish naming consistent with their Umbrella group, this is a real
growing pain at this point, I suspect eventually the entire Jakarta
Commons will need to migrate to
jakarta-commons/jakarta-commons-foo-x.x.ext from
commons-foo/foo-x.x.ext
sometime in the near future. But it would probably be good to
have the
system consistent before that point and keep such transitions
separate.
 

Could either of you elaborate, please? Are we having uniqueness problems? If
not, what is the issue?
regards
Adam
 

Its not really a concern at this time, just a groupId naming 
inconsistency in the Jakarta Commons that will eventually need 
resolution. Each Jakarta Commons project is defining its own groupId 
(commons-collections, commons-math, commons-lang) instead of using a 
global one (jakarta-commons) , this makes each subproject a totally 
separate project as opposed to just an Artifact of Jakarta-Commons. So 
currently in the Maven Repository we get

/repo/commons-math/jars/commons-math.x.x.jar
/repo/commons-collections/jars/commons-collections.x.x.jar
/repo/commons-lang/jars/commons-lang.x.x.jar
I think the Commons, we would rather eventually see:
/repo/jakarta-commons/jars/jakarta-commons-math.x.x.jar
/repo/jakarta-commons/jars/jakarta-commons-collections.x.x.jar
/repo/jakarta-commons/jars/jakarta-commons-lang.x.x.jar
But this is a Commons issue, not a Gump one. However, if you saw a major 
beneit in this we could use it as ammunition to push forward a change.

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

Re: Gump integration with Maven

2004-05-18 Thread Adam R. B. Jack

> Agreed.
>
> > I think the real challenge is at the project level, projects need to
> > establish naming consistent with their Umbrella group, this is a real
> > growing pain at this point, I suspect eventually the entire Jakarta
> > Commons will need to migrate to
> > jakarta-commons/jakarta-commons-foo-x.x.ext from
> > commons-foo/foo-x.x.ext
> > sometime in the near future. But it would probably be good to
> > have the
> > system consistent before that point and keep such transitions
> > separate.
>
Could either of you elaborate, please? Are we having uniqueness problems? If
not, what is the issue?

regards

Adam


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



RE: Gump integration with Maven

2004-05-18 Thread Brett Porter
Agreed.

> I think the real challenge is at the project level, projects need to 
> establish naming consistent with their Umbrella group, this is a real 
> growing pain at this point, I suspect eventually the entire Jakarta 
> Commons will need to migrate to 
> jakarta-commons/jakarta-commons-foo-x.x.ext from 
> commons-foo/foo-x.x.ext 
> sometime in the near future. But it would probably be good to 
> have the 
> system consistent before that point and keep such transitions 
> separate.


Re: Gump integration with Maven

2004-05-18 Thread Mark R. Diggory

Brett Porter wrote:
Yup, I think we need ASF-wide artefact ids (within group 
ids). I'd like to think the community and/or communities can 
come to agreement on what the values are, and if that means 
defaulting to what Maven/Ibiblio already have, then so be it. 
Consistency is the key more than anything else.
Sounds like a sensible approach.
I think the real challenge is at the project level, projects need to 
establish naming consistent with their Umbrella group, this is a real 
growing pain at this point, I suspect eventually the entire Jakarta 
Commons will need to migrate to 
jakarta-commons/jakarta-commons-foo-x.x.ext from commons-foo/foo-x.x.ext 
sometime in the near future. But it would probably be good to have the 
system consistent before that point and keep such transitions separate.

--
Mark Diggory
Software Developer
Harvard MIT Data Center
http://www.hmdc.harvard.edu
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


RE: Gump integration with Maven

2004-05-17 Thread Brett Porter
> > What I was thinking was that you would generate the 
> build.properties 
> > from the list of gumped projects, rather than dependencies.
> 
> Not quite following the distinction, but maybe I am too close 
> to the currently implementation. Gump has a list of projects 
> it is working on and/or knows about, and a project has 
> dependencies within that list.

I assumed projects was a subset of dependencies as some dependencies are not
gumped projects. You should need JAR overrides for all gumped projects, but
not dependencies that are not gumped for some reason. I'd consider packages
to be "gumped", but I think you are right - you should probably use a Maven
repository for Maven projects when they use a non-gumped non-packaged JAR
instead of creating a new package. (Is this making sense? I'm confusing
myself a little with all the jargon :)

> What I'm saying it is I can build a build.properties based on 
> the list of Gumped projects & intersected with the 
> dependencies. For me to understand what is 'not right' about 
> this, are you sayign this is fine, but any Maven plug-ins 
> that the build uses has dependencies that are not listed?

No, I think this is exactly what I meant. Gumped projects + packages produce
a big list of available JAR files, which go into ~/build.properties which
can be used globally assuming that the dependency tree gets traversed
correctly and the JARs actually exist by the time they are used. 

This produces the same end result as a build.properties file for every
project, but keeps it in a master copy, and will also affect Maven itself to
the extent of the plugins.

Anyway, it seems this is academic at this point, as we need to stick to the
per project one to avoid breaking Maven for now.

> If so, in Gump  dependencies into dependencies of the current project. Would 
> that work here? [Point me back at the archive if I've finally 
> caught on to what you explain a few mails back.]

I'm not sure I get this, sorry.

Anyway, I think the current approach is the right one for now and we can
look at alternatives down the track when we actually want to gump Maven.

Cheers,
Brett


Re: Gump integration with Maven

2004-05-17 Thread Adam R. B. Jack
> What I was thinking was that you would generate the build.properties from
> the list of gumped projects, rather than dependencies.

Not quite following the distinction, but maybe I am too close to the
currently implementation. Gump has a list of projects it is working on
and/or knows about, and a project has dependencies within that list.

Gump does know (in advance of any building) exactly what jars each project
ought produce, and where, but without having done any building knowledge of
'failed, but optional' is missing. As such, any behaviour on this (if we
chose any) would be lost.

What I'm saying it is I can build a build.properties based on the list of
Gumped projects & intersected with the dependencies. For me to understand
what is 'not right' about this, are you sayign this is fine, but any Maven
plug-ins that the build uses has dependencies that are not listed?

If so, in Gump  If a project is not
> gumped, the dependency will have to come from a repository anyway, right?

Not quite, see below.

> How do you intend to handle this case as projects come on board that use
> non-ASF libraries?

Just to be clear, we already Gump plenty of non-ASF projects, see:

http://lsd.student.utwente.nl/gump/repositories.html

and for those we don't we can package:

http://lsd.student.utwente.nl/gump/packages.html

That said, is this debatably a locally managed repository? I'd say yes, and
would like to see it replaced (where legally possible) with one, simply for
consistency & leveraging what others do there.

regards,

Adam


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



RE: Gump integration with Maven

2004-05-16 Thread Brett Porter
> Yup, I think we need ASF-wide artefact ids (within group 
> ids). I'd like to think the community and/or communities can 
> come to agreement on what the values are, and if that means 
> defaulting to what Maven/Ibiblio already have, then so be it. 
> Consistency is the key more than anything else.

Sounds like a sensible approach.

> Hopefully we can have Maven bootstrap and plug-in testing in 
> Gump, to help identify such risk early on.

We knew about the problem early on, but weren't prepared to make the core
changes required to do this at the stage Maven was at. Sometimes to keep a
project moving forward, you don't want the "bleeding edge".

> I have concerns that I can't (easily) code what you asked for 
> (Gump plods through projects, and builds build.properties for 
> dependencies, it doesn't look ahead to be able to build a 
> workspace-wide list.) I'll keep an open mind on what you said 
> though, and see if I can figure out how.

What I was thinking was that you would generate the build.properties from
the list of gumped projects, rather than dependencies. If a project is not
gumped, the dependency will have to come from a repository anyway, right?
How do you intend to handle this case as projects come on board that use
non-ASF libraries?

> Please keep with us, and work with us to bootstrap Maven & 
> we'll work through these issues. [Again, changing the maven 
> 'gump' goal to produce  prove out what we are doing. Artefact's first...]

No problem. Just say when.

Cheers,
Brett


RE: Gump integration with Maven

2004-05-16 Thread Brett Porter
The commons-logging ant build has been customised from one generated by
Maven. The Maven build does not produce the api JAR, although it could
easily be modified to do so in one of two ways:
- a custom postGoal on jar:jar in maven.xml to produce the second JAR with
the same ant code as is in build.xml
- a new goal that gump calls differently (eg
commons-logging:generate-api-jar prereqs="jar:jar")
- a sub project with artifact id commons-logging-api that takes the original
source directory with the relevant exclusions

I don't see a problem with either as long as gump can handle it. The third
is probably the preferred Maven solution and would fit with what we've been
discussing and is a much shorter solution (a cut down project.xml that
extends the original and overrides the source directory).

Either way, the groupId remains commons-logging, with the artifactIds being
commons-logging and commons-logging-api.

Cheers,
Brett

> -Original Message-
> From: Stefan Bodewig [mailto:[EMAIL PROTECTED] 
> Sent: Saturday, 15 May 2004 1:00 AM
> To: [EMAIL PROTECTED]
> Subject: Re: Gump integration with Maven
> 
> 
> On Fri, 14 May 2004, Brett Porter <[EMAIL PROTECTED]> wrote:
> 
> > Sorry... I didn't realise that gump had a notion of a project that 
> > produces multiple artifacts.
> 
> Hmm, commons-logging is built by Maven.  Its Ant build file 
> produces two jars, commons-logging.jar and 
> commons-logging-api.jar - how does Maven deal with this?  Are 
> these two separate projects?  Or a group of two artifacts?  
> This is the case we need to get mapped when running Gump.
> 
> Stefan
> 
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 


Re: Gump integration with Maven

2004-05-14 Thread Mark R. Diggory
I would suspect that the commons logging ant build.xml file has either 
been customized beyond the capabilities of maven, or was never actually 
generated from maven.

If I think about this with my Maven hat on, a discrepancy arises.

groupId: commons-logging

artifactId: commons-logging
artifactId: commons-logging-api
As such these would/should be two separate projects within the 
commons-logging group. Each having a separate project.xml with the same 
groupId and different artifactId's. The source would be in separate 
directories and "commons-logging" would be dependent on 
"commons-logging-api"

-Mark

Stefan Bodewig wrote:

On Fri, 14 May 2004, Brett Porter <[EMAIL PROTECTED]> wrote:

 

Sorry... I didn't realise that gump had a notion of a project that
produces multiple artifacts.
   

Hmm, commons-logging is built by Maven.  Its Ant build file produces
two jars, commons-logging.jar and commons-logging-api.jar - how does
Maven deal with this?  Are these two separate projects?  Or a group of
two artifacts?  This is the case we need to get mapped when running
Gump.
Stefan

-
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: Gump integration with Maven

2004-05-14 Thread Stefan Bodewig
On Fri, 14 May 2004, Brett Porter <[EMAIL PROTECTED]> wrote:

> Sorry... I didn't realise that gump had a notion of a project that
> produces multiple artifacts.

Hmm, commons-logging is built by Maven.  Its Ant build file produces
two jars, commons-logging.jar and commons-logging-api.jar - how does
Maven deal with this?  Are these two separate projects?  Or a group of
two artifacts?  This is the case we need to get mapped when running
Gump.

Stefan

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



Re: Gump integration with Maven

2004-05-13 Thread Adam R. B. Jack


> > What about projects that produce multiple jars?
>
> Sorry... I didn't realise that gump had a notion of a project that
produces
> multiple artifacts. In maven, project to artifact Id is 1:1, however a
> project can produce multiple different 'types' of the same artifact (eg,
> documentation, jar, or maybe different types of dist: src, bin, etc)
>
> So if gump has a project id and a jar id under that which is usually the
> same, this sounds something like groupId:artifactId. But to keep it
simple -
> one gump id per jar produced sounds ok.

I am going to keep working on Maven builds via Gump (working up to Geronimo)
to see if we can get practical insight into what we need to do.

> Ok, I see your point. Maven projects will have been built against these
> assuming the structure in ibiblio, so it seems that gump will have to
match
> up the artifactId in there regardless.

Yup, I think we need ASF-wide artefact ids (within group ids). I'd like to
think the community and/or communities can come to agreement on what the
values are, and if that means defaulting to what Maven/Ibiblio already have,
then so be it. Consistency is the key more than anything else.

> > Aren't you going to release Maven and the
> > plugins rather soon?  Wouldn't you want your plugins to work
> > with latest Jelly?
>
> We'd love for it all to work with the latest Jelly and Ant, but the
current
> structure has prohibited upgrading without a high risk. Post-1.0 this will
> be revisited.

Hopefully we can have Maven bootstrap and plug-in testing in Gump, to help
identify such risk early on.

> > Seriously, since we are trying to get things working in the
> > first place, we may be better of with using a more
> > conservative approach and switch to the mode you propose here
> > later - once we have a working setup.

I have concerns that I can't (easily) code what you asked for (Gump plods
through projects, and builds build.properties for dependencies, it doesn't
look ahead to be able to build a workspace-wide list.) I'll keep an open
mind on what you said though, and see if I can figure out how.

Please keep with us, and work with us to bootstrap Maven & we'll work
through these issues. [Again, changing the maven 'gump' goal to produce


RE: Gump integration with Maven

2004-05-13 Thread Brett Porter
> > So, to sum up this point: I think gump should have just one 
> id for a 
> > project,
> 
> What about projects that produce multiple jars?

Sorry... I didn't realise that gump had a notion of a project that produces
multiple artifacts. In maven, project to artifact Id is 1:1, however a
project can produce multiple different 'types' of the same artifact (eg,
documentation, jar, or maybe different types of dist: src, bin, etc)

So if gump has a project id and a jar id under that which is usually the
same, this sounds something like groupId:artifactId. But to keep it simple -
one gump id per jar produced sounds ok.

> 
> > If this needes to be done alongside ant projects, I'll 
> leave it up to 
> > the gump folk to decide how this is best treated.
> 
> I'm not sure whether I parse this correctly.  There will 
> always be projects that want to be built by Maven but depend 
> on things that have not been built by Maven.  So we'll have 
> to make up some ids - or use those that have been made up by others.

Ok, I see your point. Maven projects will have been built against these
assuming the structure in ibiblio, so it seems that gump will have to match
up the artifactId in there regardless.

> > The downside to this, is I imagine a bunch of Maven plugins 
> will freak 
> > out at more recent versions of Jelly or other things, and 
> this could 
> > hold up this part for a while to fix it.
> 
> Aren't you going to release Maven and the 
> plugins rather soon?  Wouldn't you want your plugins to work 
> with latest Jelly?

We'd love for it all to work with the latest Jelly and Ant, but the current
structure has prohibited upgrading without a high risk. Post-1.0 this will
be revisited.

> Seriously, since we are trying to get things working in the 
> first place, we may be better of with using a more 
> conservative approach and switch to the mode you propose here 
> later - once we have a working setup.

ok

Thanks!

Cheers,
Brett 


Re: Gump integration with Maven

2004-05-13 Thread Stefan Bodewig
On Wed, 12 May 2004, Brett Porter <[EMAIL PROTECTED]> wrote:

> I was finding myself a bit confused by the gump talk in context of
> Maven, especially with all the different spellings of artifact :)

In German it's Artefakt - hard to unlearn 8-)

> So, to sum up this point: I think gump should have just one id for a
> project,

What about projects that produce multiple jars?

> If this needes to be done alongside ant projects, I'll leave it up
> to the gump folk to decide how this is best treated.

I'm not sure whether I parse this correctly.  There will always be
projects that want to be built by Maven but depend on things that have
not been built by Maven.  So we'll have to make up some ids - or use
those that have been made up by others.

> Next, to building projects with maven inside gump, which is
> happening now. I think a build.properties file is being generated
> per project, and wanted to suggest the generation of an all
> encompassing jar override build.properties file in the user home
> directory.

Sounds interesting.

> The downside to this, is I imagine a bunch of Maven plugins will
> freak out at more recent versions of Jelly or other things, and this
> could hold up this part for a while to fix it.

Aren't you going to release Maven and the plugins
rather soon?  Wouldn't you want your plugins to work with latest
Jelly?

Seriously, since we are trying to get things working in the first
place, we may be better of with using a more conservative approach and
switch to the mode you propose here later - once we have a working
setup.

> The current ant based bootstrap uses an ant task to do the first
> build of a maven core, using a set of known dependencies. It then
> uses this installation to build all the plugins, and finally it
> rebuilds maven completely using maven.  At this last step, the jar
> overrides would kick in and maven would be completely built using a
> latest JAR maven.

Sounds OK to me.

Stefan

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



Re: Gump integration with Maven

2004-05-11 Thread Adam R. B. Jack
Thanks Brett. I'm in the office (work work) tomorrow, but will dig into this
when I next can. Questions will likely follow.

regards

Adam
- Original Message - 
From: "Brett Porter" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, May 11, 2004 9:51 PM
Subject: Gump integration with Maven


> Hi,
>
> I was finding myself a bit confused by the gump talk in context of Maven,
> especially with all the different spellings of artifact :) I thought I
> should recount how I think they can work together in a way that meets
gumps
> goals - let me know if I've got it wrong. I apologise for length.
>
> Firstly, Maven's repository structure is setup to uniquely identify a
> particular dependency by a combination of group ID, artifact ID, type (JAR
> in all cases for gump I think, maybe extending to encompass plugin) and
> version.
>
> Formerly, groupID = artifactId and was called "id", and there is still a
lot
> of evidence of that legacy in Maven projects. For now, I think that gump
> should concern itself with artifactId and not groupId. If there comes an
> occasion that two maven projects with two group Ids produce the same
> artifact Id, then we might need to look at alternatives to resolve the
> conflict.
>
> So, to sum up this point: I think gump should have just one id for a
> project, that being the artifact Id for now, and using the full Maven ID
> (groupId:artifactId:type) later when support and project usage is better.
>
> If this needes to be done alongside ant projects, I'll leave it up to the
> gump folk to decide how this is best treated. I imagine there shouldn't be
> clashes as projects will be either maven or ant, not both (while it might
be
> possible, I imagine they only get gumped with one).
>
> Next, to building projects with maven inside gump, which is happening now.
I
> think a build.properties file is being generated per project, and wanted
to
> suggest the generation of an all encompassing jar override
build.properties
> file in the user home directory. This will allow specifying the location
of
> all JARs coming from gump, and will automatically apply to all maven built
> projects, including the maven plugins themselves. This should be much
easier
> to maintain.
>
> The downside to this, is I imagine a bunch of Maven plugins will freak out
> at more recent versions of Jelly or other things, and this could hold up
> this part for a while to fix it. I think a fallback needs to be in place,
> and I'm not sure the best way to do this (copy the build.properties to all
> the projects being built, and remove it from the user home directory so
that
> Maven itself is the only thing unaffected?)
> This is worth trying, as we might get further than expected, and certainly
> it appears gumps goal is to go down this path.
>
> The final item is gumping Maven itself. I've taken a look at building a
new
> ant based bootstrap for this, and think it isn't necessary. Let me know if
> you agree. Based on the following.
>
> The current ant based bootstrap uses an ant task to do the first build of
a
> maven core, using a set of known dependencies. It then uses this
> installation to build all the plugins, and finally it rebuilds maven
> completely using maven. At this last step, the jar overrides would kick in
> and maven would be completely built using a latest JAR maven. So while the
> whole process is not under gumps ideals, the end result is.
>
> Is this enough? I'd prefer not to have to modify this bootstrap for now.
>
> An alternative of course is to use a "known good" maven to build maven
which
> we have goals for too.
>
> There is one stumbling block here: even if all the right JARs are put into
> $MAVEN_HOME/lib, forehead.conf hardcodes some filenames. Wildcards can be
> used, so this can easily be worked around if it becomes a problem.
>
> Let me know where to go next!
>
> Also, I seem to have lost the format for the  descriptor, so if someone could send that through I'll implement that for
> the gump plugin soon.
>
> Cheers,
> Brett
>
> --
> Brett Porter ~ [EMAIL PROTECTED]
> blog: http://blogs.codehaus.org/people/brett
> Maven: http://maven.apache.org/
>


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