SlideShare a Scribd company logo
Contributing Back to Grails
         GR8CONF US
          July 31st, 2012
         Minneapolis, MN

          Bobby Warner
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
Question #1



• How do I contribute to open-source
  software?
Ways to Contribute

•   Send Emails to Mailing List

•   Write Blog Posts

•   File Bug Reports

•   Create Plugins

•   Update Documentation

•   Write Code
Question #2



• Why should I spend time contributing to
  open-source software?
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
Question #3




• How do I contribute to GRAILS?
Dev Tools

•   Email

    •   dev@grails.codehaus.org

•   JIRA

    •   http://jira.grails.org

•   GitHub

    •   https://github.com/grails

•   Hudson

    •   http://hudson.grails.org
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
JIRA GRAILS Components

•   Build System

•   Documentation

•   Data Binding

•   URL Mappings

•   View Technologies

•   Persistence

•   Scaffolding

•   Plus many more...
GitHub
GitHub Repos

•   grails/grails-core

•   grails/grails-doc

    •   pledbrook/grails-doc (request commit access)

•   grails/grails-howtos (request commit access)

•   springsource/grails-data-mapping

•   grails-samples

•   gpc

•   grails-plugins
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
GitHub Graphs
Hudson
Tasks



•   Setup Environment

•   Code Change
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
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
Git



•   git config --global user.name "Your Name Here"

•   git config --global user.email "your_email@youremail.com"

•   Git aliases in ~/.gitconfig

    •   https://gist.github.com/1634361
Gradle



•   Grails is built with Gradle

•   Setup the environment variable to configure JVM args
    •   export GRADLE_OPTS="-server -Xmx768M -Xms768M -XX:PermSize=256m"
Clone Repo and Configure
•   git clone git@github.com:youraccount/grails-core.git

•   git clone git@github.com:youraccount/grails-doc.git

•   cd grails-core

•   git remote add upstream git://github.com/grails/grails-core.git

•   git fetch upstream

•   cd ../grails-doc

•   git remote add upstream git://github.com/grails/grails-doc.git

•   git fetch upstream
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!)
IDE


•   Eclipse (SpringSource Tool Suite)

    •   ./gradlew eclipse

•   Intellij IDEA

    •   ./gradlew idea
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
Create a JIRA
Branch and Code
Run Tests and Build
•   ./gradlew test

    •   ./gradlew grails-test-suite-persistence:test

        •   ./gradlew g-t-s-p:test -Dtest.single=MappingDslTest

    •   ./gradlew grails-test-suite-uber:test

        •   ./gradlew g-t-s-u:test -Dtest.single=Log4jDslTests

    •   ./gradlew grails-test-suite-web:test

        •   ./gradlew g-t-s-w:test -Dtest.single=DataBindingTests

    •   ./gradlew test -x :g-t-s-p:test

•   ./gradlew install
Create Pull Request
Clean Up
Live Demo



• Core update for GRAILS-9052
• Data Mapping update for Mongo
• Doc update for Java EE Containers
Next Steps



•   User group hackathons

•   Code walkthrough screencast(s)
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
Q &A




• Are there any questions?

More Related Content

What's hot (20)

PPTX
Gerrit + Jenkins = Continuous Delivery For Big Data
Stefano Galarraga
 
PDF
Getting Started with GitHub
Michael Redlich
 
PDF
Django Third party packages
Andy Dai
 
PPTX
Introduction to Github for Team Project
Akhter Al Amin
 
PPTX
Github in Action
Morten Christensen
 
PPTX
Introduction to git and Github
Wycliff1
 
PDF
Github Case Study By Amil Ali
AmilAli1
 
PDF
GitHub Actions with Node.js
Stefan Stölzle
 
PPTX
CICD Pipeline Using Github Actions
Kumar Shìvam
 
PPTX
CI/CD with GitHub Actions
Swaminathan Vetri
 
PDF
Git, GitHub and Open Source
Lorna Mitchell
 
PPTX
Github PowerPoint Final
Elizabeth Walden
 
PPTX
Hacking Git and GitHub
Edureka!
 
