On Sun, Oct 31, 2010 at 9:27 AM, Benson Margulies <[email protected]>wrote:
> 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. > I like the typo. My general feeling is that even with documentation, the process that happened was waay too magical for my test. I think that the basic skeleton is there in a hazy kind of way, but there were lots of things that you fixed that I would have been unable to fathom. I don't like that. > 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. > Are perform/prepare backwards here? > Here's a proposal, what do folks think? > > NORMAL DEVELOPER RUNS MVN: > > * full unit tests > * no distribution packages > * example job > Yes. If would even be nice to have a way to disable the example job much the way that the unit tests can be disabled. It would be nice to build the normal mahout jars here in addition to the example job. This is because lots of Mahout things are done locally or via the Mahout API. Having the jar handy is nice. > 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 > I don't understand the rationale here. How do you decide what to do in this case? Also, what does "includes distribution directory" really mean? > NORMAL DEVELOPER RUNS MVN -Peverything,release (useful for testing > release wiring) > * full unit tests > * full distribution package > * example job > This is a critical use case, but how does somebody know that -Peverything,release is the right thing to use here? Is this Mahout specific or general mvn convention? > RM RUNS MVN release:prepare -Peverything,fastinstall > * no unit tests > * mvn visits distribution to create tag, but does not build bundles > * no example job > What is the profile doing for us here? Is there some sensible use case where release:prepare without these profiles? If not, why can't the profiles be wired into the release:prepare goal? What does "visits distribution to create tag" specifically mean? I think I understand "create tag" to mean an SVN operation, but what does it mean in the context of "visits distribution"? > RM RUNS MVN release:perform > > *no unit tests > *full distribution > *example job > makes sense. Does this push to nexus as well? Or is that manual?
