[EMAIL PROTECTED]: Re: Maven 2 (was Re: Maven 1.1)]

2006-01-02 Thread Leo Simons
Brett's message from a while back which may be of interest to bill. There's
more in this thread...

LSD

- Forwarded message from Brett Porter [EMAIL PROTECTED] -

From: Brett Porter [EMAIL PROTECTED]
Date: Wed, 16 Nov 2005 16:45:56 +1100
Subject: Re: Maven 2 (was Re: Maven 1.1)
To: Gump code and data general@gump.apache.org
Reply-To: Gump code and data general@gump.apache.org
List-Id: Gump code and data general.gump.apache.org

Ok, here's the opportunity for me to write the mail in my head.

Aside from the non-existance of a gump machine right now, what is
needed to use Maven 2,
a) minimally
b) ideally

Because it has an even more online nature (plugins are not
preinstalled), to use an installed version we'd again need to create a
minimal local repository including those plugins, then use offline
mode (-o), and ensure it can't get any internet access just to make
sure.

However, it should be pretty easy to step it up to the next level.
Instead of a pre-installed repository, we can add a Gump artifact
resolver.

What I'd need to know is the best way to make that work. Can you
verify that to resolve a JAR file in gump (assuming gump has already
built it) I'd need to:
* know the base working directory
* know the location of the gump XML file
* parse out project name and within that jar name
* look in base/project_name/jar_name

The resolver can also parse these files for depends. This would
require knowing where everything is, so even better would be:
* a list of directories creating gump descriptors
* that all files in the descriptor are relative to that gump descriptor

Is that how it is currently?

We come back to the problem of aligning IDs. I think the best place to
solve this is in the gump descriptors. Here is how I'd parse them out
in order of preference:
* GroupId:
1) project groupId=
2) module groupId=
3) module name=
* Artifact ID:
1) jar artifactId=
2) jar id=
3) project artifactId=
4) project name=
* Type:
1) jar type= /
2) jar / means jar
3) project type= /
4) how do you specify non-jar outputs?
* Classifier:
1) jar classifier= /
2) project classifier= /
3) default is none

If I start adding them, will it break anything?

Now, the next issue comes when Gump3 parses multiple input formats. I
don't want to duplicate information in Maven - can we get gump to pick
a format and produce that as part of the build, regardless of its
input? A POM would simplify things :)

Ok, this would have a preinstalled Maven using some packaged plugins
working offline without a manual repository setup.

Next, to build Maven. We have a bootstrap that runs without any
dependencies except Java that would produce the installation above -
but it downloads the Maven dependencies on the way. We could have it
resolve packaged versions of those by reusing the gump resolver.

Alternatively, something we are doing so it can be packaged on unix is
checking out the sources rather than relying on packaging, then
building them, then building m2 (and those packages would later be
rebuilt again using the new m2). Is that a better alternative to the
above?

- Brett

On 11/16/05, Stefan Bodewig [EMAIL PROTECTED] wrote:
 On Tue, 15 Nov 2005, Leo Simons [EMAIL PROTECTED] wrote:

  Actually, someone's looking at changing the excalibur build to use
  maven 2. That pretty much means tree detoriation anyway. We're going
  to start seeing that all over apache as projects migrate to maven 2.

 Pluto's trunk has already jumped to Maven 2.  We will need a maven2
 builder, that's all.

 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]


- End forwarded message -

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



Re: Maven 2 (was Re: Maven 1.1)

2005-11-18 Thread Brett Porter
On 11/16/05, Leo Simons [EMAIL PROTECTED] wrote:
 I wrote an answer then deleted it. I got lost a little. Seperating concerns:

   -- support for maven2 in gump2
   -- I'm not going to work on it

Fine by me. I assume gump3 is not far off then?

   -- how to properly support maven2 in gump3


...


   -- a python function or two to work with that xml (while in DOM form)
   and help transform it into the python object model gump uses

I'll come back to this.

 project name=mvn
   module name=mvn/
   depend name=maven2-bootstrap inherit=all/
   mvn/
   jar name=target/mvn.jar runtime=true/
 /project

This is oversimplified as a working Maven contains more than one jar
and a few dependencies. But the bootstrap can be used to build that
install in the first step and then the above could rebuild a new maven
install after gump has built its dependencies. That was all discussed
in my email.

 Ideally we can run mvn without using its shell scripts and just digest
 a command which starts with java, since that makes it easier to get
 things like the CLASSPATH right.

