SlideShare a Scribd company logo
Contributing to Grails
Peter Ledbrook - VMware
t: @pledbrook
e: pledbrook@vmware.com




© 2012 VMware, Inc. All rights reserved.
Why contribute?
Giving back feels good!
Expanded                       Easier on-
user base                      boarding




            Self interest

                Improved
              dev experience
“Many hands make
   light work”
Where to start?




                  6
dev@grails.codehaus.org

Discuss the direction and future of Grails!
JIRA

• Raise bugs, improvements, new features
  – Project leads set priority
• Vote!
  – Affects prioritisation
• Comment
  – Make your voice heard
• Submit reproducible examples
  – Preferably with automated tests
  – These can be incorporated in Grails functional test suite



                http://jira.grails.org/
                                                                8
JIRA




       9
JIRA




       10
Reviewing old issues




                       11
Reviewing old issues




                 Add recommendation, e.g. close
                 the issue, and why




                                                  12
Want to contribute?




                Search for Resolution: unresolved,
                Label: contribute
                                                 13
Useful components in project GRAILS

•   Documentation
•   Data binding
•   URL mappings
•   View technologies
•   Persistence
•   Scaffolding
•   Request new ones in ADMIN project




                                        14
Help your fellow man


              • http://grails.org/doc/latest/
User Guide    • https://github.com/grails/grails-doc



              • http://grails.github.com/grails-howtos/
HOWTOs        • https://github.com/grails/grails-howtos




                                                       15
Contributing to documentation

• Add missing info
• Correct misinformation
• Clarify!
  – Don’t be afraid to rewrite or restructure
• Develop HOWTOs
  – Single page documents
• User guide and HOWTOs:
  – use gdoc wiki syntax
  – support translations




                                                16
Contributing to user guide
Either
    pledbrook/grails-doc    Sync        grails/grails-doc
          (master)                           (2.0.x)




               Push
                           Anyone can ask for commit
                           rights via dev mailing list



         You
                                                            17
Contributing to user guide
Or
                             Pull request
     <username>/grails-doc                             grails/grails-doc
           (patch-n)                                     (<branch>)




                 Push                   Currently <branch> one of:
                                            • master
                                            • 2.1.x
                                            • 2.0.x

           You
                                                                           18
Contributing to HOWTOs



    grails/grails-howtos   Hudson
                                    http://grails.github.com/grails-howtos
          (master)




               Push
                           Anyone can ask for commit
                           rights via dev mailing list



        You
                                                                     19
