I really think we need the parent pom as Bernd points out below it keeps all the project level stuff in one place.

TTFN,

-bd-
On Jan 5, 2006, at 12:21 PM, Bernd Bohmann wrote:



Sean Schofield schrieb:

Can you give me the arguments for parent refs?  I still haven't heard
a good reason.  I'm not against the idea, I just don't know what they
give you (other then a common version.) I think we can all agree that
the externals are suboptimal.  The question is what to do about  it.
The argument for parent refs is to define many things at one place.
The version is not really the reason, because it is defined in the parent ref.
Without parent refs you have to define the
<issueManagement>
<ciManagement>
<developers>
<reports>
....
in every pom.

A legitimate question:
Is the core pom a parent of the tomahawk pom, this depends on the differences of the poms. If tomahawk has a different groupId it can't be a child of core.

A good start. Here is a revised proposal based on Bernd's original one
core
====
 myfaces/core/trunk/api
 myfaces/core/trunk/impl
 myfaces/core/trunk/assembly
Unfortunaly in maven style the directories should have the same name as the artifact name (I don't like it)
pom in myfaces/core/trunk/
<modules>
  <module>myfaces-api</module>
  <module>myfaces-impl</module>
  <module>assembly</module>
<modules>

myfaces/core/trunk/myfaces-api
myfaces/core/trunk/myfaces-impl
myfaces/core/trunk/assembly (The assembly generates not really an artifact)

We should find a better name for assembly
some examples:
continuum > continuum-plexus-application
maven > maven-core

maybe myfaces-core

commons
=======
 myfaces/commons/trunk

I think commons should have a parent ref to myfaces.
tomahawk
=======
 myfaces/tomahawk/trunk
 myfaces/tomahawk/trunk/example
 myfaces/tomahawk/trunk/assembly
 myfaces/sandbox/trunk
 myfaces/sandbox/trunk/example
 myfaces/sandbox/trunk/assembly
TODO find a better name for assembly
maven-tools
=========
 custom maven plugins, etc.

Not only maven tools. I would suggest myfaces-tools or myfaces- build-tools?


NOTES:
I took out the examples from core.  The examples are 99% tomahawk
related (other then the blank example which shows basic setup.)  I
think its easier to just leave examples out of core instead of having
two copies, separate examples or svn externals.
I merged sandbox and tomahawk together.  A while back we decided to
put the sandbox stuff in the tomahawk.jar.  Since the sandbox is
experimental it doesn't need its own release cycle. Also, stuff moves
from sandbox to tomahawk so you will often update both anyways.  The
examples for tomahawk would be the current examples (minus sandbox). The sandbox examples would go under sandbox.

I think the experimental stuff should only released as a nighly build.

Yes faster release cycles would be good.  I suppose MyFaces commons
will be released everytime *either* the core or tomahawk stuff is
released.  There are bound to be minor changes either time.  That
still saves us the trouble of branching, testing and merging the core
stuff.

and tobago is released :-)

We had talked about a core project a while ago - but as an
svn:external. I like this better. You are correct that branching and
tagging will be much easier.
:-)
I had thought about this.  Is there a way to tell Maven "Use my local
repository if it is newer then the maven repository?"  Things could
get kind of confusing if you are using your latest commons code in the
IDE but Maven is using the last official release ..

Yes, of cause.

I will describe a possible release cycle of myfaces-commons, first.
Current development version 1.1.4-SNAPSHOT
Ready for a release create a branch 1.1.4 (maven-release-plugin)
and then change the version in trunk to 1.1.5-SNAPSHOT.

On the branch you can apply last patches and finally perform a release.

If you have made changes in tomahawk that depends on myfaces- commons-1.1.5-SNAPSHOT you must change the dependency in the tomahawk pom. If you have made local changes in commons for tomahawk, you only must install a new myfaces-commons-1.1.5- SNAPSHOT in your local repository with mvn install(and change the dependeny to 1.1.5-SNAPSHOT).

After you are finished you have to commit your changes in common and tomahawk.

A continuum server updates automatically the myfaces snapshot repository. If an other developer perform an update of tomahawk, the next call of mvn fetch the new snapshot of commons into his local repository from the myfaces snapshot repository.

TODO setup continuum
TODO define the snapshot repository



Sean
Regards

Bernd

Reply via email to