There is no classpath. Maven starts with just classworlds, which
constructs class loaders for different areas of the system. So its
fine to run without the shell scripts, they don't do much except make
it usable, but the behaviour won't change.

 In this case we don't have a local
 installation but one running straight from trunk (just like ant).

As built above, sure.

 Now,
 if we need some special bits like some java code to replace the repository
 management, we would have something like

 project name=mvn-gump-java-helper
   module name=gump3/
   depend name=ant inherit=all/
   depend name=mvn-bootstrap inherit=all/
   ant/
   jar name=target/mvn-gump-java-helper.jar/
 /project

You've got Maven at this point, you can build with it :)

This will just be one class, and was something I discussed in my prior email.

 Now, as far as repository management, downloading, dependency resolution,
 any of that is concerned, what we want to do in this mvn-gump-java-helper
 is simply disable as much of those bits of maven2 as possible.

Yes, but you are going to have to go the other way around. It's a
component that resolves artifacts and metadata. It doesn't get fed, it
hunts. You can't use CLASSPATH. The helper will be the implementation
that goes and finds things.

 I hope all that made sense. Now, moving on to the first implementation
 details

LOL. Like there weren't any implementation details above :)

Unfortunately, the assumptions above won't work. Maven needs to
resolve JARs, and resolve dependencies via metadata. This means it has
to be able to find the JARs (Seems easy enough), and the metadata -
which means reading gump.xml/pom.xml/something-else.xml.

In the part above where you create a gump object model, you will need
to write that out in a form so that Maven (though the gump java
helper) can digest it and get the proper ids and the dependencies.

Is it possible for me to put ID mappings into the gump2/3 descriptor
without breaking anything, or will we need to align them?


   -- how to bootstrap maven2

 Downloading things from elsewhere is not a problem. The key bit is getting
 to a classpath when using maven to build stuff that contains only fresh
 built sources and none of the prepackaged bits (just like when you're
 bootstrapping GCC -- you download a binary GCC to build GCC, then you throw
 the binary away). If there is a procedure to get absolutely everything from
 source including all of mavens dependencies and build all of it properly (I
 really hope there is one now for maven 2) and dependably, lets use it.

Currently, it downloads the bits that it depends on outside the Maven
tree. I can change those to be checked out and built too.

 Key bit here is that what gump does for bootstrapping is the same as what
 the maven 2 people do for bootstrapping. It sounds like the one you use
 yourselves is the first option so lets roll with that.

Ok, this part is fine.

- Brett

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



Re: Maven 2 (was Re: Maven 1.1)

2005-11-18 Thread Leo Simons
I missed a bit..

On Fri, Nov 18, 2005 at 10:27:53PM +1100, Brett Porter wrote:
 On 11/16/05, Leo Simons [EMAIL PROTECTED] wrote:
  I wrote an answer then deleted it. I got lost a little. Seperating concerns:
 
-- support for maven2 in gump2
-- I'm not going to work on it
 
 Fine by me. I assume gump3 is not far off then?

Heh, I wish :-). We don't have a working webapp nor do we have it sending
out email. But there's a lot of the hard problems solved in there and for
me its just a whole less painful to work with (I still get lost around the
gump2 codebase all the time).

I hope to find more time to hack on it. Its not far off in terms of man
hours, I hope :-)

LSD


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



Re: Maven 2 (was Re: Maven 1.1)

2005-11-18 Thread Brett Porter
On 11/18/05, Leo Simons [EMAIL PROTECTED] wrote:
 Bing! Light bulb went on in my head. Pull not push. I'm trying to think
 about an easy way to do the pull stuff, but that is probably all dependent
 on the mechanisms maven employs.

I'm pretty sure I can do this.


 Both gump and maven 2 are neatly inversion of control. Both made the right
 decisions but this really makes things harder as there's a wrestle for
 control. I think I now also understand better why continuum is a real need
 in a maven 2 world -- its just natural to not try and to subvert the
 control that maven 2 implements.

Right - it builds on top of it that fit that pattern.

 Why do you keep referring to a something.xml? Is it going to be a lot
 easier to have the maven jar resolver read a something.xml rather than do
 something else (like, I dunno, a database, or an XML/RPC interface, or
 ...)? Just checking -- I think there's more assumptions in my head that
 might need to get out.

