Differences between revisions 6 and 7
Revision 6 as of 2007-12-16 18:29:14
Size: 5433
Comment: added mirror sync hint
Revision 7 as of 2009-09-20 23:01:48
Size: 5451
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 7: Line 7:
!MyFaces releases are done by means of the [http://maven.apache.org/plugins/maven-release-plugin/ Maven release plugin]. !MyFaces releases are done by means of the [[http://maven.apache.org/plugins/maven-release-plugin/|Maven release plugin]].
Line 13: Line 13:
   Download [http://subversion.tigris.org/ svn] and install it    Download [[http://subversion.tigris.org/|svn]] and install it
Line 16: Line 16:
   Find a proper gpg version and frontend at the [http://www.gnupg.org/ GnuPG homepage].
   Windows users may have a look at the [http://www.gpg4win.org/ Gpg4win] frontent, which is easy to use.
   Find a proper gpg version and frontend at the [[http://www.gnupg.org/|GnuPG homepage]].
   Windows users may have a look at the [[http://www.gpg4win.org/|Gpg4win]] frontent, which is easy to use.
Line 23: Line 23:
   '''Important:''' Don't forget to add your public key to the !MyFaces [http://www.apache.org/dist/myfaces/KEYS KEYS] file which you will find at {{{/x1/www/www.apache.org/dist/myfaces}}} on the {{{people.apache.org}}} host.    '''Important:''' Don't forget to add your public key to the !MyFaces [[http://www.apache.org/dist/myfaces/KEYS|KEYS]] file which you will find at {{{/x1/www/www.apache.org/dist/myfaces}}} on the {{{people.apache.org}}} host.
Line 28: Line 28:
   Windows users may have a look at [http://www.chiark.greenend.org.uk/~sgtatham/putty/ Putty].    Windows users may have a look at [[http://www.chiark.greenend.org.uk/~sgtatham/putty/|Putty]].
Line 59: Line 59:
  See [http://maven.apache.org/plugins/maven-deploy-plugin/examples/deploy-ssh-external.html maven-deploy-plugin ssh examples] for more info.   See [[http://maven.apache.org/plugins/maven-deploy-plugin/examples/deploy-ssh-external.html|maven-deploy-plugin ssh examples]] for more info.
Line 72: Line 72:
 1. Make sure that you have no local modifications or even better: do a clean checkout from the [https://svn.apache.org/repos/asf/myfaces/myfaces-master-pom/trunk/ SVN repo].  1. Make sure that you have no local modifications or even better: do a clean checkout from the [[https://svn.apache.org/repos/asf/myfaces/myfaces-master-pom/trunk/|SVN repo]].
Line 110: Line 110:
 2. It can take up to 24 hours for a newly published release to be sync'd to all mirrors. You should at least verify that the new release is already available at the [http://repo1.maven.org/maven2/org/apache/myfaces/myfaces/ Maven main repo] before adding a dependency to it within another project.  2. It can take up to 24 hours for a newly published release to be sync'd to all mirrors. You should at least verify that the new release is already available at the [[http://repo1.maven.org/maven2/org/apache/myfaces/myfaces/|Maven main repo]] before adding a dependency to it within another project.

The Ultimate MyFaces Release HowTo

On this page we want to collect all essential information that is necessary to release a MyFaces project.

Prerequisites

MyFaces releases are done by means of the Maven release plugin. For being able to use it you have to install several external tools first.

External tools

  • Subversion command line executable
    • Download svn and install it

  • GnuPG
    • Find a proper gpg version and frontend at the GnuPG homepage. Windows users may have a look at the Gpg4win frontent, which is easy to use. If you do not already have a private key for your apache mail address you should now either

      • add your @apache.org address as an additonal identifier to your existing gpg key if you already have one, or
      • create a new private key (recommended)

      Important: Don't forget to add your public key to the MyFaces KEYS file which you will find at /x1/www/www.apache.org/dist/myfaces on the people.apache.org host.

  • SSH
    • Most *nix users will already have ssh on their machine.

      Windows users may have a look at Putty.

Settings

  • Server settings
    • For the deploy plugin to being able to upload the artifacts you must add the right settings for the "myfaces-staging" server. You may either use your username and password or provide your private key file.
      <settings xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
                            http://maven.apache.org/xsd/settings-1.0.0.xsd">
        ...
        <servers>
          <server>
            <id>myfaces-staging</id>
            <username>....</username>
            <privateKey>C:\....\myapachekey.ppk</privateKey>
            <filePermissions>664</filePermissions>
            <directoryPermissions>775</directoryPermissions>
            <configuration>
              <sshExecutable>C:\....\putty-0.60\plink</sshExecutable>
              <scpExecutable>C:\....\putty-0.60\pscp</scpExecutable>
            </configuration>
          </server>
        </servers>
        ...
      </settings>

      See maven-deploy-plugin ssh examples for more info.

      Important: Make sure you access the "people.apache.org" host manually at least once before running the release plugin by doing a ssh people.apache.org (*nix users) or plink.exe people.apache.org (Windows putty users) on the command line. You will be asked to accept the server certificate. You have to answer "permanently" for the Maven upload to function properly later.

Basics (or "How to release MyFaces Master POM")

Obviously the simplest MyFaces project is the MyFaces Master POM. It consists of nothing more than a single pom.xml file. So it is perfect for showing the basic procedure of releasing.

Release candidate

  1. Make sure that you have no local modifications or even better: do a clean checkout from the SVN repo.

  2. mvn release:prepare -Dusername=YOURUSERNAME -Dpassword=YOURPASSWORD

    • During the prepare run you will be asked three questions (release version, tag name, next snapshot version). Just hit RETURN for all three to use the defaults.
  3. Important: Make a backup copy of the "release.properties" file now (in case something goes wrong during the release upload)!

  4. mvn release:perform -Dusername=YOURUSERNAME -Dpassword=YOURPASSWORD

    • During the perform run you will be asked for your gpg passphrase.

Voting

  1. Announce the new release candidate and ask for a vote
    • From: "Manfred Geiler" <manolito@apache.org>
      To: "MyFaces Development" <dev@myfaces.apache.org>
      Subject: [vote] MyFaces Master pom v4
      
      This is the formal vote for the new myfaces master POM version 4.
      
      You can find the signed release candidate at [1].
      
      Please vote
      +1 if you reviewed the new master pom version 4 and think we can use it
      -1 if you found a flaw or potential problem with the new master pom
      
      Thanks,
      --Manfred
      
      [1] http://people.apache.org/builds/myfaces/m2-staging-repository/org/apache/myfaces/myfaces/4/
  2. The Release Manager (=you) decides about the outcome of the voting.
    • Please note that there is no veto for release votings. But of cource you should address negative votes. As a rule of thumb you should at least get three positive votes before you decide to continue with the release process.

Distribution

  1. Copy the release candidate to the maven distribution dir
    • cp -r /www/people.apache.org/builds/myfaces/m2-staging-repository/org/apache/myfaces/myfaces/* /www/people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/myfaces/myfaces/

  2. It can take up to 24 hours for a newly published release to be sync'd to all mirrors. You should at least verify that the new release is already available at the Maven main repo before adding a dependency to it within another project.

ReleaseHowTo (last edited 2009-09-20 23:01:48 by localhost)