From scm-return-48804-apmail-geronimo-scm-archive=geronimo.apache.org@geronimo.apache.org Mon Jul 23 02:04:29 2012 Return-Path: X-Original-To: apmail-geronimo-scm-archive@www.apache.org Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4A40FC2AA for ; Mon, 23 Jul 2012 02:04:29 +0000 (UTC) Received: (qmail 7539 invoked by uid 500); 23 Jul 2012 02:04:29 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 7400 invoked by uid 500); 23 Jul 2012 02:04:28 -0000 Mailing-List: contact scm-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list scm@geronimo.apache.org Received: (qmail 7383 invoked by uid 99); 23 Jul 2012 02:04:28 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 23 Jul 2012 02:04:28 +0000 X-ASF-Spam-Status: No, hits=-1993.0 required=5.0 tests=ALL_TRUSTED,HTML_FONT_LOW_CONTRAST,HTML_MESSAGE,MIME_HTML_ONLY,URI_HEX X-Spam-Check-By: apache.org Received: from [140.211.11.22] (HELO thor.apache.org) (140.211.11.22) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 23 Jul 2012 02:04:22 +0000 Received: from thor (localhost [127.0.0.1]) by thor.apache.org (8.13.8+Sun/8.13.8) with ESMTP id q6N240au024436 for ; Mon, 23 Jul 2012 02:04:00 GMT Date: Sun, 22 Jul 2012 22:04:00 -0400 (EDT) From: confluence@apache.org To: scm@geronimo.apache.org Message-ID: <5380795.2052.1343009040377.JavaMail.confluence@thor> Subject: [CONF] Apache Geronimo Project Management > Geronimo 3.0.x Release Process MIME-Version: 1.0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Auto-Submitted: auto-generated

Geronimo 3.0.x Release Process

Page edited by Forrest Xia


Changes (1)

