SlideShare a Scribd company logo
1 of 28
Download to read offline
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

What's hot

Foundation Comparison
Foundation ComparisonFoundation Comparison
Foundation Comparison
Jody Garnett
 
Leveraging Gradle @ Netflix (Madrid GUG Feb 2, 2021)
Leveraging Gradle @ Netflix (Madrid GUG Feb 2, 2021)Leveraging Gradle @ Netflix (Madrid GUG Feb 2, 2021)
Leveraging Gradle @ Netflix (Madrid GUG Feb 2, 2021)
Roberto Pérez Alcolea
 
Basics About Git & GitHub
Basics About Git & GitHubBasics About Git & GitHub
Basics About Git & GitHub
Raiful Hasan
 

What's hot (20)

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

Viewers also liked

Using Grails to Power your Electric Car
Using Grails to Power your Electric CarUsing Grails to Power your Electric Car
Using Grails to Power your Electric Car
GR8Conf
 
Using Grails to power your electric car
Using Grails to power your electric carUsing Grails to power your electric car
Using Grails to power your electric car
Marco Pas
 

Viewers also liked (6)

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

Similar to Contributing to Grails

GR8CONF Contributing Back To Grails
GR8CONF Contributing Back To GrailsGR8CONF Contributing Back To Grails
GR8CONF Contributing Back To Grails
bobbywarner
 
Freelancer Weapons of mass productivity
Freelancer Weapons of mass productivityFreelancer Weapons of mass productivity
Freelancer Weapons of mass productivity
Gregg Coppen
 
Cloud Foundry, the Open Platform as a Service - Oscon - July 2012
Cloud Foundry, the Open Platform as a Service - Oscon - July 2012Cloud Foundry, the Open Platform as a Service - Oscon - July 2012
Cloud Foundry, the Open Platform as a Service - Oscon - July 2012
Patrick Chanezon
 

Similar to Contributing to Grails (20)

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

More from GR8Conf

More from GR8Conf (20)

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

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 

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