You seem to like this Jenkins thing well enough, but you'd like to contribute back to the project, help improve things, etc. Welcome!
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

Are you interested in writing code?


Jenkins core

We generally call Jenkins core the jenkins project itself, who lives there on github. Creating your own fork and submitting a pull request is a great way to begin contributing your fixes.

How about Java code?

Contributer Agreement

More information about the copyrights can be found here.

Commit Messages

Code Style

In the core, we try to loosely follow the Oracle Java Code Conventions. Plugins are up to each owner, and we respect whatever choice they make.

Code Review

For changes that you feel comfortable, we normally expect folks to just push straight in. This includes localization, which only few of us can review. When you do this, you just need to be prepared that someone might yank that out later.

For other times, people feel more comfortable going through a pull request or a patch in the issue tracker, so that they have someone else's ack to be integrated, especially for the first few changes. Never hurts to have a second, or third opinion.

In core
In plugins

How about Ruby code?

How about Puppet?

Do you speak languages other than English?

Are you not interested in writing code?


Like talking to people about technology?

Help other newbies

Like writing or documenting things?

Like packaging software?

Like breaking/testing software?

Unit tests

As for any other code, you should have unit tests for your contribution. If you're e.g. want to contribute a bug fix, you should have a unit test which exposes the bug in the old code and confirms that it's fixed after your change.