GSoC 2021 Project Ideas

This site is the new docs site currently being tested. For the actual docs in use please go to https://www.jenkins.io/doc.

Jenkins GSoC This page aggregates project ideas for Google Summer of Code 2021. See more information about this project and applications on the Jenkins Google Summer of Code page.

Below you can find project ideas which have been proposed for this year. New ideas may be proposed by interested mentors or students (e.g. new features in the core, "write a plugin for MY_TOOL_OR_SERVICE", etc.). Project ideas without potential mentors will be considered though applicants may need to work with the community and GSoC org admins to find mentors. To add a new project idea, see: proposing project ideas.

Accepted ideas

Below you can see the list of project ideas that fully match the Jenkins' project idea standard. The scope of these ideas is well known and we don’t normally expect deep changes. All ideas have quick start guidelines and newbie-friendly issues referenced. We welcome contributors to join the mentor teams, and we invite students to submit project proposal applications in relation to these ideas.

Project

Category

Skills to study/improve

Automatic Specification Generator for Jenkins REST API

Find and implement the extraction of the REST APIs from the sources and generate and publish the REST APIs respective documentation.

Potential Mentor(s): Kristin Whetstone Oleg Nenashev

Plugins

Java, REST API, OpenAPI / Swagger

Polling Docker Registries for Image Changes

Create a new Jenkins plugin to automate polling of image changes and security scans.

Potential Mentor(s): Justin Harringa Andrey Falko Michael Cirioli

Plugins

Java, Docker

EDA Coverage Adapters

Create Jenkins plugins for various Electronic Design Automation coverage reports.

Potential Mentor(s): Oleg Nenashev Shenyu Zheng

Plugins

Java, EDA Tools, FPGA, ASIC, Coverage

Plugin(s) for Electronic Design Automation tools

Create a new Jenkins plugin for one of widely used EDA tools.

Potential Mentor(s): Oleg Nenashev Ayush Agarwal

Plugins

Java, EDA Tools

External Fingerprint Storage for Jenkins

Extend Jenkins to support storing artifact usage history in external databases.

Potential Mentor(s): Oleg Nenashev Michael Cirioli

Core

Java, Databases (PostgreSQL/Elasticsearch), REST API, JavaScript

Git repository caching on agents

Cache git repositories on agents for faster checkout.

Potential Mentor(s): Mark Waite Francisco Fernandez Parichay Barpanda

Plugins

Java, Git

Git plugin performance improvements

Improve git plugin performance.

Potential Mentor(s): Mark Waite Francisco Fernandez Oleg Nenashev Parichay Barpanda Justin Harringa

Plugins

Java, Git, Benchmarking, JMH

GitHub Checks API for Jenkins Plugins

Create a new plugin API so that plugins can publish GitHub checks status messages.

Potential Mentor(s): Ullrich Hafner Tim Jacomb Jeff Pearce Jon Brohauge Ayush Agarwal

Plugins

Java, REST API, GitHub

Custom Jenkins distribution build service

Provide an out of the box solution for packaging Jenkins distributions as WAR files or Docker images.

Potential Mentor(s): 赵晓杰(Rick) Jeff Pearce

Tools

Java, Web Development, Docker

Jenkins X: Consolidate the use of Apps / Addons

Consolidate Apps and Addons inside Jenkins X.

Potential Mentor(s): James Strachan Neha Gupta Michael Cirioli Oscar Medina Kara de la Marck Nikhil Da Rocha Sahil Kalra

Jenkins X: Consolidate the use of Apps / Addons

Consolidate Apps and Addons inside Jenkins X.

Potential Mentor(s): James Strachan Neha Gupta Michael Cirioli Oscar Medina Kara de la Marck Nikhil Da Rocha Sahil Kalra

Jenkins X

Go, Kubernetes

Jenkins X: Create Boot Apps

Create a simple canonical way to install any Helm chart in any namespace.

Potential Mentor(s): James Strachan Oscar Medina Kara de la Marck Sahil Kalra Nikhil Da Rocha

Jenkins X

Go, Kubernetes, Helm

Jenkins and Machine Learning Plugins for Data Science

Create a new plugin for integrating Jenkins with one of Machine Learning tools (e.g. Jupyter Python, TensorBoard, or Sacred).

Potential Mentor(s): Ioannis Moutsatsos Bruno P. Kinoshita Marky Jackson Shivay Lamba

Plugins

Java, Jenkins plugin, Apache Zeppelin, Jupyter Notebooks, Python, Machine Learning, Data Science

Jenkins Pipeline as YAML: experimental plugin

Add out-of-the-box support of Jenkins Pipeline definitions in YAML.

Potential Mentor(s): Oleg Nenashev Jeff Pearce Aytunc Beken

Plugins

Java, Jenkins Pipeline, Domain Specific Languages, YAML, Jenkins X

Plugin Installation Manager Tool Improvements

Update the plugin installation manager to integrate with the docker image and Configuration as Code projects.

Potential Mentor(s): Kristin Whetstone Tim Jacomb

Tools

Java, JSON, Command line tools, Package management tool theory

Jenkins Windows Services: YAML Configuration Support

Enhance Jenkins controller and agent service management on Windows by offering new configuration file formats and improving settings validation.

Potential Mentor(s): Oleg Nenashev Michael Cirioli Next Turn

Core, Tools

Draft project ideas

Below you can see draft project ideas, which are currently under review. The scope of such ideas may change during the discussions, but the idea is accepted in principle. You are welcome to comment on the draft and to join the project as a mentor. If you are a student, it is also fine to explore and to apply to the draft project ideas.

Project

Category

Skills to study/improve

Code Coverage API Plugin Improvements

Improve the new Jenkins Code Coverage API plugin and enhance its performance and extensibility.

Potential Mentor(s): Shenyu Zheng Jeff Pearce

Plugins

Java, JavaScript, Coverage

Jenkins REST Plugin

Create a new plugin to give Jenkins users the ability to make calls to other Jenkins instances via their REST API.

Potential Mentor(s): Sagar Utekar

Plugin

Java, REST API, Jenkins Pipeline

Personal Package Archive platform for OpenWrt

Create a platform to build and host packages for OpenWrt (PPA, or Personal Package Archive) using Jenkins X.

Potential Mentor(s): Benjamin Henrion Sahil Kalra Nikhil Da Rocha

Jenkins X

Shell, Makefiles, Docker, Kubernetes

Pipeline Step Documentation Generator improvements

Enhance the Jenkins Pipeline documentation generator to produce better documentation for thousands of Pipeline developers.

Potential Mentor(s): Kristin Whetstone Michael Cirioli

Dev Tools

Java, Jenkins Pipeline, HTML, CSS, Asciidoc, JavaScript

Jenkins Remoting Monitoring

Support monitoring of Jenkins remoting networking with open source monitoring tools such as Prometheus, Grafana, etc..

Potential Mentor(s): Oleg Nenashev 赵晓杰(Rick) Michael Cirioli Marky Jackson

Plugins, Core

Java, Networking, Docker, Prometheus/Grafana/etc.

Ongoing discussion

These are proposals in the mailing lists which have not been published as project ideas yet. The feasibility is yet to be defined, and the idea may be dismissed depending on the feedback. Everyone is welcome to participate in the discussion and to join as a potential mentor.

Project

Category

Artifactory REST Plugin

Create a new plugin to give Jenkins users the ability to make REST API calls to Artifactory natively.

Plugin

Bitbucket REST Plugin

Create a new plugin to give Jenkins users the ability to make REST API calls to Bitbucket natively.

Plugin

Improvement for Jenkins CLI written in Golang

Add new features to the new CLI tool.

Tools