Instructions (for 2.0+ releases)
...
| Info | ||
|---|---|---|
| ||
Make sure you are using a Java 7 JDK, otherwise Groovy would be compiled without invoke dynamic support |
- 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-1commit 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_0_RC_15 -m "tagging release of Groovy 2.0.0 rc 15"
- Test the release
| Code Block |
|---|
./gradlew clean test |
...
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/distdistributions/*.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:
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 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 language bash 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/DownloadAnnounce the release
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 language javascript { "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-beta-5 groovyBundleVersion = 1.8.9-beta-5 ./gradle.properties: groovyVersion = 1.8.9-beta-5 groovyBundleVersion = 1.8.9-beta-5 .pom.xml: <version>1.9-beta-5<8.9</version>- commit the change
Tag with that new release
Code Block git tag -a GROOVY_1_8_9_BETA_5 -m "tagging release of Groovy 1.8.9 beta 5"
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 runningGroovyDoc.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 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
- Announce the release (mailing-list, Groovy blog, twitter, Google+...)
- Update the release version information to the next snapshot
...