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.
  • No labels