No, we can read from any number of sources, nothing has to be XML.
Like what you are saying - we just need to end up with a Maven POM in
Java (where you need to end up with your Gump object model).

All I'm saying is that both Maven and Gump shouldn't have to implement
the same mechanism to read all the formats gump digests (and as Maven
pulls dependencies, it will need to get that information). If Gump
intends to do this, all it needs to do is output a file from the gump
object model and Maven can read just one format (and if it outputs a
POM, even better :)

Of course, Maven *could* do all this, but either that's doubling up,
or putting Maven at the centre of Gump, neither of which seem
desirable :)

 Gump3 will ignore everything it doesn't understand as long as its valid
 XML. I think gump2 does the same but I'm less sure -- just try :-)

Will do.


 Hey Brett, are you going to be at ApacheCon and esp. the hackathon? I'd
 love to get some help digesting maven 2 internals! :-)

Yep. See you there!

- Brett

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



Re: Maven 2 (was Re: Maven 1.1)

2005-11-18 Thread Leo Simons
On Fri, Nov 18, 2005 at 11:10:24PM +1100, Brett Porter wrote:
  Why do you keep referring to a something.xml? Is it going to be a lot
  easier to have the maven jar resolver read a something.xml rather than do
  something else (like, I dunno, a database, or an XML/RPC interface, or
  ...)? Just checking -- I think there's more assumptions in my head that
  might need to get out.
 
 No, we can read from any number of sources, nothing has to be XML.
 Like what you are saying - we just need to end up with a Maven POM in
 Java (where you need to end up with your Gump object model).
 
 All I'm saying is that both Maven and Gump shouldn't have to implement
 the same mechanism to read all the formats gump digests (and as Maven
 pulls dependencies, it will need to get that information). If Gump
 intends to do this, all it needs to do is output a file from the gump
 object model and Maven can read just one format (and if it outputs a
 POM, even better :)
 
 Of course, Maven *could* do all this, but either that's doubling up,
 or putting Maven at the centre of Gump, neither of which seem
 desirable :)

Maven is in the center of the developers for a project (they type mvn
and not gump) so what these people want to author is a POM. Gump should
read that POM and understand it.

