SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
Have you fixed a bug in Foreman, but not got the patch accepted? Perhaps you know where a bug is happening, but aren't sure how to fix it. In this session, we'll help you through the process and get your first patch accepted!
Have you fixed a bug in Foreman, but not got the patch accepted? Perhaps you know where a bug is happening, but aren't sure how to fix it. In this session, we'll help you through the process and get your first patch accepted!
1.
Making your first
contribution to Foreman
Dominic Cleal
dcleal@redhat.com
4th February 2014
2.
Agenda
●
Managing issues
●
Your development environment
●
Crafting your patch
●
Submitting the pull request
●
Review and test process
●
Hack!
Contributing | 2 | Dominic Cleal
3.
What can you contribute to?
●
Code fixes, features: Foreman, proxy, SELinux
●
Translations on Transifex
●
Packaging in foreman-packaging
●
Puppet installer in foreman-installer, puppet-*
●
●
User support on #theforeman and foremanusers
Redmine issue triage and cleanups
Contributing | 3 | Dominic Cleal
4.
Tracking issues
●
Foreman and related projects all use Redmine
http://projects.theforeman.org
●
●
Look for “Projects”, then “Foreman”
Saved search on the right hand side for easy
and trivial issues
Contributing | 4 | Dominic Cleal
5.
Development environment
●
Use a separate Ruby environment
●
rvm or rbenv highly recommended
●
Use a “gemset” or equivalent to isolate
●
Use “bundle install” to install all dependencies
●
Run “rake test” to run all tests
●
Installer can be tested with rspec-puppet, or
directly on a VM
Contributing | 5 | Dominic Cleal
6.
Crafting your patch
●
Basic git workflow
–
GitHub help pages are good, e.g.
https://help.github.com/articles/fork-a-repo
●
git clone https://github.com/theforeman/foreman
●
git pull upstream develop
●
git checkout -b 1234-foo-bar
●
git commit -a
–
●
“fixes #1234 – changed foo to handle bar condition”
git push origin
Contributing | 6 | Dominic Cleal
7.
Submitting a pull request
●
●
●
When a branch is pushed to GitHub, you can
open a pull request from your fork page
Pull requests will get reviewed by a core
maintainer
Tests will be executed for all Ruby/databases
Contributing | 7 | Dominic Cleal
9.
What to work on today
●
Foreman core
–
#2954: fix welcome text to aid translation
–
#3163: add a link to “welcome” page
–
#1618: fix wording of report time drift (patch)
–
#3767: add “new host” menu item
–
#3685: change element sizes on VM form
–
#1916: sorting of subnets in view
Contributing | 9 | Dominic Cleal
10.
What to work on today #2
●
Foreman installer (Puppet)
–
–
#3308: installer plugin support
–
●
#2702: consistent “common” module path
#3185: refresh proxy features in installer
Website
–
●
#3132: document installer git repo support
Hammer CLI
–
#4129: error thrown on sc_param command
–
#4131: OS info command missing attributes
Contributing | 10 | Dominic Cleal