Hi Bernd & all,

On Jan 10, 2006, at 6:38 PM, Bernd Bohmann wrote:

Hello Sean,

Sean Schofield schrieb:
I wanted to update everyone on the work done over the weekend on the
new Maven build.
First of all, a big "Thank You" to Bernd and Bruno who put in a lot of
time on this.  Bernd did a lot of the POM work and Bruno put in a lot
of time converting over most of our website.
The jars are building fine with a simple mvn install command run from
myfaces/build. You will also need Maven 2.0.1 (2.0 gives you a rather
cryptic NPE.)
I don't like the build dir. We should use a snapshot repository. If we are using a snapshot repository we don't need a pom in build anymore.


It would be great to get rid of the build dir.

If I understand you correctly if the top level pom has been installed in the snapshot repository then an 'mvn package' from any of the modules would download the parent pom and just work. I like maven more and more with each passing revelation ;-)

Also, several of you have asked about the tests being skipped.  Bernd
added that intentionally because not all of the unit tests were
working properly.  A very high priority TODO will be to get these
working.  I added this to our Committers Wiki[1].  I believe there
were several problems related to the encryption unit tests.  Perhaps
we could enable 99% of the tests and just skip these?
A new version of the surefire plugin is available with forking support.
Forking is needed for the StateUtilsTestCases in common.
But the implementation of StateUtils contains some code for testing. Code for testing in non test classes is very ugly.
We should change the test to a mocked version.
An other problem is the MessageUtilsTest depends on the Message resources in impl, but impl has a dependency to common.
Can we move(copy) the resources from impl to common?


Now for the questions/issues as I see them ...
We have two high level POM's.  One is in build.  That is the POM that
calls all of the modules.  The other is in api.  This one is the
parent to the rest of the POM's. Bernd thought this was the best place
to put it b/c the api project has no other dependencies on other
modules in the project.  I think we should probably reconsider that
decision now though.  Its not very intuitive.

We don't have two high level POM's please use a snapshot repository!!! You don't need to build all the stuff. The pom in build is only for reactor and can be removed when we are using the snapshot repository.


Can we still get reactor type functionality without the pom that is currently in build? I'm really concerned about getting Continuum setup for the automated build so if we can get a good (IOW simple) automated build setup then I'm all for droping build altogether.

I don't like the structure of api, impl and commons. But this can only solved by sun.

Or the EG (i.e. Adam et al). Why don't you ping them to join and fight the good fight :-)

I have a few thoughts about the parent POM.  Couldn't we move most of
the stuff that is inheritable to build/pom.xml?  My thinking is that
you can do without the mailing lists, etc. in your sites if you are
just building tomahawk (and only tomahawk) on your local machine (for
some reason.)  Most of the global information in the parent POM seems
to be related to the site.  Will a pom build if it cannot find the
parent pom?  (Say you just checkout tomahawk ...)

The parent pom is fetched from the remote repository(snapshot) and installed in the local repository.
Also, the versions should be defined at the subproject level. So api,
impl, commons, etc. all have their own versions defined.  The pom's
underneath them (like tomahawk/tomahawk/pom.xml) can inherit from the
subproject pom but they shouldn't inherit from the master pom.  I'm
thinking the master pom (build/pom.xml) have a version like
1.0.0-FINAL or something like that.  We *never* change the version of
the parent.  So as the versions of the subprojects change and get out
of sync with each other (on purpose) and as we tag and branch, it
doesn't matter.  The parent ref is always good.

If you never change the version of the parent you don't get any new information from the parent pom if has changed. (then you can delete the parent ref)


None of this matters if we nuke the build/pom.xml right?

A version is only one line in the pom. Can we move this decision to a release. If we decide tomahawk has his own version I add a version line to the pom in tomahawk maybe I remove the parent ref (Then I have to copy the inherited information from the parent pom). This is very simple.

What i need is a discussion about reasonable artifact names and directory names


I posted a first cut earlier - I'll repost under a new thread.

And we should talk about the process (updating the snapshots, nightly build and continuum)

Agreed - do you have the bandwidth to write up a proposal now? If not I can take a crack tomorrow.


And we should use the new site.


Agreed, does any one have a link crawler to at least make sure our links are all valid before we push?

TTFN,

-bd-

One implication is that if we go back in time to generate the website
for a tagged version it will show the current contributor list, etc. I think that's perfectly fine but its an implication to be aware of. This also seems to be an argument for *not* defining dependencies in
the master pom.

I don't understand this

Anyways, we need to get the unit tests back up and running and we need
to sort out this parent pom business.  Any thoughts?

We don't need to sort out the parent pom's at this point.
We have to define processes.

Sean
[1] http://wiki.apache.org/myfaces/Maven2_Migration

Regards


Bernd

Reply via email to