You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@clerezza.apache.org by Reto Bachmann-Gmür <re...@apache.org> on 2012/08/09 21:22:51 UTC

CLEREZZA-711: Separating reactor from parent

Hello

I'm wondering what you think about
https://issues.apache.org/jira/browse/CLEREZZA-711.

While a hierarchical project structure and haviong parent and reactor
together the structure with having the pparent at a separate location from
the reactor and using explicit relativePath seems more flexible for
relasing individual modules or adding and releasing new modules  (not
totally easy as you might want to do a parent release switching back the
non-released modules to the latest released version, doing the partial
release making the parent to point again to the snapshots of the
non-released modules and update the non-released modules to use the latest
parent, not sure how much of this can be done with the maven versions
plugin).

And I dislike the relativePath thing so I've raised
http://jira.codehaus.org/browse/MNG-5305

I think the clerezza-jar-resource-bundle need to be changed for the source
bundle to still be created correctly, or it might no longer be used at all.
I'll commit a changed version now and I'm curious to know if you think that
this is the way to go.

Cheers,
Reto

Re: CLEREZZA-711: Separating reactor from parent

Posted by Reto Bachmann-Gmür <re...@apache.org>.
On Sun, Aug 12, 2012 at 12:42 AM, Tommaso Teofili <tommaso.teofili@gmail.com
> wrote:

> Ciao Reto,
>
> 2012/8/11 Reto Bachmann-Gmür <re...@apache.org>
>
> > Ciao Tommaso,
> >
> > On Fri, Aug 10, 2012 at 2:01 PM, Tommaso Teofili
> > <to...@gmail.com>wrote:
> >
> > > Hi Reto,
> > >
> > > I think that for us it totally makes sense to go for separation between
> > > parent and reactor.
> > > We do the same in UIMA since we need to manage and release different
> > parent
> > > versions, this'd be hard to do if it was bound to the reactor.
> > > Probably the best way is to make separate svn directory for parent and
> do
> > > separated releases and let that be used via the standard maven
> mechanism
> > > when declared in an artifact's pom
> >
> >
> > Do I understand you correctly that the parent would be excluded from the
> > reactor?
>
>
> yes
>
>
> > when are the dependencies in its dependency management section
> > updated?
> >
>
> uhm, I'm not sure I understand the question (too late in the night and
> leaving for vacation shortly :P).
>

So you're hopefully enjoying your vacation now.

If the parents is released separately it can only have modules already
released in its dependency management section. So when multiple modules are
to be released they cannot rely on dependency management to use the version
to be released of the other module.

Cheers,
Reto


>
>
> >
> >
> > > (without relativePath, which I dislike btw).
> > >
> > Vote for http://jira.codehaus.org/browse/MNG-5305 then ;)
> >
>
> I'll do it !
>
>
> >
> > I just tried to cut a release for shell and parent, for this a created
> the
> > branch
> >
> https://svn.apache.org/repos/asf/incubator/clerezza/branches/shellrelease/
> > .
> > For this I modified the parent to pint to the latest released version
> > rather than the latest snapshot and communted out all the other modules
> in
> > the reactor. Unfortunatle the release plugin is still at some point using
> > the trunk version rather than the branch, probably have to adapt svn
> > location in pom.
> >
>
> yes, I think so.
>
>
> > However the source-zip was created correctly containing only the sources
> of
> > reactor,parent and shell.
> >
>
> Nicely done Reto, thanks for sharing this :-)
> Cheers,
> Tommaso
>
>
> >
> > Cheers,
> > Reto
> >
> > >
> > > My 2 cents,
> > > Tommaso
> > >
> > >
> > > 2012/8/9 Reto Bachmann-Gmür <re...@apache.org>
> > >
> > > > Hello
> > > >
> > > > I'm wondering what you think about
> > > > https://issues.apache.org/jira/browse/CLEREZZA-711.
> > > >
> > > > While a hierarchical project structure and haviong parent and reactor
> > > > together the structure with having the pparent at a separate location
> > > from
> > > > the reactor and using explicit relativePath seems more flexible for
> > > > relasing individual modules or adding and releasing new modules  (not
> > > > totally easy as you might want to do a parent release switching back
> > the
> > > > non-released modules to the latest released version, doing the
> partial
> > > > release making the parent to point again to the snapshots of the
> > > > non-released modules and update the non-released modules to use the
> > > latest
> > > > parent, not sure how much of this can be done with the maven versions
> > > > plugin).
> > > >
> > > > And I dislike the relativePath thing so I've raised
> > > > http://jira.codehaus.org/browse/MNG-5305
> > > >
> > > > I think the clerezza-jar-resource-bundle need to be changed for the
> > > source
> > > > bundle to still be created correctly, or it might no longer be used
> at
> > > all.
> > > > I'll commit a changed version now and I'm curious to know if you
> think
> > > that
> > > > this is the way to go.
> > > >
> > > > Cheers,
> > > > Reto
> > > >
> > >
> >
>

Re: CLEREZZA-711: Separating reactor from parent

Posted by Tommaso Teofili <to...@gmail.com>.
Ciao Reto,

