Make sure you are using a Java 7 JDK, otherwise Groovy would be compiled without invoke dynamic support |
perform a clean checkout into a new, empty directory
mkdir groovy-release cd groovy-release git clone git@github.com:groovy/groovy-core.git |
create a temporary release branch and change to it
cd groovy-core/ (optional) git checkout branch_to_release_from git checkout -b release |
Change the release version information
./gradle.properties:
groovyVersion = 2.0.0-rc-1
groovyBundleVersion = 2.0.0-rc-1
|
commit the change
git commit -a -m "RC-1 version change" |
Tag with that new release
git tag -a GROOVY_2_0_5 -m "tagging release of Groovy 2.0.5" |
./gradlew clean test |
If everything passes, proceed to the next step. Otherwise, release is not possible and problems should be fixed first.
./gradlew clean dist |
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:
rsync -vlogDrzP ./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 WebDAV web site (https://dav.codehaus.org/groovy/), for example:
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:
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):
./gradlew clean uploadArchives |
Or with the user / password passed as properties:
./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:
<?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:
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
git checkout <branch you released from> git branch -D release git push --tags |
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
{
"version": "2.1.1",
"link": "http://dist.groovy.codehaus.org/distributions/groovy-binary-2.1.1.zip",
"type": "final",
"default": true
} |
if the certificate needs an update see: https://docs.codehaus.org/display/HAUSMATES/Installing+a+new+CA+into+the+JDK
create a temporary release branch and change to it
git branch release git checkout release |
Change the release version information
./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>
|
Tag with that new release
git tag -a GROOVY_1_8_9 -m "tagging release of Groovy 1.8.9" |
Build zips and jars using:
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:
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):
ant -DskipTests=true deploy |
If releasing Groovy 1.6, also do this:
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:
<?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:
rsync -vlogDrzP ./target/html/* $USER@groovy.codehaus.org:/projects/groovy/web/ |
remove the release branch and push the release tag
git checkout <branch you released from> git branch -D release git push --tags |
Update the download links: http://docs.codehaus.org/display/GROOVY/Download
if the certificate needs an update see: https://docs.codehaus.org/display/HAUSMATES/Installing+a+new+CA+into+the+JDK