Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

  • Update the pdf of the online documentation and commit it
  • perform a clean checkout into a new, empty directory

    Code Block
    mkdir groovy-release
    cd groovy-release
    git clone git@github.com:groovy/groovy-core.git
  • create a temporary release branch and change to it

    Code Block
    cd groovy-core/
    (optional) git checkout branch_to_release_from
    git checkout -b release
    
  • Change the release version information

    Code Block
      ./gradle.properties:
          groovyVersion = 2.0.0-rc-1
          groovyBundleVersion = 2.0.0-.rc-1
    
  • commit the change

    Code Block
     git commit -a -m "RC-1 version change"
    
  • Tag with that new release

    Code Block
      git tag -a GROOVY_2_0_5 -m "tagging release of Groovy 2.0.5"
    

...

Code Block
./gradlew clean dist

 

  • Upload all the zips from ./target/distributions/ (but not jars) to the WebDAV distribution site (httpssitehttps://dav.codehaus.org/dist/groovy/distributions), for example, or through rsync if you're authorized:

    Code Blockrsync -vlogDrzP

  • Upload the javadocs from ./target/

    distributions/*.zip $USER@groovy.codehaus.org:/projects/groovy/dist/

    (just check they are in the right place afterwards; you may still need a webdav client to move them into the right subdirectories if something goes wrong)

    Upload the javadocs through rsync to the html/ to the WebDAV web site (https://dav.codehaus.org/groovy/), for example:

    Code Block
    rsync -vlogDrzP ./target/html/* $USER@groovy.codehaus.org:/projects/groovy/web/
  • Put m2 jars into right place for uptake into repo1 (see Publishing artifacts on Building Groovy from Sourcefor more details):

    Prior to uploading, you must make sure you have rights to upload artifacts to the CodeHaus repository. If so, you must have two system properties set before uploading:

    Code Block
    groovy.deploy.username
    groovy.deploy.password

    Then you may upload artifacts using the following command (note there are lots of artifacts to upload, do not be surprised if it takes more than an hour):

    Code Block
    ./gradlew clean uploadArchives
    

    Or with the user / password passed as properties:

    Code Block
    ./gradlew -Dgroovy.deploy.username=USER -Dgroovy.deploy.password=PASSWORD clean uploadArchives

    Should there be a problem when uploading the jars, check that there is a file ~/.m2/settings.xml containing:

    Code Block
    XML
    XML
    <?xml version="1.0"?>
    <settings>
      <servers>
        <server>
          <id>codehaus.org</id>
          <username>USER</username>
          <password>PASSWORD</password>
        </server>
      </servers>
    </settings>
    

    Where USER and PASSWORD are replaced if the right values.

  • If you are affected by authentication issues, due to the odd certificates used by Codehaus, and if the installation of those certificates are problematic on your machine (if the certificates are rejected or if you're not running as root, etc), you can use a local keystore:

    Code Block
    languagebash
    sudo $JAVA_HOME/bin/keytool -import -alias StartSSL-CA -file ~/Downloads/startssl-CA.pem -keystore ~/.keystore 
    sudo $JAVA_HOME/bin/keytool -import -alias StartSSL-Intermediate -file ~/Downloads/startssl-Intermediate.pem -keystore ~/.keystore 
     
    export JAVA_OPTS="-Xmx2048M -Djavax.net.ssl.keyStore=$HOME/.keystore -Djavax.net.ssl.keyStorePassword=changeit -Djavax.net.ssl.trustStore=$HOME/.keystore -Djavax.net.ssl.trustStorePassword=changeit"
    
    ./gradlew -Dgroovy.deploy.username=USER -Dgroovy.deploy.password=PASSWORD uploadArchives
  • remove the release branch and push the release tag

    Code Block
    git checkout <branch you released from>
    git branch -D release
    git push --tags
    
  • advance the version in your branch in gradle.properties (don't forget the -SNAPSHOT)
  • Update the download links: http://docs.codehaus.org/display/GROOVY/Download
  • Update the versions.json file in http://dist.groovy.codehaus.org/ through webdav to add a reference to the new version, so that GVM can automatically pickup new releases

    Code Block
    languagejavascript
        {
            "version": "2.1.1",
            "link": "http://dist.groovy.codehaus.org/distributions/groovy-binary-2.1.1.zip",
            "type": "final",
            "default": true
        }
  • Announce the release (mailing-list, Groovy blog, twitter, Google+...)
  • Update the release version information to the next snapshot

...

  • Update the pdf of the online documentation and commit it
  • create a temporary release branch and change to it

    Code Block
    git branch release
    git checkout release
    
  • Change the release version information

    No Format
    title"files"
      ./build.properties:
          groovyVersion = 1.8.9
          groovyBundleVersion = 1.8.9
      ./gradle.properties:
          groovyVersion = 1.8.9
          groovyBundleVersion = 1.8.9
      .pom.xml:
          <version>1.8.9</version>
    
  • commit the change
  • Tag with that new release

    Code Block
      git tag -a GROOVY_1_8_9 -m "tagging release of Groovy 1.8.9"
    
  • Build zips and jars using:

    Code Block
    ant clean dist
    

    You may need to set ANT_OPTS=-Xmx512m (or similar) if you run out of memory when running GroovyDoc.

  • Upload all the zips (but not jars) to the WebDAV distribution site (https://dav.codehaus.org/dist/groovy/distributions), for example, or through rsync if you're authorized:

    Code Block
    rsync -vlogDrzP ./target/dist/*.zip $USER@groovy.codehaus.org:/projects/groovy/dist/
    

    (just check they are in the right place afterwards; you may still need a webdav client to move them into the right subdirectories if something goes wrong)

  • Put m2 jars into right place for uptake into repo1 (see Publishing artifacts on Building Groovy from Sourcefor more details):

    Code Block
    ant -DskipTests=true deploy
    

    If releasing Groovy 1.6, also do this:

    Code Block
    ant -DskipTests=true -DforceRetro=true -Djdk14home=... deploy    // for jdk14 artifacts also
    

    (Note 1: there is currently some duplicated work done by 'ant dist' above and 'ant deploy' here which we need to eventually consolidate)
    Should there be a problem when uploading the jars, check that there is a file ~/.m2/settings.xml containing:

    Code Block
    XML
    XML
    <?xml version="1.0"?>
    <settings>
      <servers>
        <server>
          <id>codehaus.org</id>
          <username>USER</username>
          <password>PASSWORD</password>
        </server>
      </servers>
    </settings>
    

    Where USER and PASSWORD are replaced if the right values.

  • Upload the javadocs through rsync to the WebDAV web site (https://dav.codehaus.org/groovy/), for example:

    Code Block
    rsync -vlogDrzP ./target/html/* $USER@groovy.codehaus.org:/projects/groovy/web/
    
  • remove the release branch and push the release tag

    Code Block
    git checkout <branch you released from>
    git branch -D release
    git push --tags
    
  • advance the version in your branch in pom.xml, build.properties and gradle.properties (don't forget the -SNAPSHOT)
  • Update the download links: http://docs.codehaus.org/display/GROOVY/Download

  • Update the versions.json file in http://dist.groovy.codehaus.org/ through webdav to add a reference to the new version, so that GVM can automatically pickup new releases

    Code Block
    languagejavascript
        {
            "version": "2.1.1",
            "link": "http://dist.groovy.codehaus.org/distributions/groovy-binary-2.1.1.zip",
            "type": "final",
            "default": true
        }
  • Announce the release (mailing-list, Groovy blog, twitter, Google+...)
  • Update the release version information to the next snapshot

...