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