There are many ways you can help the Grails development team improve The Grails Framework. And all help is welcome to make a difference, by:
- helping other users on StackOverflow
- contributing ideas to the mailing-lists
- reporting issues you encounter in our bug tracker
- documenting various aspects of the language or its APIs
- improving this website
- covering the code base with more tests to avoid future regressions,
- and of course, by contributing bug fixes or new features
Discussing on the mailing-lists
If you want to discuss a new feature, share interesting findings, and more, then the mailing-lists are the place to go to to start a conversation with the Grails developers and other Grails users. For general usage questions, posting a question on StackOverflow is the way to go.
Reporting issues
The Grails project uses Github issues to report and track issues, feature enhancements, and new features. Be sure to be signed-up and logged-in, as explained below, before proceeding.
Improving the documentation
The documentation of The Grails Framework comes in various forms:
- the reference documentation covering the language specification, the user guides, getting started, and more.
- the GroovyDoc APIs documenting the classes of the Grails code base
- this website
Contributing to this website is fairly easy, if you have a Github account already, as you can click on the Improve this doc buttons that you can see on all the pages of this website. So don't hesitate to help us improve it, fix typos, broken language, clarify complicated sections, add new material, etc.
Please check the following section for more information on how to contribute to our codebase.
Contributing code
If you know the area you want to contribute to, this is great, but if you are looking to make an initial contribution just raise your hand on the Grails developer mailing-list to tell us about your desire to work on a particular problem.
For more complicated tasks, the best approach is also to bring that to the attention of the Grails developers, so they can give you some guidance on how best to tackle a particular problem, discuss implementation ideas and the semantics or scope of the proposed change.
Cloning the code base
To work on the Grails code base, you should be proficient enough in git and you should ideally have an account on Github to be able to create pull requests with your changes.
If you have git installed on your machine, you should be able to clone the Grails repository with the following command:
git clone git://github.com/grails/grails-core.git
Make sure you configure Git appropriately with the same email that you registered with on Github:
git config --global user.name "YOUR NAME"
git config --global user.email "YOUR EMAIL"
You can verify these are configured appropriately by running:
git config --list
Working on the code base
If you are working with the IntelliJ IDEA development environment then you can import the project using the Intellij Gradle Tooling ( "File / Import Project" and select the "build.gradle" file).
To get a local development version of Grails working first run the install task
./gradlew install
Then install SDKman which is the quickest way to setup a development environment.
Once you have SDKman installed point SDKman to your local development version of Grails:
sdk install grails dev /path/to/checkout
sdk use grails dev
Now the "grails" command will be using your development version!
The most important command you will have to run before sending your changes is the test command:
./gradlew test
For a successful contribution, all tests should be green!
Creating a pull request
Once you are satisfied with your changes:
- commit your changes in your local branch
- push your changes to your remote branch on Github
- send us a pull requests