Jenkins in Google Summer of Code 2016

This is an archived page about Jenkins project participation in Google Summer of Code 2016. See the main GSoC project page of the information about current and previous years.

2016 Student Projects

Jenkins project participated in the Google Summer of Code 2016 with five student projects.

Support-core plugin improvements

The objective of this project is to make improvements for support-core plugin by implementing the following three features and functionalities which have been requested in issue tracker. JENKINS-33090 JENKINS-33091 JENKINS-21670

Automatic Plugin Documentation Publishing

Currently Jenkins has plugin documentation is being stored in Confluence. Sometimes the documentation is scattered and outdated. In order to improve the situation we would like to follow the documentation-as-code approach and to put docs to plugin repositories and then publish them on the project website using the awestruct engine. The project aims an implementation of a documentation continuous deployment flow powered by Jenkins and Pipeline Plugin.

External Workspace Manager Plugin

link: "Gitter"</a>

Currently, Jenkins’ build workspace may become very large in size due to the fact that some compilers generate very large volumes of data. The existing plugins that share the workspace across builds are able to do this by copying the files from one workspace to another, process which is inefficient.

  • provide an external workspace management system

  • facilitate workspace share and reuse across multiple Jenkins jobs

  • eliminate the need to copy, archive or move files

Additional details about the plugin may be found on the blog post introduction.

Work summary

Here’s a summary of the contributions that have been made during this project:


Jenkins 2.0 Web Interface Improvements: New Job Creation and Configuration

Although powerful, Jenkins new job creation and configuration process may be non obvious and time consuming. This can be improved by making UI more intuitive, concise, and functional. I plan to achieve this by creating a simpler new job creation, configuration process focused on essential elements, and embedding new functionality.

Jenkins Usage Statistics Analysis

Jenkins is a powerful application that allows continuous integration and delivery of products. It has collected anonymous usage information of more than 100,000 installations. Our goal is to perform various analysis and studies over this dataset to discover trend in resource utilisation for example plugins utilisation, spotting downgrades etc. This project covers a wide range of high priority problems which need to be solved. Problem such as how quickly users are upgrading Jenkins and its plugin, will give us the insight of popularity & unpopularity of the releases. Spotting downgrades will warn that something is wrong with the version. Correlating what users are saying(community rating) with what users are doing (upgrades/downgrades). Finding set of the plugins which are most likely to be used together will setup the pillars for development of plugin recommendation system. These were the few set of the problems that will give better insights of Jenkins utilization with some of the basic data mining studies like latest trend in the installation size, pie charts for platforms in use and ranking the users.