2012/8/11 Reto Bachmann-Gmür <re...@apache.org>

> Ciao Tommaso,
>
> On Fri, Aug 10, 2012 at 2:01 PM, Tommaso Teofili
> <to...@gmail.com>wrote:
>
> > Hi Reto,
> >
> > I think that for us it totally makes sense to go for separation between
> > parent and reactor.
> > We do the same in UIMA since we need to manage and release different
> parent
> > versions, this'd be hard to do if it was bound to the reactor.
> > Probably the best way is to make separate svn directory for parent and do
> > separated releases and let that be used via the standard maven mechanism
> > when declared in an artifact's pom
>
>
> Do I understand you correctly that the parent would be excluded from the
> reactor?


yes


> when are the dependencies in its dependency management section
> updated?
>

uhm, I'm not sure I understand the question (too late in the night and
leaving for vacation shortly :P).


>
>
> > (without relativePath, which I dislike btw).
> >
> Vote for http://jira.codehaus.org/browse/MNG-5305 then ;)
>

I'll do it !


>
> I just tried to cut a release for shell and parent, for this a created the
> branch
> https://svn.apache.org/repos/asf/incubator/clerezza/branches/shellrelease/
> .
> For this I modified the parent to pint to the latest released version
> rather than the latest snapshot and communted out all the other modules in
> the reactor. Unfortunatle the release plugin is still at some point using
> the trunk version rather than the branch, probably have to adapt svn
> location in pom.
>

yes, I think so.


> However the source-zip was created correctly containing only the sources of
> reactor,parent and shell.
>

Nicely done Reto, thanks for sharing this :-)
Cheers,
Tommaso


>
> Cheers,
> Reto
>
> >
> > My 2 cents,
> > Tommaso
> >
> >
> > 2012/8/9 Reto Bachmann-Gmür <re...@apache.org>
> >
> > > Hello
> > >
> > > I'm wondering what you think about
> > > https://issues.apache.org/jira/browse/CLEREZZA-711.
> > >
> > > While a hierarchical project structure and haviong parent and reactor
> > > together the structure with having the pparent at a separate location
> > from
> > > the reactor and using explicit relativePath seems more flexible for
> > > relasing individual modules or adding and releasing new modules  (not
> > > totally easy as you might want to do a parent release switching back
> the
> > > non-released modules to the latest released version, doing the partial
> > > release making the parent to point again to the snapshots of the
> > > non-released modules and update the non-released modules to use the
> > latest
> > > parent, not sure how much of this can be done with the maven versions
> > > plugin).
> > >
> > > And I dislike the relativePath thing so I've raised
> > > http://jira.codehaus.org/browse/MNG-5305
> > >
> > > I think the clerezza-jar-resource-bundle need to be changed for the
> > source
> > > bundle to still be created correctly, or it might no longer be used at
> > all.
> > > I'll commit a changed version now and I'm curious to know if you think
> > that
> > > this is the way to go.
> > >
> > > Cheers,
> > > Reto
> > >
> >
>

Re: CLEREZZA-711: Separating reactor from parent

Posted by Reto Bachmann-Gmür <re...@apache.org>.
Ciao Tommaso,

On Fri, Aug 10, 2012 at 2:01 PM, Tommaso Teofili
<to...@gmail.com>wrote:

> Hi Reto,
>
> I think that for us it totally makes sense to go for separation between
> parent and reactor.
> We do the same in UIMA since we need to manage and release different parent
> versions, this'd be hard to do if it was bound to the reactor.
> Probably the best way is to make separate svn directory for parent and do
> separated releases and let that be used via the standard maven mechanism
> when declared in an artifact's pom


Do I understand you correctly that the parent would be excluded from the
reactor? when are the dependencies in its dependency management section
updated?


> (without relativePath, which I dislike btw).
>
Vote for http://jira.codehaus.org/browse/MNG-5305 then ;)

I just tried to cut a release for shell and parent, for this a created the
branch
https://svn.apache.org/repos/asf/incubator/clerezza/branches/shellrelease/.
For this I modified the parent to pint to the latest released version
rather than the latest snapshot and communted out all the other modules in
the reactor. Unfortunatle the release plugin is still at some point using
the trunk version rather than the branch, probably have to adapt svn
location in pom.
However the source-zip was created correctly containing only the sources of
reactor,parent and shell.

Cheers,
Reto

>
> My 2 cents,
> Tommaso
>
>
> 2012/8/9 Reto Bachmann-Gmür <re...@apache.org>
>
> > Hello
> >
> > I'm wondering what you think about
> > https://issues.apache.org/jira/browse/CLEREZZA-711.
> >
> > While a hierarchical project structure and haviong parent and reactor
> > together the structure with having the pparent at a separate location
> from
> > the reactor and using explicit relativePath seems more flexible for
> > relasing individual modules or adding and releasing new modules  (not
> > totally easy as you might want to do a parent release switching back the
> > non-released modules to the latest released version, doing the partial
> > release making the parent to point again to the snapshots of the
> > non-released modules and update the non-released modules to use the
> latest
> > parent, not sure how much of this can be done with the maven versions
> > plugin).
> >
> > And I dislike the relativePath thing so I've raised
> > http://jira.codehaus.org/browse/MNG-5305
> >
> > I think the clerezza-jar-resource-bundle need to be changed for the
> source
> > bundle to still be created correctly, or it might no longer be used at
> all.
> > I'll commit a changed version now and I'm curious to know if you think
> that
> > this is the way to go.
> >
> > Cheers,
> > Reto
> >
>