Website (http://grails.org)

•   Grails application
•   Used by you!
•   Currently undergoing facelift
•   Open source
    – https://github.com/grails-samples/grails-website
• Works with Release plugin
    – For publishing public plugins
• Used for plugin resolution
    – http://plugins.grails.org/




                                                         20
Public plugins

• Hosted on Grails Central Plugin Repository
• Requires permission per plugin to publish
  – Currently ask on dev mailing list
  – Website will have plugin submission form
  – Source code must be available for review
• For successful proposal
  – Correct metadata
  – Good description
  – Documentation




                                               21
Grails core



     git clone https://github.com/grails/grails-core



                    ./gradlew install



      export GRAILS_HOME=<path>/grails-core



                                                       22
Grails core

  UrlMappingsFilter            URL mappings

 GrailsDomainBinder            Domain class mapping

 GrailsDataBinder              Data binding

 GrailsDispatcherServlet       Request handling

 AbstractGrailsPluginManager
 DefaultGrailsPluginManager    Plugin loading and
                               initialisation
 DefaultGrailsPlugin

                                                    23
Grails core

  scripts/*                     Build commands

 GrailsScriptRunner             ‘grails’ command starter


 grails.build.logging.GrailsConsole
 InteractiveMode                 Interactive console




                                                       24
Summary

• PaaS is the application platform for the Cloud era
• PaaS will change the way you write apps
  – Design for horizontal scalability
  – Account for ephemeral file system
  – Rich set of services
  – Go polyglot!
• Tools & libraries are important
  – Spring for the win!
• Can use Redis in place of RabbitMQ for some patterns




                                                         25
Grails core

• Start with pull requests...
• ...become a Grails committer!




                                  26
Summary

•   Many ways of contributing
•   Gain kudos, name recognition, etc.
•   Get a warm fuzzy feeling :)
•   GitHub, JIRA, website

• Learn how to use GitHub:
    – http://grails.org/screencast/show/21
    – or search for GitHub in screencasts




                                             27
Q&A

More Related Content

PDF
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps
PDF
WPS Projects Update
PDF
Red Hat OpenShift on Bare Metal and Containerized Storage
PDF
Beyond GeoServer Basics
PDF
Open Development
PDF
The Basics of Open Source Collaboration With Git and GitHub
ODP
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
PDF
Introduction to git
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps
WPS Projects Update
Red Hat OpenShift on Bare Metal and Containerized Storage
Beyond GeoServer Basics
Open Development
The Basics of Open Source Collaboration With Git and GitHub
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Introduction to git

What's hot (20)

PPTX
DevOps and Git: Solving for CI/CD at Scale
PDF
Foundation Comparison
PDF
Leveraging Gradle @ Netflix (Madrid GUG Feb 2, 2021)
PDF
FOSDEM '18 - Tools for large scale collection and analysis of source code re...
PDF
GitHub
PPTX
Git tips
PDF
Gitops Hands On
PPTX
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
PDF
Git and Github
PDF
Basics About Git & GitHub
PDF
OpenShift As A DevOps Platform
PDF
DevOps of Python applications using OpenShift (Italian version)
ODP
DevOps, PaaS and the Modern Enterprise CloudExpo Europe presentation by Diane...
PDF
WKP 2.4 Delivers GitOps Anywhere
PPTX
Kubernetes for java developers
PDF
WKP Team Workspaces Webinar
PDF
Git, GitHub and Open Source
PDF
AQAvit: Vitality through Testing
PPTX
Galera on kubernetes_no_video
PDF
HPLN Meet Git - Public
DevOps and Git: Solving for CI/CD at Scale
Foundation Comparison
Leveraging Gradle @ Netflix (Madrid GUG Feb 2, 2021)
FOSDEM '18 - Tools for large scale collection and analysis of source code re...
GitHub
Git tips
Gitops Hands On
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
Git and Github
Basics About Git & GitHub
OpenShift As A DevOps Platform
DevOps of Python applications using OpenShift (Italian version)
DevOps, PaaS and the Modern Enterprise CloudExpo Europe presentation by Diane...
WKP 2.4 Delivers GitOps Anywhere
Kubernetes for java developers
WKP Team Workspaces Webinar
Git, GitHub and Open Source
AQAvit: Vitality through Testing
Galera on kubernetes_no_video
HPLN Meet Git - Public
Ad

Viewers also liked (6)

PDF
Using Grails to Power your Electric Car
PDF
Scraping with Geb
ODP
Using Grails to power your electric car
PDF
Metaprogramming with Groovy
PDF
Mum, I want to be a Groovy full-stack developer
PDF
Creating and testing REST contracts with Accurest Gradle
Using Grails to Power your Electric Car
Scraping with Geb
Using Grails to power your electric car
Metaprogramming with Groovy
Mum, I want to be a Groovy full-stack developer
Creating and testing REST contracts with Accurest Gradle
Ad

Similar to Contributing to Grails (20)

KEY
GR8CONF Contributing Back To Grails
PDF
What’s new in grails framework 5?
PDF
GraalVM and Oracle's Documentation Trends.pdf
PDF
Groovy & Grails for Spring/Java developers
PPTX
Workflows using Git GitHub | Edureka
PDF
What's New for GitLab CI/CD February 2020
PDF
ICONUK 2015 - Gradle Up!
PDF
Grails 3.0 Preview
PPTX
Git Presentation
PPT
Freelancer Weapons of mass productivity
PDF
Grails & the World of Tomorrow
PDF
Cloud is such stuff as dreams are made on
PDF
第1回名古屋Grails/Groogy勉強会「Grailsを始めてみよう!」
PDF
Cloud foundry and openstackcloud
PDF
Cloud Foundry, the Open Platform as a Service - Oscon - July 2012
PDF
[Perforce] Git Fusion
PDF
GraphQL London January 2018: Graphql tooling
PPT
Fundamentals and basics of Git and commands
PDF
Leveraging Docker for Hadoop build automation and Big Data stack provisioning
PDF
Leveraging docker for hadoop build automation and big data stack provisioning
GR8CONF Contributing Back To Grails
What’s new in grails framework 5?
GraalVM and Oracle's Documentation Trends.pdf
Groovy & Grails for Spring/Java developers
Workflows using Git GitHub | Edureka
What's New for GitLab CI/CD February 2020
ICONUK 2015 - Gradle Up!
Grails 3.0 Preview
Git Presentation
Freelancer Weapons of mass productivity
Grails & the World of Tomorrow
Cloud is such stuff as dreams are made on
第1回名古屋Grails/Groogy勉強会「Grailsを始めてみよう!」
Cloud foundry and openstackcloud
Cloud Foundry, the Open Platform as a Service - Oscon - July 2012
[Perforce] Git Fusion
GraphQL London January 2018: Graphql tooling
Fundamentals and basics of Git and commands
Leveraging Docker for Hadoop build automation and Big Data stack provisioning
Leveraging docker for hadoop build automation and big data stack provisioning

More from GR8Conf (20)

PDF
DevOps Enabling Your Team
PDF
How to create a conference android app with Groovy and Android
PDF
Ratpack On the Docks
PDF
Groovy Powered Clean Code
PDF
Cut your Grails application to pieces - build feature plugins
PDF
Performance tuning Grails applications
PDF
Ratpack and Grails 3
PDF
Grails & DevOps: continuous integration and delivery in the cloud
PDF
Functional testing your Grails app with GEB
PDF
Deploying, Scaling, and Running Grails on AWS and VPC
PDF
The Grails introduction workshop
PDF
Idiomatic spock
PDF
The Groovy Ecosystem Revisited
PDF
Groovy 3 and the new Groovy Meta Object Protocol in examples
PDF
Integration using Apache Camel and Groovy
PDF
CRaSH the shell for the Java Virtual Machine
PDF
Grooscript gr8conf
PDF
CRaSH the shell for the Java Virtual Machine
PPTX
Jan reher may 2013
PDF
Good Form - complex web forms made Groovy
DevOps Enabling Your Team
How to create a conference android app with Groovy and Android
Ratpack On the Docks
Groovy Powered Clean Code
Cut your Grails application to pieces - build feature plugins
Performance tuning Grails applications
Ratpack and Grails 3
Grails & DevOps: continuous integration and delivery in the cloud
Functional testing your Grails app with GEB
Deploying, Scaling, and Running Grails on AWS and VPC
The Grails introduction workshop
Idiomatic spock
The Groovy Ecosystem Revisited
Groovy 3 and the new Groovy Meta Object Protocol in examples
Integration using Apache Camel and Groovy
CRaSH the shell for the Java Virtual Machine
Grooscript gr8conf
CRaSH the shell for the Java Virtual Machine
Jan reher may 2013
Good Form - complex web forms made Groovy

Recently uploaded (20)

PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Cloud computing and distributed systems.
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Approach and Philosophy of On baking technology
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
Digital-Transformation-Roadmap-for-Companies.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Cloud computing and distributed systems.
Programs and apps: productivity, graphics, security and other tools
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
sap open course for s4hana steps from ECC to s4
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Network Security Unit 5.pdf for BCA BBA.
MYSQL Presentation for SQL database connectivity
Understanding_Digital_Forensics_Presentation.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Reach Out and Touch Someone: Haptics and Empathic Computing
Approach and Philosophy of On baking technology
20250228 LYD VKU AI Blended-Learning.pptx
Machine learning based COVID-19 study performance prediction
The Rise and Fall of 3GPP – Time for a Sabbatical?
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Review of recent advances in non-invasive hemoglobin estimation
“AI and Expert System Decision Support & Business Intelligence Systems”

Contributing to Grails

  • 1. Contributing to Grails Peter Ledbrook - VMware t: @pledbrook e: pledbrook@vmware.com © 2012 VMware, Inc. All rights reserved.
  • 4. Expanded Easier on- user base boarding Self interest Improved dev experience
  • 5. “Many hands make light work”
  • 8. JIRA • Raise bugs, improvements, new features – Project leads set priority • Vote! – Affects prioritisation • Comment – Make your voice heard • Submit reproducible examples – Preferably with automated tests – These can be incorporated in Grails functional test suite http://jira.grails.org/ 8
  • 9. JIRA 9
  • 10. JIRA 10
  • 12. Reviewing old issues Add recommendation, e.g. close the issue, and why 12
  • 13. Want to contribute? Search for Resolution: unresolved, Label: contribute 13
  • 14. Useful components in project GRAILS • Documentation • Data binding • URL mappings • View technologies • Persistence • Scaffolding • Request new ones in ADMIN project 14
  • 15. Help your fellow man • http://grails.org/doc/latest/ User Guide • https://github.com/grails/grails-doc • http://grails.github.com/grails-howtos/ HOWTOs • https://github.com/grails/grails-howtos 15
  • 16. Contributing to documentation • Add missing info • Correct misinformation • Clarify! – Don’t be afraid to rewrite or restructure • Develop HOWTOs – Single page documents • User guide and HOWTOs: – use gdoc wiki syntax – support translations 16
  • 17. Contributing to user guide Either pledbrook/grails-doc Sync grails/grails-doc (master) (2.0.x) Push Anyone can ask for commit rights via dev mailing list You 17
  • 18. Contributing to user guide Or Pull request <username>/grails-doc grails/grails-doc (patch-n) (<branch>) Push Currently <branch> one of: • master • 2.1.x • 2.0.x You 18
  • 19. Contributing to HOWTOs grails/grails-howtos Hudson http://grails.github.com/grails-howtos (master) Push Anyone can ask for commit rights via dev mailing list You 19
  • 20. Website (http://grails.org) • Grails application • Used by you! • Currently undergoing facelift • Open source – https://github.com/grails-samples/grails-website • Works with Release plugin – For publishing public plugins • Used for plugin resolution – http://plugins.grails.org/ 20
  • 21. Public plugins • Hosted on Grails Central Plugin Repository • Requires permission per plugin to publish – Currently ask on dev mailing list – Website will have plugin submission form – Source code must be available for review • For successful proposal – Correct metadata – Good description – Documentation 21
  • 22. Grails core git clone https://github.com/grails/grails-core ./gradlew install export GRAILS_HOME=<path>/grails-core 22
  • 23. Grails core UrlMappingsFilter URL mappings GrailsDomainBinder Domain class mapping GrailsDataBinder Data binding GrailsDispatcherServlet Request handling AbstractGrailsPluginManager DefaultGrailsPluginManager Plugin loading and initialisation DefaultGrailsPlugin 23
  • 24. Grails core scripts/* Build commands GrailsScriptRunner ‘grails’ command starter grails.build.logging.GrailsConsole InteractiveMode Interactive console 24
  • 25. Summary • PaaS is the application platform for the Cloud era • PaaS will change the way you write apps – Design for horizontal scalability – Account for ephemeral file system – Rich set of services – Go polyglot! • Tools & libraries are important – Spring for the win! • Can use Redis in place of RabbitMQ for some patterns 25
  • 26. Grails core • Start with pull requests... • ...become a Grails committer! 26
  • 27. Summary • Many ways of contributing • Gain kudos, name recognition, etc. • Get a warm fuzzy feeling :) • GitHub, JIRA, website • Learn how to use GitHub: – http://grails.org/screencast/show/21 – or search for GitHub in screencasts 27
  • 28. Q&A