Versions Compared


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

Groovy sources

The sources of the Groovy project are hosted on Codehaus Git infrastructure.

Additionally, the sources are mirrored on GitHub:
If you're interested in contributing, you can send us GitHub pull requests, or submit patches through JIRA. Please see our contribution page for more.

You can also get the sources for each releases in the form of a zip archive. Please head to our download section to download those source packages.

Checkout the code

First of all, you'll need to have Git installed on your machine, whether through the support of your IDE, or as a command-line tool.

If you want to checkout the source code of Groovy, there are two different URLs you can use:

  • if you're a Groovy developer, please use: ssh://
  • otherwise, use the anonymous access: git://

From the command-line, if you're a Groovy developer, you can use the command:

Code Block
git clone ssh://

Or for anonymous access:

Code Block
git clone git://

You can checkout different branches, in particular:

  • master is the latest Groovy branch, for the upcoming major version
  • GROOVY_1_8_X is the branch of the curret Groovy 1.8.x versions (current stable version)
  • GROOVY_1_7_X is the branch for the previous official version of Groovy 1.7.x

For fetching a branch the first time, simply use:

Code Block
git fetch origin

To checkout a particular branch:

Code Block
git checkout master
git checkout GROOVY_1_8_X
git checkout GROOVY_1_7_X

Developers: Make sure your SSH information is up-to-date in Xircles and that your SSH key is available to your command-line client or IDE integration.
Please also make sure that you configured your email and name properly, by issueing the following commands:

Code Block
git config --global "Firstname Lastname"
git config --global ""

Committing your changes (developers)

Use the commit command:

Code Block
git commit -m "Your commit message"

Picking commits from another branch

Say you have committed your changes on master and want to merge a particular comming on GROOVY_1_8_X, you can procede as follows:

Code Block
git checkout master
git commit -m "Fixed GROOVY-1234"
// this would return a12bc3... as commit number

git checkout GROOVY_1_8_X
git cherry-pick a12bc3

Staying up-to-date

To see what's the status of your source tree, you can call:

Code Block
git status

And if you want to see all the latest commits that you have locally, you can do:

Code Block
git log

To retrieve the changes that have been pushed to the server, you can do:

Code Block
git pull

Of more explicitely:

Code Block
git pull origin master

Pushing your changes upstream

The various commits you've made are done locally, now is the time to share them with the world by pushing your changes:

Code Block
git push
git push origin master

If you're a Groovy despot, you can also push your changes to github. But for that, first, you'll have to have configured an additional remote with:

Code Block
git remote add github

Then you can push the changes back to GitHub as well:

Code Block
git push github master

Pushing a local branch to the remote repository

To push a local branch to the Codehaus Git repository or on the GitHub mirror, you can do the following:

Code Block
git push origin myLocalBranch
git push github myLocalBranch

Merging pull requests from GitHub

Contributors might bring their contributions in the form of "pull requests" on our GitHub mirror.
Groovy despots can merge the pull requests on GitHub through the web interface by following this proposed workflow:

Code Block
// create a new branch to test the pull request
git checkout -b test_foopatch_onto_1_8
// now you are on branch test_foopatch_onto_1_8
// let's add the git branch of the contributor as a remote
git remote add someperson git://
// fetch the particular commits
git fetch someperson the_branch_with_the_changes
// merge it in our test branch
git merge FETCH_HEAD
// test the changes
gradle test or gradle test
// if all tests pass, then we can safely use the web based merge UI of Github

Additional links

If you want to learn more about Git, there are many available resources online, such as: