Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: for step #6, added exact staging commands used for Genesis 1.3.1 and Server 2.1.3 releases

...

  1. Download and install the Gnu Privacy Guard (GPG) from http://www.gnupg.org. Read the documentation on that site and create a key. Have the key signed and verified by others. Submit your public key to http://pgp.mit.edu/. This is a one time process.
  2. Create a "staging" profile in your ~/.m2/settings.xml
    Code Block
    <profile>
        <id>staging</id>
        <properties>
            <!-- deploy.altRepository>prasad::default::scp://people.apache.org/x1/home/prasad/public_html/2.0-M1-rc1</deploy.altRepository -->
            <deploy.altRepository>prasad::default::file://c:\cygwin\home\prasad\releases</deploy.altRepository>
            <gpg.passphrase>Your GPG Passphrase</gpg.passphrase>
        </properties>
    </profile>
    
  3. Copy (or move as per situation, for eg specs) the trunk to branches using the following command.
    No Format
    svn mv SRC-URL DEST-URL -m "Reason for this commit".
    
  4. Checkout or update this branches tree on your machine.
  5. Update the <scm> urls in the pom.xml to point to the final url in tags. Eg:
    Code Block
    <scm>
         <connection>scm:svn:http://svn.apache.org/repos/asf/geronimo/specs/tags/geronimo-servlet_2.5_spec-1.1</connection>
         <developerConnection>scm:svn:https://svn.apache.org/repos/asf/geronimo/repos/asf/geronimo/specs/tags/geronimo-servlet_2.5_spec-1.1</developerConnection>
         <url>http://svn.apache.org/viewvc/geronimo/repos/asf/geronimo/specs/tags/geronimo-servlet_2.5_spec-1.1</url>
    </scm>
    
  6. Build the new branches new branches tree that will soon be released using the following command.
    No Format
    Server 2.1.x -
        mvn -Pstaging deploy
    Genesis 1.x -
        mvn -Pdefault,release deploy
    Others -
        mvn -pdefault,staging deploy
    
    Note
    titleStaging

    Before running this step, verify that there is a corresponding "staging" or "release" profile in pom.xml. Some of the newer releases, will require you to use -Pdefault,release as we are trying to make it impossible to directly release artifacts to the apache.release repo by providing a default "release" profile that stages files to public people.apache.org directory.

  7. Go the temporary staging directory specified by deploy.altRepository element in the staging profile of your settings.xml. Delete all *.asc.* files under this directory tree. Tar the staging directory using the command
    No Format
    find . -name *.asc.* | xargs rm -f
    tar -zcvf release.tar.gz releases
    
    Info

    Ensure you include the *.asc files, as these are required and will be checked for by the Apache Repository team.

  8. Copy the tar ball to a publicly accessible location. Put it for a vote. In the vote notice, please include the precise names and versions being voted on (e.g. geronimo-javamail_1.4_spec-1.1) and the svn urls to the current source and where the tag will be created.
  9. After it has been approved, untar the tar ball into the appropriate maven structure on people.apache.org under the directory /www/people.apache.org/repo/m2-ibiblio-rsync-repository. A cron job will rsync this with ibiblio and release it into the wild.
    No Format
    gunzip foo.tar.gz
    tar -xvf foo.tar
    
    Info

    Ensure that the files you copy to the rsync directory have 0775 dir permission and a 0664 file permission set on them.

  10. Move the branches to tags using the following command.
    No Format
    svn mv SRC-URL DEST-URL -m "Reason for this commit".
    

...