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

Advanced Build Discard Strategy Plugin

Improve the existing Discard old builds feature with an Advanced Build Discarder Strategy plugin.

Potential Mentor(s): Martin d’Anjou Arnab Banerjee

Plugins

Java

Artifact Promotion plugin for Jenkins Pipeline

Create a new highly anticipated engine for managing promotions in Jenkins Pipeline, with modern UIs and REST APIs.

Potential Mentor(s): Claus Schneider Oleg Nenashev Jon Brohauge

Plugins

Java, JavaScript, REST API

Artifactory REST Plugin

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

Potential Mentor(s): Martin d’Anjou Christopher Dancy

Plugin

Java, REST API, Artifactory, Jenkins Pipeline

Improvements to the Jenkins Acceptance Test Harness

Improve performance of the framework for WebUI and Integration testing.

Potential Mentor(s): Martin d’Anjou Oliver Gondža Ramon Leon

Dev Tools

Java, Docker, Selenium

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): Martin d’Anjou Kristin Whetstone Oleg Nenashev Supun Wanniarachchi

Plugins

Java, REST API, OpenAPI / Swagger

Bitbucket REST Plugin

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

Potential Mentor(s): Martin d’Anjou Christopher Dancy Shenyu Zheng

Plugin

Java, REST API, Bitbucket, Jenkins Pipeline

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

Configuration as Code Plugin Compatibility

Update Jenkins plugins to make them compatible with the emerging Configuration-as-Code plugin which allows configuring Jenkins with YAML.

Potential Mentor(s): Ewelina Wilkosz Oleg Nenashev Tim Jacomb Jon Brohauge Martin d’Anjou

Plugins

Java, YAML, Configuration Management

Polling Docker Registries for Image Changes

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

Potential Mentor(s): Andrey Falko Justin Harringa Ankit Jain

Plugins

Java, Docker

EDA Coverage Adapters

Create Jenkins plugins for various Electronic Design Automation coverage reports.

Potential Mentor(s): Martin d’Anjou Oleg Nenashev Udara De Silva 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): Martin d’Anjou Oleg Nenashev

Plugins

Java, EDA Tools

Cloud Features for External Workspace Manager Plugin

Add support of provisioning workspaces from cloud services.

Potential Mentor(s): Martin d’Anjou Patrick Hynes Pham Vu Tuan 赵晓杰(Rick) Alexandru Somai

Plugins

Java, Cloud-based storage (e.g. Amazon EFS)

External Fingerprint Storage for Jenkins

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

Potential Mentor(s): Oleg Nenashev Pham Vu Tuan Mike Long

Core

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

Freestyle job to Pipeline job converter

Offer new plugins and tools to simplify migration from Freestyle projects to the new Pipeline job type.

Potential Mentor(s): Craig Rodrigues Martin d’Anjou

Plugins

Java, XML, Python, Groovy, Jenkins Pipeline

Multi-branch Pipeline support for Gitlab SCM

Add Multi-branch Pipeline support for Gitlab SCM private and SaaS instances so that Jenkins can automatically build branches and pull requests with Jenkinsfile.

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

Plugin

Java, Gitlab SCM

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): Martin d’Anjou Christopher Dancy

Plugin

Java, REST API, Jenkins Pipeline

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): Martin Holeček Denis Joubert Ioannis Moutsatsos Bruno P. Kinoshita Marky Jackson

Plugins

Java, Python, Machine Learning & Tools, Jenkins Pipeline, Data Science

Pipeline Step Documentation Generator improvements

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

Potential Mentor(s): Martin d’Anjou Kristin Whetstone

Dev Tools

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

Plugin Installation Manager CLI Tool / Library

Create a new tool to unify plugin management across the Jenkins ecosystem .

Potential Mentor(s): Oleg Nenashev Baptiste Mathus

Tools

Java, Maven, Go, Dependency Management, Docker, Configuration-as-code

Jenkins Remoting Monitoring

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

Potential Mentor(s): Pham Vu Tuan Oleg Nenashev Supun Wanniarachchi Jeff Thompson 赵晓杰(Rick) Ankit Jain

Plugins, Core

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

Remoting over Apache Kafka. Docker/K8s Features

Enhance the plugin and to provide out-of-the box management in Docker and especially Kubernetes environments.

Potential Mentor(s): Pham Vu Tuan Oleg Nenashev Andrey Falko Supun Wanniarachchi Jeff Thompson Jeff Pearce

Plugins, Core

Java, Apache Kafka, Docker, Kubernetes

Role Strategy Plugin performance

Improve performance of one of the most popular authorization plugins in Jenkins.

Potential Mentor(s): Oleg Nenashev 夏润泽(RunZe Xia) Pham Vu Tuan

Plugins

Java, Performance Testing

Role Strategy Plugin: user experience

Improve UI and REST APIs using new technologies to make it more user-friendly.

Potential Mentor(s): Oleg Nenashev Supun Wanniarachchi 夏润泽(RunZe Xia)

Plugins

Java, JavaScript, REST/GraphQL

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 Arnab Banerjee

Core, Tools

C#, .NET, Windows, Windows Services, YAML, Java (optional)

Working Hours Plugin - UI Improvements

Rewrite Working Hours plugin UI in React, providing much needed usability Improvements.

Potential Mentor(s): Jeff Pearce

Plugins

Java, JavaScript, React

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