Hacktoberfest

Hacktoberfest

Hacktoberfest 2021 is coming soon! We are going to participate as the Jenkins community, and we are looking for contributors and maintainers who want to join us in October! See this conversation for more information and Q&A.

Hacktoberfest is a month long celebration of open source software. It happens every year in October. During this event everyone can support open-source by contributing changes, and then earn a limited edition swag.

We invite everyone to participate and to contribute to the Jenkins project, regardless of their background and Jenkins experience. There are many ways to contribute to Jenkins during Hacktoberfest. You can work on code or documentation, contribute to localization, create new artwork, etc. You can also share your experiences with Jenkins by creating a new blogpost. Generally, any pull requests in GitHub would qualify. See the Contribute and Participate page for more information about how to contribute.

This page is based on Hacktoberfest 2020 rules and guidelines. We will update it after Hacktoberfest 2021 organizers publish the materials.

Quick start

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

  2. Join our Gitter channel.

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

    • If a repository has no hacktoberfest topic set, please mention Hacktoberfest in your pull requests so we can set repository topics (see FAQ: Marking Pull requests).

Where to contribute?

The Jenkins project is spread across several organizations on GitHub (jenkinsci, jenkins-infra, jenkins-zh). You are welcome to contribute to any repository in any of those organizations, or any other Jenkins-related repository on GitHub. Repositories may have different contribution guidelines, review and merge policies. If you adopt Jenkins in your open-source projects (e.g. Jenkins Pipeline or Configuration as Code), it counts as well! Note that not all pull requests will automatically count towards Hacktoberfest in 2020.

Issue queries

We have marked some issues in Jenkins Jira and GitHub issues which can be handled by contributors during Hacktoberfest:

If you are a newcomer contributor, we have prepared a list of projects/components where you will get a warm welcome. All these projects have newbie-friendly tasks, contributing guidelines, and active maintainers who have committed to assist contributors and to provide quick turnaround in pull requests.

Project/component Keywords Ideas and links

Jenkins Website

Documentation,
Asciidoc,
CSS,
Ruby

Extend and improve Jenkins documentation, help to improve the website’s look&feel, create a new blogpost, a technology-specific solution page or a tutorial.

Contributing guidelines, Good first issues

Additionally, we invite new and experienced Jenkins developers to help improve the developer documentation. If you want to learn a Jenkins development topic and share your new knowledge with others, or want to help someone else learn, you’re welcome to contribute here.

Board, chat

Jenkins Core

Java

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

Contributing, newcomer-friendly issues

Jenkins Plugin Site

Javascript, Java, React, Gatsby

The plugin site is used to find information about 1700+ plugins available in Jenkins. It provides plugin documentation, changelogs, open issues, and other data needed for Jenkins admins and end users. We are interested to keep improving the plugin site’s UI/UX, provide more search options, and to provide deeper integration with GitHub and other services.

Jenkinsfile Runner

Java, Docker

Jenkinsfile Runner is a portable Jenkins Pipeline execution engine, currently in preview. It can run as a standalone CLI tool or as a Docker container. We invite Hacktoberfest participants to evaluate the tool, work on adding new features and demos,

Contributing, Good first issues, All open issues

Prometheus Plugin

Java, Prometheus

Jenkins Prometheus Plugin expose an endpoint (default /prometheus) with metrics where a Prometheus Server can scrape. We invite Hacktoberfest participants to evaluate the plugin, work on adding new features, and documentation.

Contributing, Good first issues, All open issues

Tekton Client Plugin

Java, Tekton, Kubernetes

The Tekton Client Plugin allows Jenkins users to trigger the creation and deletion of Tekton Pipelines and other resources. We invite Hacktoberfest participants to evaluate the plugin, work on adding new features, and documentation.

Contributing, Good first issues, All open issues

Non-inclusive Terminology cleanup

Java, Documentation, Web UI, Asciidoc, Markdown, Localization

In 2016, the Jenkins community started changing the potentially offensive terminology within the project. The "slave" term was deprecated and replaced by "agent". In July 2020 we also adopted the "controller" term instead of "master", and deprecated the "whitelist/blacklist" terms. There are many places where the old terminology still needs to be replaced. We invite contributors to join us and participate in cleaning up Jenkins documentation, Web and CLI interfaces, localizations, and the codebase:

Jenkins Artwork

Design

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

Adding a logo

Jenkins Helm Chart

Kubernetes, Helm, Documentation

stable/jenkins helm chart was recently been moved to jenkinsci/helm-charts. The goal is to release a 3.0.0 version of the chart, which removes old or deprecated configuration options, simplifies the Chart and makes it easier to use. Here are some ideas:

  • Remove offensive terms

  • Use WebSockets to connect agents

  • Improve it’s documentation

  • Use Plugin Installation Manager Tool to download plugins

  • Remove helm.sh/chart labels or introduce an option to remove them to have fewer changes when using GitOps

Plugin docs on GitHub

Markdown,
Asciidoc

We are moving plugin documentation from https://wiki.jenkins.io/ to GitHub, and it is a great opportunity to create small pull requests that benefit all Jenkins users.

  • Migrate plugin documentation as documented in these guidelines). Plugins to convert can be found in the Jenkins Wiki Exporter.

  • Move or improve existing documentation based on GitHub issues

  • Review and renew the existing plugin documentation. For example, cleanup the agent terminology usage as suggested in the JENKINS-42816 EPIC

French translation

Git, French, Jenkins developer tools

Improve coverage of French localization of the Jenkins web interface, including the Jenkins core and plugins. The same is possible for other languages, let us know if you are interested!

Jenkins Infrastructure

Asciidoctor, Docker, Github Actions, Jenkins Pipeline, Kubernetes, Markdown, Packer, Puppet, Python, Shell, YAML

An infrastructure is constantly moving forward: there are always dependencies to update, security issues to fix, new feature to release, tools to improve, etc.

Any kind of contribution is welcome: from documentation to real life code. Either you are a beginner in this area, or a veteran of system administration, you are welcome to pick an issue and contribute!

Content Security Policy (CSP)

JavaScript, Jelly, Security

During the last years, the Jenkins Security team has seen a lot of Cross-Site Scripting (XSS) vulnerabilities, inside Jenkins core and also for a lot of plugins. They have put in place different kinds of mechanisms to enhance the protection of some of the common dangerous code locations. But this kind of approach does not scale enough to cover the wide ecosystem and the numerous different ways of introducing (accidentally) XSS vulnerabilities.

The objective of this topic is to ease the introduction of CSP in Jenkins by un-inlining the JavaScript resources.

  • Skill requirement: a bit of JavaScript. The Jelly part is straightforward. No need to have security background.

  • Time requirement: between 30 minutes and 4 hours.

More details on the approach in this document.

Experienced developers

If you are an established developer and want to create something new, please don’t let yourself to be blocked by the suggested topics! Feel free to contribute to any area of Jenkins. If you see any major functionality missing in Jenkins, we invite you to create new plugins. See the Plugin Tutorial and Hosting Plugins guidelines for more information.

Events

Hacktoberfest is a fully online event this year. Jenkins specific events for Hacktoberfest will be announced on the events page, in social media (twitter and LinkedIn), and through the Jenkins Online Meetup page.

We are also looking for event organizers and sponsorsS! See our Event Kitfor more information and guidelines.

Resources

Previous years

Discuss