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!
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