SlideShare a Scribd company logo
1 of 15
Download to read offline
I        To
       contribute
WANT       to
         Ruby
YOU       on
         Rails
Sure you can!

I felt like that too!

It's not that hard…
Go to an Open
Source Hacknight!

Thanks, Johannes Edelstam :)

We should have more of those.
Find something
                 you want to fix,
                     then…

open http://github.com/rails/rails
Search issues and pull requests – don't duplicate work
Set up a local copy
First, fork Rails

Clone your repo

Add github.com/rails/rails as upstream git remote
Get the tests running

Use rvm or rbenv – tests give some warnings in 1.9.

Bundle install – I got warnings about journey, but it works.

Bundle exec rake test – takes about 30 mins on my laptop.
Create a branch and go to work

Pick a good branch name. Others will see it.

Clear, concise code as always! Follow the Rails coding style.

Write tests, and make sure all tests pass.

Have someone else look at the code. (Thanks, David Billskog)
Push to github & do a Pull Request

First, fetch from upstream and rebase your work.

Push your branch to origin – your github repo.

Go to your new branch on github.

Push the magic Pull Request button.
Pull Request primer

Explain your code and why it should be merged into Rails.

Your message starts a discussion thread.

If you need to make changes, do them and push them. The
pull request will be automatically updated.

Help the Rails team. Be kind. In return, they'll help you.
Boom!




That was easy
But there's a quicker way…

Add a new remote docrails: git@github.com:lifo/docrails.git

Create a new docrails branch, set to track docrails remote.

Make documentation fixes and push them straight up.

Boom! You're a contributor!
Now you're one of THEM
  http://contributors.rubyonrails.org/
Happy camper ->
Resources
 RailsGuides: Contributing to Ruby on Rails
http://guides.rubyonrails.org/contributing_to_ruby_on_rails.html

                Rails BugMash Guide
        http://bugmash.com/BugMashManual.pdf

Railscasts #300 Contributing to Open Source
            http://railscasts.com/episodes/300

More Related Content

What's hot

End to-end async and await
End to-end async and awaitEnd to-end async and await
End to-end async and await
vfabro
 

What's hot (20)

Testing Toolbox
Testing ToolboxTesting Toolbox
Testing Toolbox
 
Resolving xcode git merge conflict
Resolving xcode git merge conflictResolving xcode git merge conflict
Resolving xcode git merge conflict
 
Your first Elm program
Your first Elm programYour first Elm program
Your first Elm program
 
Smolder Introduction
Smolder IntroductionSmolder Introduction
Smolder Introduction
 
Quick dive into Ruby on Rails
Quick dive into Ruby on RailsQuick dive into Ruby on Rails
Quick dive into Ruby on Rails
 
Stockholm Jenkins Area Meetup, March 2017
Stockholm Jenkins Area Meetup, March 2017Stockholm Jenkins Area Meetup, March 2017
Stockholm Jenkins Area Meetup, March 2017
 
Hackerbeach: working from an island
Hackerbeach: working from an islandHackerbeach: working from an island
Hackerbeach: working from an island
 
Building a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCPBuilding a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCP
 
Cloud Foundry Summit 2015: Rocking the Lattice: A New Path for Cloud Foundry ...
Cloud Foundry Summit 2015: Rocking the Lattice: A New Path for Cloud Foundry ...Cloud Foundry Summit 2015: Rocking the Lattice: A New Path for Cloud Foundry ...
Cloud Foundry Summit 2015: Rocking the Lattice: A New Path for Cloud Foundry ...
 
Leiningen 2 - Humane build management for Clojure
Leiningen 2 - Humane build management for ClojureLeiningen 2 - Humane build management for Clojure
Leiningen 2 - Humane build management for Clojure
 
GenRetry: Simple Exponential Backoff in Elixir
GenRetry: Simple Exponential Backoff in ElixirGenRetry: Simple Exponential Backoff in Elixir
GenRetry: Simple Exponential Backoff in Elixir
 
Madison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small TeamsMadison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small Teams
 
Frontend testing with Codeception
Frontend testing with CodeceptionFrontend testing with Codeception
Frontend testing with Codeception
 
Git Ready! Workflows
Git Ready! WorkflowsGit Ready! Workflows
Git Ready! Workflows
 
Building Open-source React Components
Building Open-source React ComponentsBuilding Open-source React Components
Building Open-source React Components
 
Building Open-Source React Components
Building Open-Source React ComponentsBuilding Open-Source React Components
Building Open-Source React Components
 
Simulation in R and Python
Simulation in R and PythonSimulation in R and Python
Simulation in R and Python
 
Rails automatic test driven development
Rails automatic test driven developmentRails automatic test driven development
Rails automatic test driven development
 
Git sourcecontrolpreso
Git sourcecontrolpresoGit sourcecontrolpreso
Git sourcecontrolpreso
 
End to-end async and await
End to-end async and awaitEnd to-end async and await
End to-end async and await
 

Viewers also liked (8)

Trabajo Ingles
Trabajo InglesTrabajo Ingles
Trabajo Ingles
 
Рисунок
РисунокРисунок
Рисунок
 
Umbanda candomble
Umbanda candombleUmbanda candomble
Umbanda candomble
 
Delegación Miguel Hidalgo programa fiestas decembrinas
Delegación Miguel Hidalgo programa fiestas decembrinasDelegación Miguel Hidalgo programa fiestas decembrinas
Delegación Miguel Hidalgo programa fiestas decembrinas
 
Codemocracy
CodemocracyCodemocracy
Codemocracy
 