Question: can gump get away with writing things like settings.xml and
command line arguments and not touch any POM at all (eg maven just reads
the normal pom.xml that's already there) yet change enough of maven's
behaviour so that all the classworlds match up properly with the gump
process?

Maybe we should just try it and see how far we get.

- Leo


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



Re: Maven 2 (was Re: Maven 1.1)

2005-11-18 Thread Brett Porter
On 11/19/05, Leo Simons [EMAIL PROTECTED] wrote:
 Maven is in the center of the developers for a project (they type mvn
 and not gump) so what these people want to author is a POM. Gump should
 read that POM and understand it.

Sorry, I probably didn't explain where I was coming from. Maven does
transitive dependencies. Even when you take the versioning out of it,
it still needs to traverse the projects to get the correct list. So
this is fine as long as it hits Maven projects, but when it finds a
dependency without a POM, then it needs to be able to parse whatever
is given to figure out the dependencies of that.


 Maybe we should just try it and see how far we get.

Yep, I think I can make an attempt at it. But for now, sleep.

- Brett

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



Re: Maven 2 (was Re: Maven 1.1)

2005-11-16 Thread Leo Simons
I wrote an answer then deleted it. I got lost a little. Seperating concerns:

  -- support for maven2 in gump2
  -- I'm not going to work on it

  -- support for maven2 in gump3
  -- pretty much like we did for maven1 + bootstrap
  -- doing it quickly
  -- not me
  -- doing it properly
  -- been thinking about that too

So...

  -- how to properly support maven2 in gump3

Basically in the gump descriptors all we want to do is

  project name=pluto type=mvn href=http://svn.a.o/r/a/p/x/pom.xml/

and then gump fetches that xml file and merges it into the rest of
the XML. We end up with lots of xml. Now we need

  -- a python function or two to work with that xml (while in DOM form)
  and help transform it into the python object model gump uses

Then the gump engine at some point figures out it needs to boostrap
mvn. The goal here is to use the actual bootstrap process used for
mvn, I believe that involves an svn checkout followed by running a
shell script followed by running a minimal mvn on itself.

project name=mvn-bootstrap
  module name=mvn/
  script name=bootstrap/ !-- .sh or .bat --
  jar name=build/maven2-bootstrap.jar runtime=true/
/project

project name=mvn
  module name=mvn/
  depend name=maven2-bootstrap inherit=all/
  mvn/
  jar name=target/mvn.jar runtime=true/
/project

eg, pretty much as we do for Ant. Next bit is

  -- a python plugin which can call Maven2

Ideally we can run mvn without using its shell scripts and just digest
a command which starts with java, since that makes it easier to get
things like the CLASSPATH right. In this case we don't have a local
installation but one running straight from trunk (just like ant). Now,
if we need some special bits like some java code to replace the repository
management, we would have something like

project name=mvn-gump-java-helper
  module name=gump3/
  depend name=ant inherit=all/
  depend name=mvn-bootstrap inherit=all/
  ant/
  jar name=target/mvn-gump-java-helper.jar/
/project

project name=mvn
 !-- ... --
 depend project=mvn-gump-java-helper runtime=true/
/project

Now, as far as repository management, downloading, dependency resolution,
any of that is concerned, what we want to do in this mvn-gump-java-helper
is simply disable as much of those bits of maven2 as possible. Basically
what we want to end up with is a gump-generated CLASSPATH (in some form)
which maven just accepts as containing all the required dependencies. All
those pom.xml files are still available and we can write bits of glue (in
python) to expose info from them or for them up as much as needed. Eg Gump3
ends up doing something like

  for element in parsed.pom.xml.DOM:
for (origname, replacement) in artifactmap:
  element.replaceall(origname, replacement)
  (...)
  
CLASSPATH=$JAVA_HOME/tools.jar:$MVN_HOME/target/mvn.jar:$GUMP_HOME/target/mvn-gump-java-helper.jar:
  cd pluton/
  java -cp $CLASSPATH org.apache.maven.Maven2.Main jar

I hope all that made sense. Now, moving on to the first implementation
details

  -- how to bootstrap maven2

On Wed, Nov 16, 2005 at 04:45:56PM +1100, Brett Porter wrote:
 Next, to build Maven. We have a bootstrap that runs without any
 dependencies except Java that would produce the installation above -
 but it downloads the Maven dependencies on the way. We could have it
 resolve packaged versions of those by reusing the gump resolver.
 
 Alternatively, something we are doing so it can be packaged on unix is
 checking out the sources rather than relying on packaging, then
 building them, then building m2 (and those packages would later be
 rebuilt again using the new m2). Is that a better alternative to the
 above?

Downloading things from elsewhere is not a problem. The key bit is getting
to a classpath when using maven to build stuff that contains only fresh
built sources and none of the prepackaged bits (just like when you're
bootstrapping GCC -- you download a binary GCC to build GCC, then you throw
the binary away). If there is a procedure to get absolutely everything from
source including all of mavens dependencies and build all of it properly (I
really hope there is one now for maven 2) and dependably, lets use it.

Key bit here is that what gump does for bootstrapping is the same as what
the maven 2 people do for bootstrapping. It sounds like the one you use
yourselves is the first option so lets roll with that.

- LSD


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



Re: Maven 1.1

2005-11-16 Thread Martin van den Bemt



Brett Porter wrote:

I don't know of them all, but I believe the following projects are on
the way or considering it:

Cocoon, Pluto, JetSpeed 2, Struts, Excalibur, Geronimo, Directory, Felix


Add MyFaces (they are considering it) to the list (tobago is already maven2). Struts has an attempt 
somewhere in svn (just read that on the myfaces list).


Mvgr,
Martin


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



Re: Maven 1.1

2005-11-15 Thread Leo Simons
On Tue, Nov 15, 2005 at 06:28:28AM +0100, Stefan Bodewig wrote:
 On Mon, 14 Nov 2005, Brett Porter [EMAIL PROTECTED] wrote:
 
  We actually started validating the project.xml files. Some people
  have a lot of random content in there that was previously silenty
  ignored.
  
  Maybe its worth considering them a failed build for the purposes of
  Gump so that they update it?
 
 If it wasn't the excalibur project, maybe.
 
 You may not have noticed it, but before I destroyed vmgump the only
 project still depending on the old Avalon codebase was James - since I
 don't find a replacement for meta-tools in Excalibur.  All other
 dependencies, in particular commons-logging's dependency on framework
 and logkit have been migrated to the Excalibur maintained versions.

I'm sure the james people would love to hear about the stuff that's
keeping them depending on the old avalon codebase. Either we migrate
that to excalibur or into james or they stop using it :-)

 On the other hand - unless Leo jumps in - I'm afraid that the
 Excalibur community doesn't care about Gump that much and we'd be left
 with a build tree that is only building around 50% or even less just
 because Maven started to validate the descriptors.

