Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Making your first contribution to Foreman

1,433 views

Published on

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!

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Making your first contribution to Foreman

  1. 1. Making your first contribution to Foreman Dominic Cleal dcleal@redhat.com 4th February 2014
  2. 2. Agenda ● Managing issues ● Your development environment ● Crafting your patch ● Submitting the pull request ● Review and test process ● Hack! Contributing | 2 | Dominic Cleal
  3. 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. 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. 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. 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. 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
  8. 8. Hack time! Contributing | 8 | Dominic Cleal
  9. 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. 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

×