Re: CLEREZZA-711: Separating reactor from parent

Posted by Daniel Spicar <da...@trialox.org>.
I was spending quite some time looking at other project structures and
thinking about our release process earlier.

Separation of parent and reactor is good IMHO but I don't think it will
save us from trouble by itself. I think some decisions need to be made on
how to get a consistent structure and release process that allows for
partial (module) releases. It is a while ago since I had the best insight
into the issues connected to maven and releasing but some things I remember:

- The maven release plugin does not play well with non-hierarchical project
structures. If you want to automate the release with the release plugin
non-hierarchical structures are currently a no-go.
- The maven release plugin also does not seem to be able to support partial
(module) releases well when the dependency management stanzas that are used
are located in a POM higher up the hierarchy.
-  manual or partially manual releases can be a PITA and one should not
underestimate the effort needed.
- whatever solution we make we will need to document it and establish
versioning and project configuration policy that tells developers what to
do to prevent problems.

Separating the reactor and parent will help to release individual modules
but currently our release process is along the ways of: de-snapshotize
everything, branch/tag, snapshotize everything again. I think this is not
going to be good. We should be able to develop and release modules
independently from other modules (unless you depend on changes in modules
that are dependencies). IMHO best would be if modules could remain stable
between releases (the versions they depend on do not have to be always the
latest released version but can also be older released versions).  But
without a proper semantic versioning policy (and checking like OSGi
supplies) this is going to lead to dependency problems.

Daniel


On 10 August 2012 14:01, Tommaso Teofili <to...@gmail.com> wrote:

> Hi Reto,
>
> I think that for us it totally makes sense to go for separation between
> parent and reactor.
> We do the same in UIMA since we need to manage and release different parent
> versions, this'd be hard to do if it was bound to the reactor.
> Probably the best way is to make separate svn directory for parent and do
> separated releases and let that be used via the standard maven mechanism
> when declared in an artifact's pom (without relativePath, which I dislike
> btw).
>
> My 2 cents,
> Tommaso
>
>
> 2012/8/9 Reto Bachmann-Gmür <re...@apache.org>
>
> > Hello
> >
> > I'm wondering what you think about
> > https://issues.apache.org/jira/browse/CLEREZZA-711.
> >
> > While a hierarchical project structure and haviong parent and reactor
> > together the structure with having the pparent at a separate location
> from
> > the reactor and using explicit relativePath seems more flexible for
> > relasing individual modules or adding and releasing new modules  (not
> > totally easy as you might want to do a parent release switching back the
> > non-released modules to the latest released version, doing the partial
> > release making the parent to point again to the snapshots of the
> > non-released modules and update the non-released modules to use the
> latest
> > parent, not sure how much of this can be done with the maven versions
> > plugin).
> >
> > And I dislike the relativePath thing so I've raised
> > http://jira.codehaus.org/browse/MNG-5305
> >
> > I think the clerezza-jar-resource-bundle need to be changed for the
> source
> > bundle to still be created correctly, or it might no longer be used at
> all.
> > I'll commit a changed version now and I'm curious to know if you think
> that
> > this is the way to go.
> >
> > Cheers,
> > Reto
> >
>

Re: CLEREZZA-711: Separating reactor from parent

Posted by Tommaso Teofili <to...@gmail.com>.
Hi Reto,

I think that for us it totally makes sense to go for separation between
parent and reactor.
We do the same in UIMA since we need to manage and release different parent
versions, this'd be hard to do if it was bound to the reactor.
Probably the best way is to make separate svn directory for parent and do
separated releases and let that be used via the standard maven mechanism
when declared in an artifact's pom (without relativePath, which I dislike
btw).

My 2 cents,
Tommaso


2012/8/9 Reto Bachmann-Gmür <re...@apache.org>

> Hello
>
> I'm wondering what you think about
> https://issues.apache.org/jira/browse/CLEREZZA-711.
>
> While a hierarchical project structure and haviong parent and reactor
> together the structure with having the pparent at a separate location from
> the reactor and using explicit relativePath seems more flexible for
> relasing individual modules or adding and releasing new modules  (not
> totally easy as you might want to do a parent release switching back the
> non-released modules to the latest released version, doing the partial
> release making the parent to point again to the snapshots of the
> non-released modules and update the non-released modules to use the latest
> parent, not sure how much of this can be done with the maven versions
> plugin).
>
> And I dislike the relativePath thing so I've raised
> http://jira.codehaus.org/browse/MNG-5305
>
> I think the clerezza-jar-resource-bundle need to be changed for the source
> bundle to still be created correctly, or it might no longer be used at all.
> I'll commit a changed version now and I'm curious to know if you think that
> this is the way to go.
>
> Cheers,
> Reto
>