Actually, someone's looking at changing the excalibur build to use maven
2. That pretty much means tree detoriation anyway. We're going to start
seeing that all over apache as projects migrate to maven 2.

cheers,

LSD


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



Re: Maven 1.1

2005-11-15 Thread Dion Gillard
On 11/16/05, Leo Simons [EMAIL PROTECTED] wrote:
[snip]
 Actually, someone's looking at changing the excalibur build to use maven
 2. That pretty much means tree detoriation anyway. We're going to start
 seeing that all over apache as projects migrate to maven 2.

 cheers,

 LSD

Just out of curiosity, what adoption of Maven 2 has there been @
Apache. In Jakarta I've seen very little.
--
http://www.multitask.com.au/people/dion/
You are going to let the fear of poverty govern your life and your
reward will be that you will eat, but you will not live. - George
Bernard Shaw

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



Re: Maven 1.1

2005-11-15 Thread Brett Porter
On 11/16/05, Leo Simons [EMAIL PROTECTED] wrote:
 Actually, someone's looking at changing the excalibur build to use maven
 2. That pretty much means tree detoriation anyway. We're going to start
 seeing that all over apache as projects migrate to maven 2.

In theory, Gump should be able to build and use Maven 2 very shortly.

- Brett

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



Re: Maven 1.1

2005-11-15 Thread Brett Porter
I don't know of them all, but I believe the following projects are on
the way or considering it:

Cocoon, Pluto, JetSpeed 2, Struts, Excalibur, Geronimo, Directory, Felix

Those are the ones feeling pain points in their build that Maven
solves. For the ones where it already just works, there is probably
little reason to change.

I want to get a good multiproject site/reporting solution together
before proposing it as a parallel build in commons, but I think that
there could be a lot of benefits there too.

- Brett

On 11/16/05, Dion Gillard [EMAIL PROTECTED] wrote:
 On 11/16/05, Leo Simons [EMAIL PROTECTED] wrote:
 [snip]
  Actually, someone's looking at changing the excalibur build to use maven
  2. That pretty much means tree detoriation anyway. We're going to start
  seeing that all over apache as projects migrate to maven 2.
 
  cheers,
 
  LSD

 Just out of curiosity, what adoption of Maven 2 has there been @
 Apache. In Jakarta I've seen very little.
 --
 http://www.multitask.com.au/people/dion/
 You are going to let the fear of poverty govern your life and your
 reward will be that you will eat, but you will not live. - George
 Bernard Shaw

 -
 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]



Maven 2 (was Re: Maven 1.1)

2005-11-15 Thread Stefan Bodewig
On Tue, 15 Nov 2005, Leo Simons [EMAIL PROTECTED] wrote:

 Actually, someone's looking at changing the excalibur build to use
 maven 2. That pretty much means tree detoriation anyway. We're going
 to start seeing that all over apache as projects migrate to maven 2.

Pluto's trunk has already jumped to Maven 2.  We will need a maven2
builder, that's all.

Stefan

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



Re: Maven 2 (was Re: Maven 1.1)

2005-11-15 Thread Brett Porter
Ok, here's the opportunity for me to write the mail in my head.

Aside from the non-existance of a gump machine right now, what is
needed to use Maven 2,
a) minimally
b) ideally

Because it has an even more online nature (plugins are not
preinstalled), to use an installed version we'd again need to create a
minimal local repository including those plugins, then use offline
mode (-o), and ensure it can't get any internet access just to make
sure.

However, it should be pretty easy to step it up to the next level.
Instead of a pre-installed repository, we can add a Gump artifact
resolver.

What I'd need to know is the best way to make that work. Can you
verify that to resolve a JAR file in gump (assuming gump has already
built it) I'd need to:
* know the base working directory
* know the location of the gump XML file
* parse out project name and within that jar name
* look in base/project_name/jar_name