PDF
Collaborating on GitHub for Open Source Documentation
Anne Gentle
 
PPTX
GitHub Actions - Melbourne UG
Natraj Yegnaraman
 
PDF
Introduction to GitHub
Nishan Bose
 
PDF
COSCUP 開源工作坊:Git workflows
Carl Su
 
PDF
Difference between gitlab vs github vs bitbucket
Acodez IT Solutions
 
PDF
GitHub
ThomasLai27
 
PPTX
Github
piyush khadse
 
Gerrit + Jenkins = Continuous Delivery For Big Data
Stefano Galarraga
 
Getting Started with GitHub
Michael Redlich
 
Django Third party packages
Andy Dai
 
Introduction to Github for Team Project
Akhter Al Amin
 
Github in Action
Morten Christensen
 
Introduction to git and Github
Wycliff1
 
Github Case Study By Amil Ali
AmilAli1
 
GitHub Actions with Node.js
Stefan Stölzle
 
CICD Pipeline Using Github Actions
Kumar Shìvam
 
CI/CD with GitHub Actions
Swaminathan Vetri
 
Git, GitHub and Open Source
Lorna Mitchell
 
Github PowerPoint Final
Elizabeth Walden
 
Hacking Git and GitHub
Edureka!
 
Collaborating on GitHub for Open Source Documentation
Anne Gentle
 
GitHub Actions - Melbourne UG
Natraj Yegnaraman
 
Introduction to GitHub
Nishan Bose
 
COSCUP 開源工作坊:Git workflows
Carl Su
 
Difference between gitlab vs github vs bitbucket
Acodez IT Solutions
 
GitHub
ThomasLai27
 

Viewers also liked (7)

PDF
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
mfrancis
 
PPTX
Trabajo por grupos
milagmk20
 
ZIP
Collaborative Development for the future of Mobile
Andrew Savory
 
DOC
Balcony risks
mollyapple
 
PPTX
Agua
Antonio Yo
 
PDF
TOGAF 9 Training Brochure - Syzygal
Syzygal
 
PDF
IW14 Session: webMethods World
Software AG
 
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
mfrancis
 
Trabajo por grupos
milagmk20
 
Collaborative Development for the future of Mobile
Andrew Savory
 
Balcony risks
mollyapple
 
TOGAF 9 Training Brochure - Syzygal
Syzygal
 
IW14 Session: webMethods World
Software AG
 
Ad

Similar to GR8CONF Contributing Back To Grails (20)

PDF
The Basics of Open Source Collaboration With Git and GitHub
BigBlueHat
 
PPTX
GitHub_Sharing_Session_1_GitHub_Sharing_Session.pptx
WaiYanKyaw28
 
PDF
Git for folk who like GUIs
Tim Osborn
 
PPTX
Android Studio 3 - Dependency-Aware Build Variants and Product Flavors
Stefan Martynkiw
 
PPTX
Intro to git and git hub
ShubhamSingh94916
 
PDF
Intro to Git: a hands-on workshop
Cisco DevNet
 
PDF
Spring Projects Infrastructure
Roy Clarkson
 
KEY
S2GX 2012 - Spring Projects Infrastructure
Gunnar Hillert
 
PPT
Freelancer Weapons of mass productivity
Gregg Coppen
 
PPT
Git installation and configuration
Kishor Kumar
 
PPTX
GitHub_For_Beginners_Presentationss.pptx
ramyagirish78
 
PPTX
Learn Git - For Beginners and Intermediate levels
Gorav Singal
 
PDF
Git workshop
Al Sayed Gamal
 
PPT
Git is a distributed version control system .
HELLOWorld889594
 
PDF
Android gradle-build-system-overview
Kevin He
 
PPTX
Que nos espera a los ALM Dudes para el 2013?
Bruno Capuano
 
PPT
GIT-FirstPart.ppt
ssusered2ec2
 
PDF
Grails 3.0 Preview
graemerocher
 
PPTX
Testing in GO
song jiayang
 
PPTX
tech winter break workshop on git &git hub.pptx
ashishraulin
 
The Basics of Open Source Collaboration With Git and GitHub
BigBlueHat
 
