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