The resolver can also parse these files for depends. This would
require knowing where everything is, so even better would be:
* a list of directories creating gump descriptors
* that all files in the descriptor are relative to that gump descriptor

Is that how it is currently?

We come back to the problem of aligning IDs. I think the best place to
solve this is in the gump descriptors. Here is how I'd parse them out
in order of preference:
* GroupId:
1) project groupId=
2) module groupId=
3) module name=
* Artifact ID:
1) jar artifactId=
2) jar id=
3) project artifactId=
4) project name=
* Type:
1) jar type= /
2) jar / means jar
3) project type= /
4) how do you specify non-jar outputs?
* Classifier:
1) jar classifier= /
2) project classifier= /
3) default is none

If I start adding them, will it break anything?

Now, the next issue comes when Gump3 parses multiple input formats. I
don't want to duplicate information in Maven - can we get gump to pick
a format and produce that as part of the build, regardless of its
input? A POM would simplify things :)

Ok, this would have a preinstalled Maven using some packaged plugins
working offline without a manual repository setup.

Next, to build Maven. We have a bootstrap that runs without any
dependencies except Java that would produce the installation above -
but it downloads the Maven dependencies on the way. We could have it
resolve packaged versions of those by reusing the gump resolver.

Alternatively, something we are doing so it can be packaged on unix is
checking out the sources rather than relying on packaging, then
building them, then building m2 (and those packages would later be
rebuilt again using the new m2). Is that a better alternative to the
above?

- Brett

On 11/16/05, Stefan Bodewig [EMAIL PROTECTED] wrote:
 On Tue, 15 Nov 2005, Leo Simons [EMAIL PROTECTED] wrote:

  Actually, someone's looking at changing the excalibur build to use
  maven 2. That pretty much means tree detoriation anyway. We're going
  to start seeing that all over apache as projects migrate to maven 2.

 Pluto's trunk has already jumped to Maven 2.  We will need a maven2
 builder, that's all.

 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: Maven 1.1 (was Re: svn commit: r330729 - /gump/metadata/project/struts.xml)

2005-11-14 Thread Leo Simons
On Mon, Nov 14, 2005 at 05:55:48AM +0100, Stefan Bodewig wrote:
 On Sun, 13 Nov 2005, Bill Barker [EMAIL PROTECTED] wrote:
  Stefan Bodewig [EMAIL PROTECTED] wrote in message 
  news:[EMAIL PROTECTED]
 
  The version of dom4j that Maven 1.0.2 uses is quite old - some
  prerelase of 1.4.  Maybe we could upgrade to Maven 1.1?
  
  I just tried with Maven 1.1b2, and Maven chokes on the Excalibur
  project.xml long before getting to Struts.  It looks like there
  isn't enough backwards compatibility in Maven to make it possible to
  upgrade the version that Gump is using.
 
 That's unfortunate.  Thanks for checking.

Heh. I'm sure maven would appreciate a bug report, so they can fix it :-)

-LSD


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



Re: Maven 1.1 (was Re: svn commit: r330729 - /gump/metadata/project/struts.xml)

2005-11-14 Thread Brett Porter
We probably need a compatibility option, but it's listed on the known
incompatibility pages.

We actually started validating the project.xml files. Some people have
a lot of random content in there that was previously silenty ignored.

Maybe its worth considering them a failed build for the purposes of
Gump so that they update it?

- Brett

On 11/14/05, Leo Simons [EMAIL PROTECTED] wrote:
 On Mon, Nov 14, 2005 at 05:55:48AM +0100, Stefan Bodewig wrote:
  On Sun, 13 Nov 2005, Bill Barker [EMAIL PROTECTED] wrote:
   Stefan Bodewig [EMAIL PROTECTED] wrote in message
   news:[EMAIL PROTECTED]
 
   The version of dom4j that Maven 1.0.2 uses is quite old - some
   prerelase of 1.4.  Maybe we could upgrade to Maven 1.1?
  
   I just tried with Maven 1.1b2, and Maven chokes on the Excalibur
   project.xml long before getting to Struts.  It looks like there
   isn't enough backwards compatibility in Maven to make it possible to
   upgrade the version that Gump is using.
 
  That's unfortunate.  Thanks for checking.

 Heh. I'm sure maven would appreciate a bug report, so they can fix it :-)

 -LSD


 -
 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: Maven 1.1 (was Re: svn commit: r330729 - /gump/metadata/project/struts.xml)

