SlideShare a Scribd company logo
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

Testing Toolbox
Testing ToolboxTesting Toolbox
Testing Toolbox
Michael Peters
 
Resolving xcode git merge conflict
Resolving xcode git merge conflictResolving xcode git merge conflict
Resolving xcode git merge conflict
Ricardo Pramana Suranta
 
Your first Elm program
Your first Elm programYour first Elm program
Your first Elm program
Per Lundholm
 
Smolder Introduction
Smolder IntroductionSmolder Introduction
Smolder Introduction
Michael Peters
 
Quick dive into Ruby on Rails
Quick dive into Ruby on RailsQuick dive into Ruby on Rails
Quick dive into Ruby on Rails
Hosam Aly
 
Stockholm Jenkins Area Meetup, March 2017
Stockholm Jenkins Area Meetup, March 2017Stockholm Jenkins Area Meetup, March 2017
Stockholm Jenkins Area Meetup, March 2017
Andrey Devyatkin
 
Hackerbeach: working from an island
Hackerbeach: working from an islandHackerbeach: working from an island
Hackerbeach: working from an island
DoYouBuzz
 
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
Robert MacLean
 
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 ...
VMware Tanzu
 
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
John Stevenson
 
GenRetry: Simple Exponential Backoff in Elixir
GenRetry: Simple Exponential Backoff in ElixirGenRetry: Simple Exponential Backoff in Elixir
GenRetry: Simple Exponential Backoff in Elixir
Pete Gamache
 
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
Joe Ferguson
 
Frontend testing with Codeception
Frontend testing with CodeceptionFrontend testing with Codeception
Frontend testing with Codeception
Christian Keuerleber
 
Git Ready! Workflows
Git Ready! WorkflowsGit Ready! Workflows
Git Ready! Workflows
Atlassian
 
Building Open-source React Components
Building Open-source React ComponentsBuilding Open-source React Components
Building Open-source React Components
Zack Argyle
 
Building Open-Source React Components
Building Open-Source React ComponentsBuilding Open-Source React Components
Building Open-Source React Components
Zack Argyle
 
Simulation in R and Python
Simulation in R and PythonSimulation in R and Python
Simulation in R and Python
Shunichi Otsuka
 
Rails automatic test driven development
Rails automatic test driven developmentRails automatic test driven development
Rails automatic test driven development
tyler4long
 
Git sourcecontrolpreso
Git sourcecontrolpresoGit sourcecontrolpreso
Git sourcecontrolpreso
ColdFusionConference
 
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

Trabajo Ingles
Trabajo InglesTrabajo Ingles
Trabajo Ingles
alexis998
 
Рисунок
РисунокРисунок
РисунокZZZZ2010
 
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
Felipe Temoltzi Temoltzi
 
Art_Chitecture Prop Visual
Art_Chitecture Prop VisualArt_Chitecture Prop Visual
Art_Chitecture Prop Visual
Bruno Sanz
 
Statistika Odgovori
Statistika OdgovoriStatistika Odgovori
Statistika Odgovorigueste0e869
 

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
 
Inside GitHub
Inside GitHubInside GitHub
Inside GitHub
err
 
First app
First appFirst app
First app
Benjamin Taylor
 
Inside GitHub with Chris Wanstrath
Inside GitHub with Chris WanstrathInside GitHub with Chris Wanstrath
Inside GitHub with Chris Wanstrath
SV Ruby on Rails Meetup
 
Ruby on Rails 3 Day BC
Ruby on Rails 3 Day BCRuby on Rails 3 Day BC
Hack Rio/OS
Hack Rio/OSHack Rio/OS
Hack Rio/OS
Kishore Neelamegam
 
Message Queues in Ruby - An Overview
Message Queues in Ruby - An OverviewMessage Queues in Ruby - An Overview
Message Queues in Ruby - An Overview
Pradeep Elankumaran
 
Exploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQLExploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQL
Barry Jones
 
FGCU Camp Talk
FGCU Camp TalkFGCU Camp Talk
FGCU Camp Talk
Mark Brooks
 
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.)
alloy020
 
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
Puppet
 
TorqueBox
TorqueBoxTorqueBox
TorqueBox
bobmcwhirter
 
WTF is Twisted?
WTF is Twisted?WTF is Twisted?
WTF is Twisted?
hawkowl
 
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
Travis Reeder
 
DiUS Computing Lca Rails Final
DiUS  Computing Lca Rails FinalDiUS  Computing Lca Rails Final
DiUS Computing Lca Rails Final
Robert Postill
 
Collaborative Package Development in R
Collaborative Package Development in RCollaborative Package Development in R
Collaborative Package Development in R
egoodwintx
 
aosp_crave_tutorial-3.pdfhasudshsuajdhkhh
aosp_crave_tutorial-3.pdfhasudshsuajdhkhhaosp_crave_tutorial-3.pdfhasudshsuajdhkhh
aosp_crave_tutorial-3.pdfhasudshsuajdhkhh
ahmadsubqi1
 
Introduction to rails
Introduction to railsIntroduction to rails
Introduction to rails
Go Asgard
 
Dev streams2
Dev streams2Dev streams2
Dev streams2
David Mc Donagh
 
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

Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 

Recently uploaded (20)

Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 

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