On 22/03/2008, Phil Steitz <[EMAIL PROTECTED]> wrote: > First, thanks for helping move this along, Rahul. We need to at least > get the "releasing" docs updated. > > > On Fri, Mar 21, 2008 at 3:41 PM, Rahul Akolkar <[EMAIL PROTECTED]> wrote: > > Based on couple of JIRA comments, it seems there still isn't consensus > > about a release process using m2 at Commons. I'll try to outline the > > process. > > > > <outline> > > > > [A] Release prep > > > > [B] Stage artifacts and site, to some location TBD (entire commands > > below, not abridged etc.): > > > > mvn -Prc release:prepare > > mvn -Prc release:perform > > mvn -Prc site-deploy > > > > Or, if you don't care about the release plugin, after setting final > > versions in [A]: > > > > mvn -Prc deploy > > mvn -Prc site-deploy > > > > [C] Vote > > > > [D] Go live > > > > mvn stage:copy ... > > mvn site-deploy > > > > </outline> > > > > Does this fit your mental model? If not, why not? > > > > Please keep the discussion at a "vision" level. Yes, the outline is > > flawed (all votes don't pass, there are loops etc.) Yes, required pom > > changes are not discussed. But, once process is OK'ed, we will make > > the poms do the right thing :-) > > > Keeping things at the "vision" level, what I like to do is > > 1) Once release plan is complete, create an RC tag > 2) Build an RC, consisting of source, binary distros, web site, etc. > I like initial RCs to have "RC" in artifact names. Call me old > fashioned, but I really do not like to create jars with final release > names until I am pretty sure that is what is going to be released. > 3) Announce availability of RC, publish RC-labeled jar to snapshot > repo and tarballs to ~psteitz > 3.5) Iterate 2), 3) 2-3 times until the community is happy with the results > 4) Roll a "final" RC based on a "last" RC tag with > destined-for-release bits in it (i.e. artifact names do not include > "RC") and kick off a VOTE. > 5) When the VOTE succeeds, copy the final RC tag to the release tag > and move the *same signed voted bits* moved to the mirrors and rsynch > maven repo. > > I don't know exactly what the release plugin does, but unless and > until it does exactly those steps, I will do them manually. I have > been able to get the candidate tarballs built using > "mv -Prc site package assembly:assembly" Then I sign and move things. > This is not a big problem for me. I don't mind grabbing the site from > the tarballs and staging it manually to my home. This takes 20 > seconds and ensures that what we are reviewing / voting on the right > content. The only part that is ugly / painful is doing 5) for the m2 > jar repos. A simple way to do that without hacking the metadata or > having to regenerate the jars would be nice to have. > > Things I like to avoid: > 1) altering tags > 2) producing artifacts with the same names, but different contents > (why I like to wait do do 4 until I am pretty certain the vote is > going to pass). > 3) allowing tag - artifact correspondence to be broken (i.e. > one-to-one correspondence between immutable tags and artifacts, with > artifacts always reproducible from tags). > > I don't think it is necessary for all commons release managers to use > the same automation. We should try to make it as easy as possible for > people to cut releases that meet our requirements, but I think RMs > should have flexibility on what tools / approaches they want to use. > The only *requirements* that we have are > > 1) We vote on final bits - i.e. what goes out to the mirrors is > exactly what we VOTE on > 2) Releases are (perpetually) reproducible from tags > 3) Binaries must be buildable from source release packages > 4) Release tars and zips must be published to the commons download site > 5) Release jars - and *only release jars* - must be published to > apache m2 rsynch repo > 6) All ASF release requirements regarding sigs, licenses, notices, > etc., must be satisfied >
+1 to all of the above. > Phil > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]