2005-11-14 Thread Leo Simons
On Mon, Nov 14, 2005 at 09:53:01PM +1100, Brett Porter wrote:
 We probably need a compatibility option, but it's listed on the known
 incompatibility pages.

Aw, that sucks as a concept! I thought maven1 was going to stay compatible
and there'd be painfulness only once (maven1 - maven2)?

 We actually started validating the project.xml files. Some people have
 a lot of random content in there that was previously silenty ignored.

Grr. Very useful, that was. I know I did stuff like

  jsd
custom-metadata-here/
  /jsd

:-)

 Maybe its worth considering them a failed build for the purposes of
 Gump so that they update it?

IMHO maven is broken and its behaviour should change. Validate XML if
there is a reference to a DTD or a schema or a pomVersion bigger than X,
otherwise preserve the old behavior. Or something.

If maven is not going to change, then yes, that would make sense, but
I think some people are not going to be very happy.

cheers!

LSD


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



Re: Maven 1.1 (was Re: svn commit: r330729 - /gump/metadata/project/struts.xml)

2005-11-14 Thread Brett Porter
On 11/14/05, Leo Simons [EMAIL PROTECTED] wrote:
 On Mon, Nov 14, 2005 at 09:53:01PM +1100, Brett Porter wrote:
  We probably need a compatibility option, but it's listed on the known
  incompatibility pages.

 Aw, that sucks as a concept! I thought maven1 was going to stay compatible
 and there'd be painfulness only once (maven1 - maven2)?

Why is having to set a compat option painful?

It's about getting better metadata - a lot of people make typos and
don't realise it, and its hard to track down.

There's nothing in there we set out to break existing builds with, but
we did drop support for things that we said a long time ago were
unsupported.

 IMHO maven is broken and its behaviour should change. Validate XML if
 there is a reference to a DTD or a schema or a pomVersion bigger than X,
 otherwise preserve the old behavior. Or something.

There is a schema. It's optional to declare it.

 If maven is not going to change, then yes, that would make sense, but
 I think some people are not going to be very happy.

Most people have been happy to change their pom, not realising the
elements weren't being used before. If this is something you think is
an issue, then by all means complain to the relevant list.

On the gump side, I can't see why you wouldn't use the latest no
matter how broken you think it is. Isn't that the point?

- Brett

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



Re: Maven 1.1

2005-11-14 Thread Stefan Bodewig
On Mon, 14 Nov 2005, Brett Porter [EMAIL PROTECTED] wrote:

 We actually started validating the project.xml files. Some people
 have a lot of random content in there that was previously silenty
 ignored.
 
 Maybe its worth considering them a failed build for the purposes of
 Gump so that they update it?

If it wasn't the excalibur project, maybe.

You may not have noticed it, but before I destroyed vmgump the only
project still depending on the old Avalon codebase was James - since I
don't find a replacement for meta-tools in Excalibur.  All other
dependencies, in particular commons-logging's dependency on framework
and logkit have been migrated to the Excalibur maintained versions.

On the other hand - unless Leo jumps in - I'm afraid that the
Excalibur community doesn't care about Gump that much and we'd be left
with a build tree that is only building around 50% or even less just
because Maven started to validate the descriptors.

Breaking backwards compatibility, even with the best reasons, is very
difficult to do and to get accepted.

Stefan

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



Maven 1.1 (was Re: svn commit: r330729 - /gump/metadata/project/struts.xml)

2005-11-13 Thread Stefan Bodewig
On Sun, 13 Nov 2005, Bill Barker [EMAIL PROTECTED] wrote:
 Stefan Bodewig [EMAIL PROTECTED] wrote in message 
 news:[EMAIL PROTECTED]

 The version of dom4j that Maven 1.0.2 uses is quite old - some
 prerelase of 1.4.  Maybe we could upgrade to Maven 1.1?
 
 I just tried with Maven 1.1b2, and Maven chokes on the Excalibur
 project.xml long before getting to Struts.  It looks like there
 isn't enough backwards compatibility in Maven to make it possible to
 upgrade the version that Gump is using.

That's unfortunate.  Thanks for checking.

Stefan

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