On 06/17/2011 03:19 PM, Franklin, Matthew B. wrote:
I have committed a release guide based mostly on the example provided by
Ate.  I still have a few outstanding questions that I need mentors and
people with more maven experience to point me in the right direction for:

1) Do we need a release process for the master or can we depend on the
master SNAPSHOT?
A release cannot/may not depend on SNAPSHOT dependencies as that would make it (potentially) unreliable. A future change of such a SNAPSHOT could easily break the behavior or even the build of the release, which is a very bad pattern.
Note that this isn't so much a "requirement" from ASF pov, but a general one.
Furthermore, a 0.1-SNAPSHOT dependency can/may "disappear" anytime too (like when its "released" itself).

So, yes: we need to release the master first, then update the project dependency on it, and finally release the project itself. Note: with the Nexus staging repository both can go into the same staging repository making it a single and "joined" release effort for voting upon and releasing (or dropping) thereafter.

2) I was assuming I could just run mvn -P dist release:prepare from trunk
and everything would get built and signed appropriately.  When I do that,
I get

     gpg: can't open
`/private/tmp/rave/target/rave-project-0.1-incubating-SNAPSHOT-source-relea
se.zip': No such file or directory

    The file does not exist when built with the dist profile, but does
exist when built without it.  I am assuming there is some interaction
between that profile and the order the release plugin normally does
things.  Any pointers would be helpful.

It wasn't my intention or expectation to use the dist profile for/during the release. The produced binary artifacts (.tar.gz and .zip) don't need to go into the maven repository, nor is there much sense in doing so. My intent is to first do the normal release process (so without -P dist), and after the release step build the binary dist archives separately. Those then can (and must be) copied over to some temporary public location for others to validate and vote upon. That vote can be a combined vote upon the rave-master-pom, rave-project and the binary dist archives together.

With regard to it "not working": this is because Maven profiles only get activated one at a time, unless you explicitly enable them manually. So by enabling the dist profile you effectively disabled the apache release profile which you need to do the release.


3) Do I need infra to grant me karma on the nexus server to do deployments?
AFAIK you don't need anymore than you already have, e.g. you can login to Nexus, right? If not sure, you could test drive by doing a trivial change on the rave-master-pom and then a mvn deploy, which will push it through Nexus snapshot repository. If you can do that, you have all the permissions needed for the release as well.



There will probably be more questions, but I am trying to get all of these
things resolved so that we can push forward with the release.

-Matt


Reply via email to