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 <[email protected]> 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 <[email protected]> > > > 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 > > >
