I spent the last few days skating a bit close to the edge in fighting
with the POMs to get the release to stick together.

A few notes on the carnage, and a suggesting for the next time around...

I pitched the use of org:apache:7 as our parent. It's advertised as a
generally sensible parent pom for all Apache maven projects, but I
feel, pretty vehemently, that this is false advertising. I know of one
other very experienced PMC chair of a large Apache project in mvn who
feels the same way. So it's gone. If the maven gang every makes a
parent pom that sticks to providing what's useful and doesn't include
intrusive and unwanted settings, this could be reconsidered.

I'm striving to rationalize the work that happens during :prepare and
the work that happens during :perform. Now that we don't have a gnu
pointed to our heads, I'd really like to know what other people think.

Keep in mind that the purpose of perform is to create a tag pointing
to a version with the proposed release numbers in the poms, and the
purpose of prepare is to checkout that tag, build, and push.

The release plugin has an easy way to activate profiles for perform,
and no special theory about prepare.

Here's a proposal, what do folks think?

NORMAL DEVELOPER RUNS MVN:

* full unit tests
* no distribution packages
* example job

NORMAL DEVELOPER RUNS MVN -Peverything: (useful for things like mvn
versions:set)

* full unit tests
* mvn includes distribution directory, but distribution directory does
not actually build distribution
* example job

NORMAL DEVELOPER RUNS MVN -Peverything,release (useful for testing
release wiring)
 * full unit tests
 * full distribution package
 * example job

RM RUNS MVN release:prepare -Peverything,fastinstall
 * no unit tests
 * mvn visits distribution to create tag, but does not build bundles
 * no example job

RM RUNS MVN release:perform

  *no unit tests
  *full distribution
  *example job

Reply via email to