XBean > Home > Developers > Release Procedure

Release Procedure

Subversion commit over https Required

This is the most important thing and the easiest to get wrong. If you can not commit to the repo, the release will fail in the middle and you will have to rollback the changes by hand.

You must be able to commit using svn over https to do a release. Make sure your check out is over https

$ svn info
Path: .
URL: https://svn.codehaus.org/xbean/trunk

Also make sure you can commit to the https checkout. This requires that you have a password setup on Codehaus, which is not the default for new Codehaus accounts. Double check this by making an insignificant change to a file and cheking it in.

$ vi somefile
$ svn commit somefile

Rollback

If you mess up and need to rollback simply, generate a diff from svn, apply the diff using patch and commit:

$ svn diff -r155:154 > my.diff
$ patch -p0 < my.diff
$ svn commit

Deploying to a private repo

Releases must be deployed to a private repo, voted and then copied to the public Apache repositories.
To do this, change the properties in the root pom to

<m1.repo>scp://minotaur.apache.org/www/geronimo.apache.org/xbean/dist/xbean-2.5/m1</m1.repo>
<m2.repo>scp://minotaur.apache.org/www/geronimo.apache.org/xbean/dist/xbean-2.5/m2</m2.repo>
<site.repo>scp://minotaur.apache.org/www/geronimo.apache.org/xbean/dist/xbean-2.5/site</site.repo>

Follow the release guidelines below, and start a vote on dev@geronimo.apache.org

When the release is voted, copy the content of the m1 and m2 repos to
minotaur.apache.org:/www/www.apache.org/dist/java-repository/org.apache.xbean/
minotaur.apache.org:/www/www.apache.org/dist/maven-repository/org/apache/xbean/

and ask the maven guys to sync these repos to ibiblio...

Do not forget to revert back the properties before deploying a new snapshot

<m1.repo>scp://minotaur.apache.org/www/people.apache.org/repository</m1.repo>
<m2.repo>scp://minotaur.apache.org/www/people.apache.org/maven-snapshot-repository</m2.repo>
<site.repo>scp://minotaur.apache.org/www/geronimo.apache.org/xbean/dist/xbean-2.6-SNAPSHOT/site</site.repo>

  1. Make sure your code is up to date and you have no pending work
    $ svn up
    $ svn status
    
  2. Test that you can deploy to the remote maven repository
    $ mvn -N deploy
    
  3. Prepare the release
    $ mvn release:prepare
    
    ....
    [INFO] What is the release version for 'org.xbean:xbean'? [2.0]
    <press enter>
    
    ....
    [INFO] [release:prepare]
    [INFO] What tag name should be used?
    xbean-2.0           <==== use <artifactId>-<version>
    
    .....
    [INFO] Verifying there are no local modifications ...
    [INFO] Checking lineage for snapshots ...
    [INFO] Checking dependencies for snapshots ...
    [INFO] Checking plugins for snapshots ...
    [INFO] What is the release version for 'org.xbean:xbean'? [2.0]
    <press-enter>
    
    
    [INFO] Checking lineage for snapshots ...
    [INFO] Checking dependencies for snapshots ...
    [INFO] Checking plugins for snapshots ...
    [INFO] What is the release version for 'org.xbean:xbean-classpath'? [2.0]
    <press-enter>
    
    
    [INFO] Checking lineage for snapshots ...
    [INFO] Checking dependencies for snapshots ...
    [INFO] Checking plugins for snapshots ...
    [INFO] What is the release version for 'org.xbean:xbean-spring'? [2.0]
    <press-enter>
    
    
    [INFO] Checking lineage for snapshots ...
    [INFO] Checking dependencies for snapshots ...
    [INFO] Checking plugins for snapshots ...
    [INFO] What is the release version for 'org.xbean:xbean-kernel'? [2.0]
    <press-enter>
    
    
    [INFO] Checking lineage for snapshots ...
    [INFO] Checking dependencies for snapshots ...
    [INFO] Checking plugins for snapshots ...
    [INFO] What is the release version for 'org.xbean:xbean-jmx'? [2.0]
    <press-enter>
    
    
    [INFO] Checking lineage for snapshots ...
    [INFO] Checking dependencies for snapshots ...
    [INFO] Checking plugins for snapshots ...
    [INFO] What is the release version for 'org.xbean:xbean-server'? [2.0]
    <press-enter>
    
    [INFO] Checking in modified POMs
    [INFO] Tagging release with the label xbean-2.0.
    [INFO] What is the new development version for 'org.xbean:xbean'? [2.1-SNAPSHOT]
    <press-enter>
    
    [INFO] Checking lineage for snapshots ...
    [INFO] Checking dependencies for snapshots ...
    [INFO] Checking plugins for snapshots ...
    [INFO] What is the release version for 'org.xbean:xbean-server'? [2.0]
    <press-enter>
    
    
    [INFO] Checking in modified POMs
    [INFO] Tagging release with the label xbean-2.0.
    [INFO] What is the new development version for 'org.xbean:xbean'? [2.1-SNAPSHOT]
    <press-enter>
    
    
    [INFO] What is the new development version for 'org.xbean:xbean-classpath'? [2.1-SNAPSHOT]
    <press-enter>
    
    
    [INFO] What is the new development version for 'org.xbean:xbean-spring'? [2.1-SNAPSHOT]
    <press-enter>
    
    
    [INFO] What is the new development version for 'org.xbean:xbean-kernel'? [2.1-SNAPSHOT]
    <press-enter>
    
    
    [INFO] What is the new development version for 'org.xbean:xbean-jmx'? [2.1-SNAPSHOT]
    <press-enter>
    
    
    [INFO] What is the new development version for 'org.xbean:xbean-server'? [2.1-SNAPSHOT]
    <press-enter>
    
    [INFO] Checking in development POMs
    [INFO] ----------------------------------------------------------------------------
    [INFO] BUILD SUCCESSFUL
    
  4. Verify you are ready for a release.
    Several commit messages should have been sent to the xbean scm list and you should now have a release.properties file in the current directory.
    $ cat release.properties 
    #Generated by Release Plugin on: Wed Nov 09 16:46:51 PST 2005
    .....
    
  5. Execute the release
    $ mvn release:perform
    
  6. Verify the jars were uploaded to the repositories
  7. Deploy SNAPSHOT jars for the new development release
    $ mvn deploy
    
  8. Verify the new development snapshot jars were uploaded to the repositories