SlideShare una empresa de Scribd logo
1 de 33
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?

Más contenido relacionado

La actualidad más candente

Gerrit + Jenkins = Continuous Delivery For Big Data
Gerrit + Jenkins = Continuous Delivery For Big DataGerrit + Jenkins = Continuous Delivery For Big Data
Gerrit + Jenkins = Continuous Delivery For Big DataStefano Galarraga
 
Getting Started with GitHub
Getting Started with GitHubGetting Started with GitHub
Getting Started with GitHubMichael Redlich
 
Django Third party packages
Django Third party packagesDjango Third party packages
Django Third party packagesAndy Dai
 
Introduction to Github for Team Project
Introduction to Github for Team ProjectIntroduction to Github for Team Project
Introduction to Github for Team ProjectAkhter Al Amin
 
Introduction to git and Github
Introduction to git and GithubIntroduction to git and Github
Introduction to git and GithubWycliff1
 
Github Case Study By Amil Ali
Github Case Study By Amil AliGithub Case Study By Amil Ali
Github Case Study By Amil AliAmilAli1
 
GitHub Actions with Node.js
GitHub Actions with Node.jsGitHub Actions with Node.js
GitHub Actions with Node.jsStefan Stölzle
 
CICD Pipeline Using Github Actions
CICD Pipeline Using Github ActionsCICD Pipeline Using Github Actions
CICD Pipeline Using Github ActionsKumar Shìvam
 
Git, GitHub and Open Source
Git, GitHub and Open SourceGit, GitHub and Open Source
Git, GitHub and Open SourceLorna Mitchell
 
Hacking Git and GitHub
Hacking Git and GitHubHacking Git and GitHub
Hacking Git and GitHubEdureka!
 
Collaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source DocumentationCollaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source DocumentationAnne Gentle
 
GitHub Actions - Melbourne UG
GitHub Actions - Melbourne UGGitHub Actions - Melbourne UG
GitHub Actions - Melbourne UGNatraj Yegnaraman
 
Introduction to GitHub
Introduction to GitHubIntroduction to GitHub
Introduction to GitHubNishan Bose
 
COSCUP 開源工作坊:Git workflows
COSCUP 開源工作坊:Git workflowsCOSCUP 開源工作坊:Git workflows
COSCUP 開源工作坊:Git workflowsCarl Su
 
Difference between gitlab vs github vs bitbucket
Difference between gitlab vs github vs bitbucketDifference between gitlab vs github vs bitbucket
Difference between gitlab vs github vs bitbucketAcodez IT Solutions
 

La actualidad más candente (20)

Gerrit + Jenkins = Continuous Delivery For Big Data
Gerrit + Jenkins = Continuous Delivery For Big DataGerrit + Jenkins = Continuous Delivery For Big Data
Gerrit + Jenkins = Continuous Delivery For Big Data
 
Getting Started with GitHub
Getting Started with GitHubGetting Started with GitHub
Getting Started with GitHub
 
Django Third party packages
Django Third party packagesDjango Third party packages
Django Third party packages
 
Introduction to Github for Team Project
Introduction to Github for Team ProjectIntroduction to Github for Team Project
Introduction to Github for Team Project
 
Github in Action
Github in ActionGithub in Action
Github in Action
 
Introduction to git and Github
Introduction to git and GithubIntroduction to git and Github
Introduction to git and Github
 
Github Case Study By Amil Ali
Github Case Study By Amil AliGithub Case Study By Amil Ali
Github Case Study By Amil Ali
 
GitHub Actions with Node.js
GitHub Actions with Node.jsGitHub Actions with Node.js
GitHub Actions with Node.js
 
CICD Pipeline Using Github Actions
CICD Pipeline Using Github ActionsCICD Pipeline Using Github Actions
CICD Pipeline Using Github Actions
 
CI/CD with GitHub Actions
CI/CD with GitHub ActionsCI/CD with GitHub Actions
CI/CD with GitHub Actions
 
Git, GitHub and Open Source
Git, GitHub and Open SourceGit, GitHub and Open Source
Git, GitHub and Open Source
 
Github PowerPoint Final
Github PowerPoint FinalGithub PowerPoint Final
Github PowerPoint Final
 
Hacking Git and GitHub
Hacking Git and GitHubHacking Git and GitHub
Hacking Git and GitHub
 
Collaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source DocumentationCollaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source Documentation
 
GitHub Actions - Melbourne UG
GitHub Actions - Melbourne UGGitHub Actions - Melbourne UG
GitHub Actions - Melbourne UG
 
Introduction to GitHub
Introduction to GitHubIntroduction to GitHub
Introduction to GitHub
 
COSCUP 開源工作坊:Git workflows
COSCUP 開源工作坊:Git workflowsCOSCUP 開源工作坊:Git workflows
COSCUP 開源工作坊:Git workflows
 
Difference between gitlab vs github vs bitbucket
Difference between gitlab vs github vs bitbucketDifference between gitlab vs github vs bitbucket
Difference between gitlab vs github vs bitbucket
 
GitHub
GitHubGitHub
GitHub
 
Github
GithubGithub
Github
 

Destacado

Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...mfrancis
 
Trabajo por grupos
Trabajo por gruposTrabajo por grupos
Trabajo por gruposmilagmk20
 
Collaborative Development for the future of Mobile
Collaborative Development for the future of MobileCollaborative Development for the future of Mobile
Collaborative Development for the future of MobileAndrew Savory
 
TOGAF 9 Training Brochure - Syzygal
TOGAF 9 Training Brochure - SyzygalTOGAF 9 Training Brochure - Syzygal
TOGAF 9 Training Brochure - SyzygalSyzygal
 
