directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jörg Schaible <Joerg.Schai...@Elsag-Solutions.com>
Subject RE: [VOTE] Policy for Managing TLP POM
Date Thu, 24 May 2007 07:41:32 GMT
 
Hi folks,

as a plain lurker to ADS, I'd like to make some minor comments to this proposal, too. Mainly
because we deal with a comparable complexity here in our office.

Some History Regarding Maven Interactions: 
You mension, that the SNAPSHOT handling for parents is broken. This is not the complete truth,
since any SNAPSHOT handling is broken. Maven does not download a SNAPSHOT again, that is in
your local repo. So if you have a dep on a SNAPSHOT, you can only trust it if you either have
wiped out any SNAPSHOT out of your local repo before or you have build all those yourself
(as I do my 234 reported projects currently).

What we do with our TLP:
- it's an own project. In your case tlp-commons will be released automatically with every
version bump. Might be OK though for tlp-commons
- we locked down the version *all* used plugins in a pluginManagement section otherwise the
build is not really repeatable (it's still not, if you don't use the same Maven version -
at least currently)
- we do not define plugins directly in the TLP. In your case you do so for the jar and surefire
plugin, but keep in mind, not every produced artifact might use them
- we use a dependencyManagement section declaring all externals and released deps with versions,
no version is used in the dep declaration anywhere else (this is a policy you have to decide
on your own, but it helps to use the same version everywhere)
- we use also TLP version "SNAPSHOT" i.e. the latest, it helps to introduce changes that effects
a lot of other modules. If you have to release the TLP always for this, you'll have to update
a lot of POMs to the new version. If the TLP is released, we set the next version always back
to SNAPSHOT. This also helps with artifacts that are not released but reference the "latest"
TLP version.

Drawbacks:
- when releasing an artifact, you should always remember to set the version to the parent
(normally TLP) to the latest one (otherwise you may use older plugin versions or global settings)
- you do normally a frequent manually update of the TLP from svn and install it in the local
repo (to get latest changes)


Maybe you can pick some useful parts for your policy.

BTW: We use also a lot of POMs that get never released. They usually reside in the top lovel
directories and have basically just a module section (and often those modules are "injected"
by svn:externals). We call them "builder POMs" and they are never used as parent POM anywhere.
Quite handy.

Cheers,
Jörg

Mime
View raw message