Beginners Guide to Contributing

Skip to end of metadata
Go to start of metadata

About

You seem to like this Jenkins thing well enough, but you'd like to contribute back to the project, help improve things, etc. This document is intended to help introduce you to the Jenkins project, help you find something that you're interested in helping out with.

For all contributors

  • A great introduction to the Jenkins project is our Governance Document which should help give you an idea of how the project is structured, our beliefs, goals, etc.
  • Join us on the IRC Channel (#jenkins on irc.freenode.net), great for instant feedback on ideas, questions, etc.
  • Create a Jenkins user account for our bug tracker/wiki/etc on this page.
  • Participate in our (usually) bi-weekly project meetings on IRC, see our Governance Meeting Agenda page for more details.

Are you interested in writing code?

General

  • Create an account on GitHub and follow the Jenkins repositories that are interesting to you: github.com/jenkinsci

How about Java code?

General
In core
  • Fork the main Jenkins repo on GitHub and get the "core" building on your local machine. The Building Jenkins page should help get you started.
  • Participate in the "UI Enhancements" project by experimenting with the Jenkins UI, or providing feedback to existing experiments (this may or may not be a great beginner project from a code standpoint).
In plugins
  • Pick up an old enhancement or bug report from the issue tracker
  • Start writing your own plugin, following our Plugin tutorial
  • Adopt a plugin which doesn't seem to have a maintainer (list in JIRA). Make sure you read this section on the subject from our Governance Document.
  • Write an automatic tool installer to auto-install a piece of software you find useful (such as the existing mongodb auto-installer). The Adding tool auto-installer page should help get you started.

How about Ruby code?

How about Puppet?

  • Participating in the management of the Jenkins project itself via the infra-puppet project on GitHub.
    • Help write rspec-puppet tests for existing modules, or some other kind of testing that can help automate testing of manifests/modules
  • Contributing fixes, extensions to the puppet-jenkins module that R. Tyler Croy wrote.

Do you speak languages other than English?


Are you not interested in writing code?

General

  • Learn more about Jenkins itself
  • Use it! Some of the best ideas come out of putting Jenkins to use in your existing workflow
  • Keep notes of what felt over-complicated, weird or otherwise confusing when getting started. For bonus points, file enhancement requests in JIRA so we can get these pain-points fixed.

Like talking to people about technology?

  • Give a talk about Jenkins at a local JUG or other group about using Jenkins (the fledgling Jenkins CIA Program may be of interest as well)
  • Organize a meetup of local Jenkins users, future users and developers
Help other newbies

Like writing or documenting things?

  • Share your solutions for "common" problems that you have faced. Blog posts/case studies/write-ups of Jenkins usage in a particular environment, with specific plugins that were used to solve a problem are very useful (check out the Meet Jenkins page for ideas).
  • Help tidy up or modernize older wiki pages that are aimed at helping new comers, such as those linked from the "Use Jenkins" page.
  • For some technology X, talk/publish/post about "Jenkins + X" and how to make the two work together

Like packaging software?

  • Pick your favorite platform and contribute a new packaging script, or help maintain the existing scripts

Like breaking/testing software?

  • Learn about JIRA and help triage or otherwise verify existing bug reports.
    • For JIRAs without reproduction steps, helping to nail down the exact steps and environment needed to reproduce the bug can help developers tremendously
    • For JIRAs with reproduction steps, verifying that the bug is fixed when a developer submits a patch can also be very helpful.
  • Test upcoming release candidates of Jenkins itself via the RC channel. It may also be worth familiarizing yourself with the Release Process
  • Help verify and test the LTS (Long Term Support) release candidates before they're finalized, more details can be found on the LTS RC Testing page.
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.