Back to blog

Hacktoberfest 2018. Contribute to Jenkins!

Oleg Nenashev
Oleg Nenashev
October 01, 2018

Once again October has arrived. That means the regular Hacktoberfest event is back! This year it will be the fifth installment. During this one-month hackathon you can support open-source and earn a limited edition swag.

On behalf of the Jenkins project, we invite you to participate in Hacktoberfest and to work on the project. We welcome all contributors, regardless of their background and Jenkins experience.

Hacktoberfest

Quick start

  1. Sign-up to Hacktoberfest on the event website.

  2. Everything is set, just start creating pull-requests!

Contributing to Jenkins

There are many ways to contribute to Jenkins during Hacktoberfest. Generally, any pull requests in GitHub may qualify. You can…​

  • Code - Contribute to the code or automated tests

    • Jenkins project codebase includes dozens of programming languages, mostly Java, Groovy, and JavaScript + Go in Jenkins

    • You can also find components in Ruby/Kotlin, and even native components in C/C++

  • Document - Improve documentation

  • Blog - write blogposts about Jenkins

  • Localize - Localize Jenkins components

  • Design - artwork and UI improvements also count!

  • Organize - Organize a local meetup for Jenkins & Hacktoberfest (see below)

See the Contribute and Participate page for more information.

Projects

The Jenkins project is spread across several organizations on GitHub (jenkinsci, jenkins-x, jenkins-infra). You are welcome contribute to any repository in any of those organizations, however various components in Jenkins have differing review and delivery velocity. Here is a list of Jenkins subprojects with maintainers who have committed to delivering quick reviews to Hackathon participants.

Project/component Ideas and links

Jenkins Core

There is always something to improve in Jenkins core itself. You can address various issues, improve the codebase, and add new features there.

Contributing, newbie-friendly issues

Jenkins Website

Extend and improve Jenkins documentation, add your own blogpost.

Contributing guidelines

Jenkins X

Try out the project and create new demos, extend documentation, and create new builders for your toolchains.

Contributing guidelines, Quick start, creating custom builders, newbie-friendly issues

Jenkins Configuration-as-Code Plugin

Contribute to the fresh new plugin: improve the codebase, add demos and plugin integrations.

Contributing to JCasC

Jenkins Evergreen

Try and improve the recently released Evergreen project - an automatically updating rolling distribution system for Jenkins.

Quick start, newbie-friendly issues.

Java 11 support (JEP-211)

Contribute to Jenkins core and plugins to enable Java 11 in future releases. You can help to create new packaging, new features, testing flows, or cleanup issues Illegal Reflective Access in the code.

Gitter chat, newbie-friendly issues

Docker Packaging

Add new features and improvements to Jenkins Docker packaging: Jenkins controller, Agents, and other components.

Chinese Localization SIG

Contribute to the new Website and the Simplified Chinese Localization plugin.

Jenkins Artwork

Create new images and logos for Jenkins area meetups, subprojects, and plugins. You can also contribute new graphics to plugins.

Note that this is not a full list, and the list will be extended depending on the interest from maintainers. You are welcome to contribute to existing Jenkins plugins…​ and even to create new ones.

Local events

Hacktoberfest is an online event, but there are many events being organized by open-source communities. You can join one of these events.

We also encourage Jenkins Area Meetup organizers to run Jenkins-specific events in October (workshops, hackergartens). If you are not a meetup organizer but want to host a meetup, you can reach out to the organizers via meetup.com resources (you can find a JAM here). Check out the Hacktoberfest Event Kit for more info.

FAQ

You can find Hacktoberfest FAQ here. Below you can find answer to some Jenkins-specific questions.

Q: I am new to Jenkins, how do I start?

If you are new to Jenkins, you could start by fixing some small and well described issues. There are lists of such newbie-friendly issues, see the links in the table above. You can also submit your own issue and propose a fix.

Q: I want to work on my own plugin, is it fine?

Yes, it is fine! Any contributions count, your role in a repository does not matter. Just make sure you create pull requests instead of direct pushes (hint: it’s a best practice if you have a CI configured for your repository).

Q: How to find documentation?

Jenkins project contains lots of materials about contributing to the project. Here are some links which may help:

Projects in the table above also have their own documentation to help newcomers.

Q: How do I get reviews?

All projects in the list above are monitored by their maintainers, and you will likely get a review within few days. Reviews in other repositories and plugins may take longer. In the case of delays, ping us in the hacktoberfest channel in Gitter. Unmerged pull-requests also count in Hacktoberfest, so merge delays won’t block you from getting prizes.

Q: I am stuck. How do I get help?

Q: Does Jenkins project send special swag?

All participants will get swag from Hacktoberfest organizers if they create at least5 pull requests. Jenkins project may also distribute some swag to top contributors, depending on the budget and contributions.

About the author

Oleg Nenashev

Oleg Nenashev

Jenkins core maintainer and board member, open source software and open hardware advocate, TOC chair in the Continuous Delivery Foundation. Oleg started using Hudson for Hardware/Embedded projects in 2008 and became an active Jenkins contributor in 2012. Nowadays he maintains Jenkinsfile Runner, contributes to several Jenkins SIGs and outreach programs (Google Summer of Code, Hacktoberfest) and organizes Jenkins meetups in Switzerland and Russia. Oleg works on open source programs and Keptn at the Dynatrace, Open Source Program Office.