Contributing to Grails

28
© 2012 VMware, Inc. All rights reserved. Contributing to Grails Peter Ledbrook - VMware t: @pledbrook e: [email protected]

Transcript of Contributing to Grails

Page 1: Contributing to Grails

© 2012 VMware, Inc. All rights reserved.

Contributing to Grails

Peter Ledbrook - VMwaret: @pledbrooke: [email protected]

Page 2: Contributing to Grails

Why contribute?

Page 3: Contributing to Grails

Giving back feels good!

Page 4: Contributing to Grails

Self interest

Expanded user base

Easier on-boarding

Improved dev experience

Page 5: Contributing to Grails

“Many hands makelight work”

Page 6: Contributing to Grails

Where to start?

6

Page 7: Contributing to Grails

[email protected]

Discuss the direction and future of Grails!

Page 8: Contributing to 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/

Page 9: Contributing to Grails

JIRA

9

Page 10: Contributing to Grails

JIRA

10

Page 11: Contributing to Grails

Reviewing old issues

11

Page 12: Contributing to Grails

Reviewing old issues

12

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

Page 13: Contributing to Grails

Want to contribute?

13

Search for Resolution: unresolved, Label: contribute

Page 14: Contributing to Grails

Useful components in project GRAILS

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

14

Page 15: Contributing to Grails

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

Page 16: Contributing to Grails

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

Page 17: Contributing to Grails

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

Page 18: Contributing to Grails

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

Page 19: Contributing to Grails

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

Page 20: Contributing to Grails

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

Page 21: Contributing to Grails

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

Page 22: Contributing to Grails

Grails core

22

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

./gradlew install

export GRAILS_HOME=<path>/grails-core

Page 23: Contributing to Grails

Grails core

23

UrlMappingsFilter

GrailsDomainBinder

GrailsDataBinder

GrailsDispatcherServlet

AbstractGrailsPluginManagerDefaultGrailsPluginManagerDefaultGrailsPlugin

URL mappings

Domain class mapping

Data binding

Request handling

Plugin loading and initialisation

Page 24: Contributing to Grails

Grails core

24

scripts/*

GrailsScriptRunner

grails.build.logging.GrailsConsoleInteractiveMode

Build commands

‘grails’ command starter

Interactive console

Page 25: Contributing to Grails

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

Page 26: Contributing to Grails

Grails core

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

26

Page 27: Contributing to Grails

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

Page 28: Contributing to Grails

Q&A