Art_Chitecture Prop Visual
Art_Chitecture Prop VisualArt_Chitecture Prop Visual
Art_Chitecture Prop Visual
 
Codigo fiscal
Codigo fiscalCodigo fiscal
Codigo fiscal
 
Statistika Odgovori
Statistika OdgovoriStatistika Odgovori
Statistika Odgovori
 

Similar to Contribute to rails

Ruby tutorial
Ruby tutorialRuby tutorial
Ruby tutorial
knoppix
 
aosp_crave_tutorial-3.pdfhasudshsuajdhkhh
aosp_crave_tutorial-3.pdfhasudshsuajdhkhhaosp_crave_tutorial-3.pdfhasudshsuajdhkhh
aosp_crave_tutorial-3.pdfhasudshsuajdhkhh
ahmadsubqi1
 
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::SynchronyFast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
Kyle Drake
 

Similar to Contribute to rails (20)

Ruby tutorial
Ruby tutorialRuby tutorial
Ruby tutorial
 
Inside GitHub
Inside GitHubInside GitHub
Inside GitHub
 
First app
First appFirst app
First app
 
Inside GitHub with Chris Wanstrath
Inside GitHub with Chris WanstrathInside GitHub with Chris Wanstrath
Inside GitHub with Chris Wanstrath
 
Ruby on Rails 3 Day BC
Ruby on Rails 3 Day BCRuby on Rails 3 Day BC
Ruby on Rails 3 Day BC
 
Hack Rio/OS
Hack Rio/OSHack Rio/OS
Hack Rio/OS
 
Message Queues in Ruby - An Overview
Message Queues in Ruby - An OverviewMessage Queues in Ruby - An Overview
Message Queues in Ruby - An Overview
 
Exploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQLExploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQL
 
FGCU Camp Talk
FGCU Camp TalkFGCU Camp Talk
FGCU Camp Talk
 
RubyMotion Inspect Conference - 2013. (With speaker notes.)
RubyMotion Inspect Conference - 2013. (With speaker notes.)RubyMotion Inspect Conference - 2013. (With speaker notes.)
RubyMotion Inspect Conference - 2013. (With speaker notes.)
 
Boxen: How to Manage an Army of Laptops and Live to Talk About It
Boxen: How to Manage an Army of Laptops and Live to Talk About ItBoxen: How to Manage an Army of Laptops and Live to Talk About It
Boxen: How to Manage an Army of Laptops and Live to Talk About It
 
TorqueBox
TorqueBoxTorqueBox
TorqueBox
 
WTF is Twisted?
WTF is Twisted?WTF is Twisted?
WTF is Twisted?
 
Go After 4 Years in Production - QCon 2015
Go After 4 Years in Production - QCon 2015Go After 4 Years in Production - QCon 2015
Go After 4 Years in Production - QCon 2015
 
DiUS Computing Lca Rails Final
DiUS  Computing Lca Rails FinalDiUS  Computing Lca Rails Final
DiUS Computing Lca Rails Final
 
Collaborative Package Development in R
Collaborative Package Development in RCollaborative Package Development in R
Collaborative Package Development in R
 
aosp_crave_tutorial-3.pdfhasudshsuajdhkhh
aosp_crave_tutorial-3.pdfhasudshsuajdhkhhaosp_crave_tutorial-3.pdfhasudshsuajdhkhh
aosp_crave_tutorial-3.pdfhasudshsuajdhkhh
 
Introduction to rails
Introduction to railsIntroduction to rails
Introduction to rails
 
Dev streams2
Dev streams2Dev streams2
Dev streams2
 
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::SynchronyFast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
 

Recently uploaded

Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
 

Recently uploaded (20)

Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Your enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4jYour enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4j
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptx
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptxBT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptx
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptx
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 

Contribute to rails

  • 1. I To contribute WANT to Ruby YOU on Rails
  • 2. Sure you can! I felt like that too! It's not that hard…
  • 3. Go to an Open Source Hacknight! Thanks, Johannes Edelstam :) We should have more of those.
  • 4. Find something you want to fix, then… open http://github.com/rails/rails Search issues and pull requests – don't duplicate work
  • 5. Set up a local copy First, fork Rails Clone your repo Add github.com/rails/rails as upstream git remote
  • 6. Get the tests running Use rvm or rbenv – tests give some warnings in 1.9. Bundle install – I got warnings about journey, but it works. Bundle exec rake test – takes about 30 mins on my laptop.
  • 7. Create a branch and go to work Pick a good branch name. Others will see it. Clear, concise code as always! Follow the Rails coding style. Write tests, and make sure all tests pass. Have someone else look at the code. (Thanks, David Billskog)
  • 8. Push to github & do a Pull Request First, fetch from upstream and rebase your work. Push your branch to origin – your github repo. Go to your new branch on github. Push the magic Pull Request button.
  • 9.
  • 10. Pull Request primer Explain your code and why it should be merged into Rails. Your message starts a discussion thread. If you need to make changes, do them and push them. The pull request will be automatically updated. Help the Rails team. Be kind. In return, they'll help you.
  • 12. But there's a quicker way… Add a new remote docrails: git@github.com:lifo/docrails.git Create a new docrails branch, set to track docrails remote. Make documentation fixes and push them straight up. Boom! You're a contributor!
  • 13. Now you're one of THEM http://contributors.rubyonrails.org/
  • 15. Resources RailsGuides: Contributing to Ruby on Rails http://guides.rubyonrails.org/contributing_to_ruby_on_rails.html Rails BugMash Guide http://bugmash.com/BugMashManual.pdf Railscasts #300 Contributing to Open Source http://railscasts.com/episodes/300