=20 =20
=20 =20
...
* Upload artifacts to [http:/= /www.apache.org/dist/geronimo/]
** Copy [https://svn.apache.org/repos/a= sf/geronimo/KEYS] to people.apache.org:/www/www.apache.org/dist/geronimo/KE= YS if your public key is not in it (one time)
** Upload the artifacts a= nd their checksums(*.tar.gz.md5, *.zip.md5, *.tar= .gz.sha1, *.zip.sha1, *.asc) to people.apache.org:/www/www.ap= ache.org/dist/geronimo/3.0.0
** Ensure distribution direct= ories have 0775 dir permission and a 0664 file permission set on them
*= ** Try [fetch_checksum|https://svn.apache.org/repos/asf/geronimo/site/trunk= /bin/fetch_checksum] and [upload_dist|https://svn.apache.org/repos/asf/gero= nimo/site/trunk/bin/upload_dist] scripts to free you out of tedious manual = work :)
...

Full Content

Geronimo 3.0.x Release Process

Reference =EF=BB=BFhttp://www.apache= .org/dev/publishing-maven-artifacts.html

Have 3.0.0 release as an example.

Release Ch= ecklist

1. Better to use a non-Windows system to cre= ate the release candidate

2. mvn rat= :check

3. Manually update some files:

    =09
  • Updates all pom.xml files to search "SNAPSHOT" to ensure there is no= snapshot dependencies
  • =09
  • Updates plugin-list url in $SRC\framework\configs\plugin\pom.xml =09
  • Updates ##VERSION## in README.txt and RELEASE_NOTES.txt in source co= de root folder and $SRC\framework\configs\karaf-framework
  • =09
  • Updates JIRAs in RELEASE_NOTES.txt (bugs, improvement, new features,= known issues, and limitations)
  • =09
  • Updates the copyright year number in NOTICE files
  • =09
  • Commit them

4. mvn release:prepare -DdryRun=3Dtrue &= #45;Pall-subprojects

5. Release= Prepare

    =09
  • Before doing release prepare, clean up you local repository to avoid= the bad staging release artifacts to be included in the geronimo release. = see reference. =09
  • This will update the versions in branch 3.0 and create the release t= ag =09
      =09=09
    • Manually remove all *.log files in the source code root folder, o= therwise those might be packed into the source code zip files.
    • =09=09
    • mvn release:clean -Pall-subprojects
    • =09=09
    • mvn release:prepare -Pall-subprojects =09=09
        =09=09=09
      • you need "mvn clean install -Dstage=3Dbootstrap" in midway=
      • =09=09
      =09=09
    • =09
    =09

6. Release= Perform

7. Vote

    =09
  • Vote in mailing list, meanwhile wait TCK results. Sample release vo= te email as following:
=
VOTE Release Geronimo 3.0.0
Hi Devs,

With correction of legal files, here we have a new release candidate for vote.=
 Please help vote at your earliest convenient time.

The server code up for vote is:
https://repository.apache.org/content/reposito=
ries/orgapachegeronimo-013/org/apache/geronimo/geronimo/3.0.0/geronimo-3.0.=
0-source-release.tar.gz
https://repository.apache.org/content/r=
epositories/orgapachegeronimo-013/org/apache/geronimo/geronimo/3.0.0/geroni=
mo-3.0.0-source-release.zip

The binary code up for vote is:
Java EE 6 Full Profile Tomcat Assemblies:
https://repository.apache.org/content/reposito=
ries/orgapachegeronimo-013/org/apache/geronimo/assemblies/geronimo-tomcat7-=
javaee6/3.0.0/geronimo-tomcat7-javaee6-3.0.0-bin.tar.gz
https://repository.apache.org/content/r=
epositories/orgapachegeronimo-013/org/apache/geronimo/assemblies/geronimo-t=
omcat7-javaee6/3.0.0/geronimo-tomcat7-javaee6-3.0.0-bin.zip

Java EE 6 Web Profile Tomcat Assemblies:
https://repository.apache.org/content/reposito=
ries/orgapachegeronimo-013/org/apache/geronimo/assemblies/geronimo-tomcat7-=
javaee6-web/3.0.0/geronimo-tomcat7-javaee6-web-3.0.0-bin.tar.gz
https://repository.apache.org/content/r=
epositories/orgapachegeronimo-013/org/apache/geronimo/assemblies/geronimo-t=
omcat7-javaee6-web/3.0.0/geronimo-tomcat7-javaee6-web-3.0.0-bin.zip

Little-G Tomcat Assemblies:
https://repository.apache.org/content/reposito=
ries/orgapachegeronimo-013/org/apache/geronimo/assemblies/geronimo-tomcat7-=
minimal/3.0.0/geronimo-tomcat7-minimal-3.0.0-bin.tar.gz
https://repository.apache.org/content/r=
epositories/orgapachegeronimo-013/org/apache/geronimo/assemblies/geronimo-t=
omcat7-minimal/3.0.0/geronimo-tomcat7-minimal-3.0.0-bin.zip

Staging repo is:
https://repository.apache.org/content/reposito=
ries/orgapachegeronimo-013

The tag has created at:
http://svn.apache.org/repos/asf/geronimo/serve=
r/tags/geronimo-3.0.0

Java EE 6 TCKs all passed!

Vote will be at least open for 72 hours=
.
[ ] +1  approve
[ ] +0  no opinion
[ ] -1  disapprove (and reason why)
=20
    =09
  • Post "VOTE PASSxxx" in the subject, and summarize the= vote status in the body when vote close.

8. Relea= se artifacts

    =09
  • In Apache nexus, click "release" =09
      =09=09
    • the artifacts will be synchronized to maven central repository in= some time.
    • =09
    =09

9. Update geronimo-plugins.xml

10= . Upload artifacts to dist

11. Announce in Mailing list and Post news in homepage

12. Update the security advisory page

13. Manaually update files in the 3.0 branch after r= elease

    =09
  • update 3.0.1-SNAPSHOT to ##VERSION## in README.txt and RELEASE_NOTES= .txt
  • =09
  • remove the JIRA list in RELEASE_NOTES.txt (bugs, improvement, new fe= atures, limitations)
  • =09
  • search "3.0.0" and change them to "3.0.1-SNAPSHOT"
  • =09
  • Update artifact-alias, add version 3.0.0 in artifact-alias after 3.0= .0 release =09
      =09=09
    • /framework/configs/pom.xml
    • =09=09
    • /plugins/client/pom.xml
    • =09=09
    • /plugins/corba/client-corba-yoko/pom.xml
    • =09=09
    • /plugins/pom.xml
    • =09
    =09
  • =09
  • commit them

Prerequisite

1. Use Genesis 2.0 as a parent pom

<parent>
  <groupId>org.apache.geronimo.genesi=
s</groupId>
  <artifactId>genesis-java5-flava</artifactId>
  <version>2.0</version>
</parent>
    =09
  • genesis-java5-flava-2.0.pom =09
      =09=09
    • genesis-default-flava-2.0.pom =09=09
        =09=09=09
      • genesis-2.0.pom =09=09=09
          =09=09=09=09
        • apache-6.pom
        • =09=09=09
        =09=09=09
      • =09=09
      =09=09
    • =09
    =09

2. Use Mave= n 2.2.1

<settings>
...
  <servers>
    <!-- To publis=
h a snapshot of some part of Maven -->
    <server>
      <id>apache.snapshots.https</id>
      <username> <!-- YOUR APACHE LDAP USERNAME --><=
/span> </username>
      <password> <!-- YOUR APACHE LDAP PASSWORD --><=
/span> </password>
    </server>
    <!-- To publis=
h a website of some part of Maven -->
    <server>
      <id>apache.website</id>
      <username> <!-- YOUR APACHE LDAP USERNAME --><=
/span> </username>
      <filePermissions>664</filePermissions>
      <directoryPermissions>775</directoryPermissions>
    </server>
    <!-- To stage =
a release of some part of Maven -->
    <server>
      <id>apache.releases.https</id>
      <username> <!-- YOUR APACHE LDAP USERNAME --><=
/span> </username>
      <password> <!-- YOUR APACHE LDAP PASSWORD --><=
/span> </password>
    </server>
    <!-- To stage =
a website of some part of Maven -->
    <server>
      <id>stagingSite</id> <!-- must match hard-coded repository identifier in site:stage-de=
ploy -->
      <username> <!-- YOUR APACHE LDAP USERNAME --><=
/span> </username>
      <filePermissions>664</filePermissions>
      <directoryPermissions>775</directoryPermissions>
    </server>
    ...
  </servers>
</settings>

reference:
It is highly recommended to use Maven's password encryption capabilities fo= r your passwords.http://maven.apache.or= g/guides/mini/guide-encryption.html

3. Setup PGP Keys (for the ones who b= e the release manager the first time)

    =09
  • Download gnupg2
  • =09
  • Generate your PGP Key (refer: http://www.apache.org= /dev/openpgp.html) so that maven-release-plugin can sign your built art= ifacts when do release:perform =09
      =09=09
    • How To Avoid SHA-1
    • =09=09
    • How To Generate a Strong Key
    • =09
    =09
  • =09
  • Update Maven's settings.xml with following:
    <settings>
      ...
      <profiles>
        <profile>
          <id>apache-release</id>
          <properties>
            <gpg.passphrase> <!-- YOUR KEY PASSPHRASE --&g=
    t; </gpg.passphrase>
          </properties>
        </profile>
      </profiles>
      ...
    </settings>
    
  • =09
  • Meanwhile, append your public key to https:= //svn.apache.org/repos/asf/geronimo/KEYS and people.apache.org:/www/www= .apache.org/dist/geronimo/KEYS so that user can verify the artifacts you re= leased. =09
      =09=09
    • gpg --gen-key =09=09
        =09=09=09
      • RSA and RSA (default), 4096
      • =09=09
      =09=09
    • =09=09
    • gpg --list-sigs "xxxxxx" && gpg --armor --exp= ort "xxxxxx" > xxxxxx.key =09=09
        =09=09=09
      • "cat" your public key to above KEYS file
      • =09=09
      =09=09
    • =09
    =09

reference:
http://maven.apache.org/developers/r= elease/pmc-gpg-keys.html