Skip to content
Skip to breadcrumbs
Skip to header menu
Skip to action menu
Skip to quick search
Quick Search
Browse
Pages
Blog
Labels
Attachments
Mail
Advanced
What’s New
Space Directory
Feed Builder
Keyboard Shortcuts
Confluence Gadgets
Log In
Sign Up
Dashboard
Groovy
Copy Page
You are not logged in. Any changes you make will be marked as
anonymous
. You may want to
Log In
if you already have an account. You can also
Sign Up
for a new account.
This page is being edited by
.
Paragraph
Paragraph
Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
Preformatted
Quote
Bold
Italic
Underline
More colours
Strikethrough
Subscript
Superscript
Monospace
Clear Formatting
Bullet list
Numbered list
Outdent
Indent
Align left
Align center
Align right
Link
Table
Insert
Insert Content
Image
Link
Attachment
Symbol
Emoticon
Wiki Markup
Horizontal rule
tinymce.confluence.insert_menu.macro_desc
Info
JIRA Issue
Status
Gallery
Tasklist
Table of Contents
Other Macros
Page Layout
No Layout
Two column (simple)
Two column (simple, left sidebar)
Two column (simple, right sidebar)
Three column (simple)
Two column
Two column (left sidebar)
Two column (right sidebar)
Three column
Three column (left and right sidebars)
Undo
Redo
Find/Replace
Keyboard Shortcuts Help
<h2>Instructions (for 2.0+ releases)</h2><table class="wysiwyg-macro" data-macro-name="info" data-macro-parameters="title=JDK 7 mandatory" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2luZm86dGl0bGU9SkRLIDcgbWFuZGF0b3J5fQ&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="RICH_TEXT"><tr><td class="wysiwyg-macro-body"><p>Make sure you are <strong>using a Java 7 JDK</strong>, otherwise Groovy would be compiled without invoke dynamic support</p></td></tr></table><ul><li>Update the pdf of the online documentation and commit it</li><li><p>perform a clean checkout into a new, empty directory</p><table class="wysiwyg-macro" data-macro-name="code" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGV9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre>mkdir groovy-release cd groovy-release git clone git@github.com:groovy/groovy-core.git</pre></td></tr></table></li><li><p>create a temporary release branch and change to it</p><table class="wysiwyg-macro" data-macro-name="code" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGV9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre>cd groovy-core/ (optional) git checkout branch_to_release_from git checkout -b release </pre></td></tr></table></li><li><p>Change the release version information</p><table class="wysiwyg-macro" data-macro-name="code" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGV9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre> ./gradle.properties: groovyVersion = 2.0.0-rc-1 groovyBundleVersion = 2.0.0-rc-1 </pre></td></tr></table></li><li><p>commit the change</p><table class="wysiwyg-macro" data-macro-name="code" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGV9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre> git commit -a -m "RC-1 version change" </pre></td></tr></table></li><li><p>Tag with that new release</p><table class="wysiwyg-macro" data-macro-name="code" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGV9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre> git tag -a GROOVY_2_0_5 -m "tagging release of Groovy 2.0.5" </pre></td></tr></table></li></ul><ul><li>Test the release</li></ul><table class="wysiwyg-macro" data-macro-name="code" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGV9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre>./gradlew clean test</pre></td></tr></table><p>If everything passes, proceed to the next step. Otherwise, release is not possible and problems should be fixed first.</p><ul><li>Build zips and jars using:</li></ul><table class="wysiwyg-macro" data-macro-name="code" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGV9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre>./gradlew clean dist</pre></td></tr></table><p> </p><ul><li><p>Upload all the zips (but not jars) to the WebDAV distribution site (<a href="https://dav.codehaus.org/dist/groovy/distributions">https://dav.codehaus.org/dist/groovy/distributions</a>), for example, or through rsync if you're authorized:</p><table class="wysiwyg-macro" data-macro-name="code" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGV9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre>rsync -vlogDrzP ./target/distributions/*.zip $USER@groovy.codehaus.org:/projects/groovy/dist/ </pre></td></tr></table><p>(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)</p></li><li><p>Upload the javadocs through rsync to the WebDAV web site (<a href="https://dav.codehaus.org/groovy/">https://dav.codehaus.org/groovy/</a>), for example:</p><table class="wysiwyg-macro" data-macro-name="code" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGV9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre>rsync -vlogDrzP ./target/html/* $USER@groovy.codehaus.org:/projects/groovy/web/</pre></td></tr></table></li><li><p>Put m2 jars into right place for uptake into repo1 (see <em>Publishing artifacts</em> on <a class="confluence-link" href="/display/GROOVY/Building+Groovy+from+Source" data-linked-resource-id="77733" data-linked-resource-type="page" data-linked-resource-default-alias="Building Groovy from Source" data-base-url="http://docs.codehaus.org">Building Groovy from Source</a>for more details):</p><p>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:</p><table class="wysiwyg-macro" data-macro-name="code" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGV9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre>groovy.deploy.username groovy.deploy.password</pre></td></tr></table><p>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):</p><table class="wysiwyg-macro" data-macro-name="code" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGV9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre>./gradlew clean uploadArchives </pre></td></tr></table><p>Or with the user / password passed as properties:</p><table class="wysiwyg-macro" data-macro-name="code" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGV9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre>./gradlew -Dgroovy.deploy.username=USER -Dgroovy.deploy.password=PASSWORD clean uploadArchives</pre></td></tr></table><p>Should there be a problem when uploading the jars, check that there is a file ~/.m2/settings.xml containing:</p><table class="wysiwyg-macro" data-macro-name="code" data-macro-default-parameter="XML" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGU6WE1MfQ&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre><?xml version="1.0"?> <settings> <servers> <server> <id>codehaus.org</id> <username>USER</username> <password>PASSWORD</password> </server> </servers> </settings> </pre></td></tr></table><p>Where USER and PASSWORD are replaced if the right values.</p></li><li><p>If you are affected by authentication issues, due to the <a href="https://docs.codehaus.org/display/HAUSMATES/Installing+a+new+CA+into+the+JDK">odd certificates used by Codehaus</a>, 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:</p><table class="wysiwyg-macro" data-macro-name="code" data-macro-parameters="language=bash" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGU6bGFuZ3VhZ2U9YmFzaH0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre>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</pre></td></tr></table></li></ul><ul><li><p>remove the release branch and push the release tag</p><table class="wysiwyg-macro" data-macro-name="code" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGV9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre>git checkout <branch you released from> git branch -D release git push --tags </pre></td></tr></table></li><li>advance the version in your branch in gradle.properties (don't forget the -SNAPSHOT)</li><li>Update the download links: <a href="http://docs.codehaus.org/display/GROOVY/Download">http://docs.codehaus.org/display/GROOVY/Download</a></li><li><p>Update the versions.json file in <a href="http://dist.groovy.codehaus.org/">http://dist.groovy.codehaus.org/</a> through webdav to add a reference to the new version, so that GVM can automatically pickup new releases</p><table class="wysiwyg-macro" data-macro-name="code" data-macro-parameters="language=javascript" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGU6bGFuZ3VhZ2U9amF2YXNjcmlwdH0&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre> { "version": "2.1.1", "link": "http://dist.groovy.codehaus.org/distributions/groovy-binary-2.1.1.zip", "type": "final", "default": true }</pre></td></tr></table></li><li>Announce the release (mailing-list, Groovy blog, twitter, Google+...)</li><li>Update the release version information to the next snapshot</li></ul><p>if the certificate needs an update see: <a href="https://docs.codehaus.org/display/HAUSMATES/Installing+a+new+CA+into+the+JDK">https://docs.codehaus.org/display/HAUSMATES/Installing+a+new+CA+into+the+JDK</a></p><h2>Instructions (for pre-2.0 releases)</h2><ul><li>Update the pdf of the online documentation and commit it</li><li><p>create a temporary release branch and change to it</p><table class="wysiwyg-macro" data-macro-name="code" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGV9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre>git branch release git checkout release </pre></td></tr></table></li><li><p>Change the release version information</p><table class="wysiwyg-macro" data-macro-name="noformat" data-macro-parameters="title="files"" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e25vZm9ybWF0OnRpdGxlPSJmaWxlcyJ9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre> ./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> </pre></td></tr></table></li><li>commit the change</li><li><p>Tag with that new release</p><table class="wysiwyg-macro" data-macro-name="code" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGV9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre> git tag -a GROOVY_1_8_9 -m "tagging release of Groovy 1.8.9" </pre></td></tr></table></li><li><p>Build zips and jars using:</p><table class="wysiwyg-macro" data-macro-name="code" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGV9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre>ant clean dist </pre></td></tr></table><p>You may need to set <code>ANT_OPTS=-Xmx512m</code> (or similar) if you run out of memory when running <code>GroovyDoc</code>.</p></li><li><p>Upload all the zips (but not jars) to the WebDAV distribution site (<a href="https://dav.codehaus.org/dist/groovy/distributions">https://dav.codehaus.org/dist/groovy/distributions</a>), for example, or through rsync if you're authorized:</p><table class="wysiwyg-macro" data-macro-name="code" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGV9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre>rsync -vlogDrzP ./target/dist/*.zip $USER@groovy.codehaus.org:/projects/groovy/dist/ </pre></td></tr></table><p>(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)</p></li><li><p>Put m2 jars into right place for uptake into repo1 (see <em>Publishing artifacts</em> on <a class="confluence-link" href="/display/GROOVY/Building+Groovy+from+Source" data-linked-resource-id="77733" data-linked-resource-type="page" data-linked-resource-default-alias="Building Groovy from Source" data-base-url="http://docs.codehaus.org">Building Groovy from Source</a>for more details):</p><table class="wysiwyg-macro" data-macro-name="code" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGV9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre>ant -DskipTests=true deploy </pre></td></tr></table><p>If releasing Groovy 1.6, also do this:</p><table class="wysiwyg-macro" data-macro-name="code" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGV9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre>ant -DskipTests=true -DforceRetro=true -Djdk14home=... deploy // for jdk14 artifacts also </pre></td></tr></table><p>(Note 1: there is currently some duplicated work done by 'ant dist' above and 'ant deploy' here which we need to eventually consolidate)<br />Should there be a problem when uploading the jars, check that there is a file ~/.m2/settings.xml containing:</p><table class="wysiwyg-macro" data-macro-name="code" data-macro-default-parameter="XML" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGU6WE1MfQ&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre><?xml version="1.0"?> <settings> <servers> <server> <id>codehaus.org</id> <username>USER</username> <password>PASSWORD</password> </server> </servers> </settings> </pre></td></tr></table><p>Where USER and PASSWORD are replaced if the right values.</p></li><li><p>Upload the javadocs through rsync to the WebDAV web site (<a href="https://dav.codehaus.org/groovy/">https://dav.codehaus.org/groovy/</a>), for example:</p><table class="wysiwyg-macro" data-macro-name="code" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGV9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre>rsync -vlogDrzP ./target/html/* $USER@groovy.codehaus.org:/projects/groovy/web/ </pre></td></tr></table></li><li><p>remove the release branch and push the release tag</p><table class="wysiwyg-macro" data-macro-name="code" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGV9&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre>git checkout <branch you released from> git branch -D release git push --tags </pre></td></tr></table></li><li>advance the version in your branch in pom.xml, build.properties and gradle.properties (don't forget the -SNAPSHOT)</li><li><p>Update the download links: <a href="http://docs.codehaus.org/display/GROOVY/Download">http://docs.codehaus.org/display/GROOVY/Download</a></p></li><li>Announce the release (mailing-list, Groovy blog, twitter, Google+...)</li><li>Update the release version information to the next snapshot</li></ul><p>if the certificate needs an update see: <a href="https://docs.codehaus.org/display/HAUSMATES/Installing+a+new+CA+into+the+JDK">https://docs.codehaus.org/display/HAUSMATES/Installing+a+new+CA+into+the+JDK</a></p>
Please type the word appearing in the picture.
Attachments
Labels
Location
Watch this page
< Edit
Preview >
Loading…
Save
Cancel
Next hint
search
attachments
weblink
advanced