IW14 Session: webMethods World
IW14 Session: webMethods WorldIW14 Session: webMethods World
IW14 Session: webMethods WorldSoftware AG
 

Destacado (7)

Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
 
Trabajo por grupos
Trabajo por gruposTrabajo por grupos
Trabajo por grupos
 
Collaborative Development for the future of Mobile
Collaborative Development for the future of MobileCollaborative Development for the future of Mobile
Collaborative Development for the future of Mobile
 
Balcony risks
Balcony risksBalcony risks
Balcony risks
 
Agua
AguaAgua
Agua
 
TOGAF 9 Training Brochure - Syzygal
TOGAF 9 Training Brochure - SyzygalTOGAF 9 Training Brochure - Syzygal
TOGAF 9 Training Brochure - Syzygal
 
IW14 Session: webMethods World
IW14 Session: webMethods WorldIW14 Session: webMethods World
IW14 Session: webMethods World
 

Similar a GR8CONF Contributing Back To Grails

The Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHubThe Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHubBigBlueHat
 
Git for folk who like GUIs
Git for folk who like GUIsGit for folk who like GUIs
Git for folk who like GUIsTim Osborn
 
Android Studio 3 - Dependency-Aware Build Variants and Product Flavors
Android Studio 3 - Dependency-Aware Build Variants and Product FlavorsAndroid Studio 3 - Dependency-Aware Build Variants and Product Flavors
Android Studio 3 - Dependency-Aware Build Variants and Product FlavorsStefan Martynkiw
 
Intro to Git: a hands-on workshop
Intro to Git: a hands-on workshopIntro to Git: a hands-on workshop
Intro to Git: a hands-on workshopCisco DevNet
 
S2GX 2012 - Spring Projects Infrastructure
S2GX 2012 - Spring Projects InfrastructureS2GX 2012 - Spring Projects Infrastructure
S2GX 2012 - Spring Projects InfrastructureGunnar Hillert
 
Spring Projects Infrastructure
Spring Projects InfrastructureSpring Projects Infrastructure
Spring Projects InfrastructureRoy Clarkson
 
Freelancer Weapons of mass productivity
Freelancer Weapons of mass productivityFreelancer Weapons of mass productivity
Freelancer Weapons of mass productivityGregg Coppen
 
Git installation and configuration
Git installation and configurationGit installation and configuration
Git installation and configurationKishor Kumar
 
Learn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levelsLearn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levelsGorav Singal
 
Git is a distributed version control system .
Git is a distributed version control system .Git is a distributed version control system .
Git is a distributed version control system .HELLOWorld889594
 
Android gradle-build-system-overview
Android gradle-build-system-overviewAndroid gradle-build-system-overview
Android gradle-build-system-overviewKevin He
 
Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Bruno Capuano
 
Grails 3.0 Preview
Grails 3.0 PreviewGrails 3.0 Preview
Grails 3.0 Previewgraemerocher
 
Git and GitHub for Documentation
Git and GitHub for DocumentationGit and GitHub for Documentation
Git and GitHub for DocumentationAnne Gentle
 
Kubeflow Development Environment
Kubeflow Development EnvironmentKubeflow Development Environment
Kubeflow Development EnvironmentWeiqiang Zhuang
 

Similar a GR8CONF Contributing Back To Grails (20)

The Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHubThe Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHub
 
Git for folk who like GUIs
Git for folk who like GUIsGit for folk who like GUIs
Git for folk who like GUIs
 
Android Studio 3 - Dependency-Aware Build Variants and Product Flavors
Android Studio 3 - Dependency-Aware Build Variants and Product FlavorsAndroid Studio 3 - Dependency-Aware Build Variants and Product Flavors
Android Studio 3 - Dependency-Aware Build Variants and Product Flavors
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hub
 
Intro to Git: a hands-on workshop
Intro to Git: a hands-on workshopIntro to Git: a hands-on workshop
Intro to Git: a hands-on workshop
 
S2GX 2012 - Spring Projects Infrastructure
S2GX 2012 - Spring Projects InfrastructureS2GX 2012 - Spring Projects Infrastructure
S2GX 2012 - Spring Projects Infrastructure
 
Spring Projects Infrastructure
Spring Projects InfrastructureSpring Projects Infrastructure
Spring Projects Infrastructure
 
Freelancer Weapons of mass productivity
Freelancer Weapons of mass productivityFreelancer Weapons of mass productivity
Freelancer Weapons of mass productivity
 
Git installation and configuration
Git installation and configurationGit installation and configuration
Git installation and configuration
 
Learn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levelsLearn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levels
 
Git workshop
Git workshopGit workshop
Git workshop
 
Git is a distributed version control system .
Git is a distributed version control system .Git is a distributed version control system .
Git is a distributed version control system .
 
Android gradle-build-system-overview
Android gradle-build-system-overviewAndroid gradle-build-system-overview
Android gradle-build-system-overview
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
 
Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?
 
GIT-FirstPart.ppt
GIT-FirstPart.pptGIT-FirstPart.ppt
GIT-FirstPart.ppt
 
Grails 3.0 Preview
Grails 3.0 PreviewGrails 3.0 Preview
Grails 3.0 Preview
 
Testing in GO
Testing in GOTesting in GO
Testing in GO
 
Git and GitHub for Documentation
Git and GitHub for DocumentationGit and GitHub for Documentation
Git and GitHub for Documentation
 
Kubeflow Development Environment
Kubeflow Development EnvironmentKubeflow Development Environment
Kubeflow Development Environment
 

Último

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
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 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
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 RobisonAnna Loughnan Colquhoun
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
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 Processorsdebabhi2
 

Último (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
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
 

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 • dev@grails.codehaus.org • 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 "your_email@youremail.com" • 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 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
  • 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?

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n