contributing to grails
TRANSCRIPT
© 2012 VMware, Inc. All rights reserved.
Contributing to Grails
Peter Ledbrook - VMwaret: @pledbrooke: [email protected]
Why contribute?
Giving back feels good!
Self interest
Expanded user base
Easier on-boarding
Improved dev experience
“Many hands makelight work”
Where to start?
6
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
8
http://jira.grails.org/
JIRA
9
JIRA
10
Reviewing old issues
11
Reviewing old issues
12
Add recommendation, e.g. close the issue, and why
Want to contribute?
13
Search for Resolution: unresolved, Label: contribute
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/• https://github.com/grails/grails-doc
15
• http://grails.github.com/grails-howtos/• https://github.com/grails/grails-howtos
User Guide
HOWTOs
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
17
Either
pledbrook/grails-doc(master)
grails/grails-doc(2.0.x)
Sync
Push
You
Anyone can ask for commit rights via dev mailing list
Contributing to user guide
18
<username>/grails-doc(patch-n)
grails/grails-doc(<branch>)
Pull request
Push
You
Or
Currently <branch> one of:
• master
• 2.1.x• 2.0.x
Contributing to HOWTOs
19
grails/grails-howtos(master)
Hudson
Push
You
Anyone can ask for commit rights via dev mailing list
http://grails.github.com/grails-howtos
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
22
git clone https://github.com/grails/grails-core
./gradlew install
export GRAILS_HOME=<path>/grails-core
Grails core
23
UrlMappingsFilter
GrailsDomainBinder
GrailsDataBinder
GrailsDispatcherServlet
AbstractGrailsPluginManagerDefaultGrailsPluginManagerDefaultGrailsPlugin
URL mappings
Domain class mapping
Data binding
Request handling
Plugin loading and initialisation
Grails core
24
scripts/*
GrailsScriptRunner
grails.build.logging.GrailsConsoleInteractiveMode
Build commands
‘grails’ command starter
Interactive console
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