1. Contributing Back to Grails
GR8CONF US
July 31st, 2012
Minneapolis, MN
Bobby Warner
2. Who Am I
• Blog
• http://bobbywarner.com
• Social Networks
• @bobbywarner
• https://www.facebook.com/bobbywarner
• http://www.linkedin.com/in/bobbywarner
• http://bobbywarner.com/googleplus
4. Ways to Contribute
• Send Emails to Mailing List
• Write Blog Posts
• File Bug Reports
• Create Plugins
• Update Documentation
• Write Code
5. Question #2
• Why should I spend time contributing to
open-source software?
6. Benefits of Contributing
• Learn more about the technology
• Gain recognition in the community
• Help evolve the framework
• Customize to meet your needs
• Excuse to learn Git and GitHub
9. JIRA
• Create new feature requests
• Review old issues
• Vote to help set priority with core team
• Add comments to existing issues
• Submit bug reports
• Provide reproducible example as sample app
• Include tests and bug report
10. JIRA GRAILS Components
• Build System
• Documentation
• Data Binding
• URL Mappings
• View Technologies
• Persistence
• Scaffolding
• Plus many more...
13. GitHub Grails Core Branches
• Open a pull request on any branch
• master (currently for 2.2)
• 2.1.x
• 2.0.x
• Grails no longer uses “cherry-pick” for 2.1+
• 2.1 branch merged into master periodically
17. Setup Environment
• Step 1: GitHub
• Step 2: Git
• Step 3: Gradle
• Step 4: Clone repo and configure
• Step 5: Test it out
• Step 6: IDE
18. GitHub
• Create account if you don’t already have one
• https://github.com/signup/free
• Fork the repo to your GitHub account
• https://help.github.com/articles/fork-a-repo
20. Gradle
• Grails is built with Gradle
• Setup the environment variable to configure JVM args
• export GRADLE_OPTS="-server -Xmx768M -Xms768M -XX:PermSize=256m"
22. Test It Out
• cd grails-core
• ./gradlew install
• cd ../grails-doc
• ./gradlew docs
• ./gradlew docs -Dgrails.home=../grails-core)
• ./gradlew publishGuide_en
• Set your $GRAILS_HOME to the grails-core directory
• grails create-app newapp (using the Grails we just built!)
23. IDE
• Eclipse (SpringSource Tool Suite)
• ./gradlew eclipse
• Intellij IDEA
• ./gradlew idea
24. Code Change
• Step 1: Create a JIRA for the change
• Step 2: Create a Git branch and code
• Step 3: Run tests and / or build as needed
• Step 4: Submit pull request and update JIRA
• Step 5: Clean up after merge
30. Live Demo
• Core update for GRAILS-9052
• Data Mapping update for Mongo
• Doc update for Java EE Containers
31. Next Steps
• User group hackathons
• Code walkthrough screencast(s)
32. Closing
• Thank you for attending this presentation!
• Hopefully you create some pull requests!
• Thank you GR8CONF organizers and sponsors!
• Additional Resources
• http://www.bobbywarner.com/2011/06/20/getting-started-with-grails/
• http://grails.org/screencast/show/21
• http://www.slideshare.net/gr8conf/contributing-to-grails