GitHub_Sharing_Session_1_GitHub_Sharing_Session.pptx
WaiYanKyaw28
 
Git for folk who like GUIs
Tim Osborn
 
Android Studio 3 - Dependency-Aware Build Variants and Product Flavors
Stefan Martynkiw
 
Intro to git and git hub
ShubhamSingh94916
 
Intro to Git: a hands-on workshop
Cisco DevNet
 
Spring Projects Infrastructure
Roy Clarkson
 
S2GX 2012 - Spring Projects Infrastructure
Gunnar Hillert
 
Freelancer Weapons of mass productivity
Gregg Coppen
 
Git installation and configuration
Kishor Kumar
 
GitHub_For_Beginners_Presentationss.pptx
ramyagirish78
 
Learn Git - For Beginners and Intermediate levels
Gorav Singal
 
Git workshop
Al Sayed Gamal
 
Git is a distributed version control system .
HELLOWorld889594
 
Android gradle-build-system-overview
Kevin He
 
Que nos espera a los ALM Dudes para el 2013?
Bruno Capuano
 
GIT-FirstPart.ppt
ssusered2ec2
 
Grails 3.0 Preview
graemerocher
 
Testing in GO
song jiayang
 
tech winter break workshop on git &git hub.pptx
ashishraulin
 
Ad

Recently uploaded (20)

PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
July Patch Tuesday
Ivanti
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
PDF
Predicting the unpredictable: re-engineering recommendation algorithms for fr...
Speck&Tech
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
NewMind AI Journal - Weekly Chronicles - July'25 Week II
NewMind AI
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
TrustArc Webinar - Data Privacy Trends 2025: Mid-Year Insights & Program Stra...
TrustArc
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
July Patch Tuesday
Ivanti
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
Predicting the unpredictable: re-engineering recommendation algorithms for fr...
Speck&Tech
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
NewMind AI Journal - Weekly Chronicles - July'25 Week II
NewMind AI
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
TrustArc Webinar - Data Privacy Trends 2025: Mid-Year Insights & Program Stra...
TrustArc
 

GR8CONF Contributing Back To Grails

  • 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
  • 3. Question #1 • How do I contribute to open-source software?
  • 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
  • 7. Question #3 • How do I contribute to GRAILS?
  • 8. Dev Tools • Email • [email protected] • JIRA • http://jira.grails.org • GitHub • https://github.com/grails • Hudson • http://hudson.grails.org
  • 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...
  • 12. GitHub Repos • grails/grails-core • grails/grails-doc • pledbrook/grails-doc (request commit access) • grails/grails-howtos (request commit access) • springsource/grails-data-mapping • grails-samples • gpc • grails-plugins
  • 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
  • 16. Tasks • Setup Environment • Code Change
  • 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
  • 19. Git • git config --global user.name "Your Name Here" • git config --global user.email "[email protected]" • Git aliases in ~/.gitconfig • https://gist.github.com/1634361
  • 20. Gradle • Grails is built with Gradle • Setup the environment variable to configure JVM args • export GRADLE_OPTS="-server -Xmx768M -Xms768M -XX:PermSize=256m"
  • 21. Clone Repo and Configure • git clone [email protected]:youraccount/grails-core.git • git clone [email protected]:youraccount/grails-doc.git • cd grails-core • git remote add upstream git://github.com/grails/grails-core.git • git fetch upstream • cd ../grails-doc • git remote add upstream git://github.com/grails/grails-doc.git • git fetch upstream
  • 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
  • 27. Run Tests and Build • ./gradlew test • ./gradlew grails-test-suite-persistence:test • ./gradlew g-t-s-p:test -Dtest.single=MappingDslTest • ./gradlew grails-test-suite-uber:test • ./gradlew g-t-s-u:test -Dtest.single=Log4jDslTests • ./gradlew grails-test-suite-web:test • ./gradlew g-t-s-w:test -Dtest.single=DataBindingTests • ./gradlew test -x :g-t-s-p:test • ./gradlew install
  • 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
  • 33. Q &A • Are there any questions?

Editor's Notes