Fork us on GitHub

Google Summer of Code

This page is about Google Summer of Code (GSoC) 2017. Information about the previous year is archived and referenced below.

Preparation is still underway for GSoC 2017; the project has not been accepted yet. The list of accepted organizations will be published on Feb 28. All students are welcome to start project discussions before this date.

About GSoC

Jenkins GSoC

Google Summer of Code (GSoC) is an annual, international, program which encourages college-aged students to participate with open source projects during the summer break between classes.

Students accepted into the program receive a stipend, paid by Google, to work well-defined projects to improve or enhance the Jenkins project. In exchange, numerous Jenkins community members volunteer as "mentors" for students to help integrate them into the open source community and succeed in completing their summer projects.

Student Application process

Application steps

  1. Check out the project ideas (see below).

  2. Select an interesting project idea or draft your own proposal.

  3. If you are not familiar with Jenkins, read the introductory info on the website and trying it out with one of your previous projects.

  4. Join the jenkinsci-dev and jenkinsci-gsoc-all-public mailing lists

  5. If you do not have a GitHub account, create one

  6. Introduce yourself the community and start your project proposal discussion by sending an introductory email to the jenkinsci-dev Google Group (see the guidelines below).

  7. Join us at GSoC office hours.

NOTE: Please note that jenkinsci-dev mailing list is publicly visible inside and outside the community. It is required for the initial review and feedback collection.

First email to jenkinsci-dev

  • Please use the [GSoC2017] - prefix in your message subject

  • In the first e-mail we would be interested to see the following information:

  • A short self-introduction: your area of study, interests, background

  • Motivation letter. Why are you interested in the Jenkins project? On which project areas would you like to work? If there are particular proposals, please let us know about them as well, and any initial thoughts on why you would be suited

  • If you participate in open-source projects, please reference them

  • If you have profile pages in professional networks like LinkedIn, please reference them

  • If you have a Twitter account, a blog or technical/scientific publications, please reference them as well

In GSoC we do not hire you in the common sense. Please do not just send us your CVs or universal cover letters. We are mostly interested to understand your interests and your motivation to work in the project.

Project ideas

Below you can find project ideas proposed by potential mentors. Students are eligible to submit any other Jenkins-related ideas though it may be hard to find mentors in particular cases.

Plugin Conversion to Blue Ocean

One of the major initiatives in the Jenkins project is an updated interface and user experience, called Blue Ocean. Some of the popular Jenkins plugins will require conversion to the Blue Ocean plugin architecture.

Students will use modern technologies (e.g. React, NodeJS, and/or Java) to help convert the most widely used plugins to work with Blue Ocean with help from Blue Ocean core developers. We expect students to select a particular plugin (or plugins) together with potential mentors and then to come up with a list of improvements to be made.

Prerequisites:

  • Basic knowledge of the Web development area

  • Basic knowledge of Java and JavaScript programming languages

Potential mentors: Keith Zantow and other Blue Ocean team members

EDA tool integration plugin

The idea is to create a Jenkins plugin for one of the widely used Electronic Design Automation (EDA) tools.

Tools from both ASIC or FPGA design flow are acceptable. We are ready to consider conditionally-free and open-source tools, which would be available to the student and his mentors.

Prerequisites:

  • Basic knowledge of the hardware engineering area

  • Basic knowledge of Java programming language

  • Hands-on experience with the selected EDA tool

  • In the case of FPGA flows it would be useful to have a prototyping board as well

Potential mentors: Martin d’Anjou, Oleg Nenashev

Support core plugin improvements

It is often difficult for plugins developers to diagnose issues and analyse the user environment.

The Support Core plugin allows users to generate a bundle to help on this but it is nowadays rarely used because it is isn’t user friendly. Various fixes and improvements may help our community a lot.

Few ideas of new features to add:

Prerequisites:

  • Basic knowledge of Jenkins (as a user)

  • Basic knowledge of Java programming language

Getting in touch

Chat and Mailing lists

There are the following main resources:

Technical conversations:

  • jenkinsci-dev@googlegroups.com - for all technical discussions and the project application

  • #jenkins IRC channel on FreeNode. More Info

Organizational questions:

  • jenkinsci-gsoc-all-public@googlegroups.com - sync-ups on organizational topics (meeting scheduling, process Q&A)

  • jenkinsci-gsoc-orgs@googlegroups.com - for private communications with Jenkins GSoC Org Admins (escalations)

Office hours

During the GSoC timeframe we will have regular public office hours for students and mentors. These office hours will start when and if the project gets accepted.

Schedule:

  • Every Friday, from 7PM .. 8PM UTC

  • Meetings will be held via Google Hangouts in https://jenkins.io/hangout

  • Office hours will not be recorded

In addition to public office hours, mentors will setup regular status meetings with students.

Expectations from students

The section below is under development. The expectations may slightly change before the beginning of the Student application period.

Student application process

  1. We expect students to get involved into project discussions on the beginning of the student application period in order to have opportunity to discuss the project with them and to jointly review the proposal drafts.

  2. We expect students to attend at least one office hours during the application period.

  3. We expect proposals to contain all the sections discussed in the GSoC Student Guide

Community bonding

Students and mentors are expected to…​

  1. Work closely in order to study the area of their project and to get introduced to the key stakeholders and contributors in the area of the project

  2. Define the communication ways (chats, etc.) and setup regular meetings (recommended - at least 2 meetings per week)

  3. Create a mini-design for the project, which would include top-level architecture and implementation plan with milestones

  4. Prepare the development environment, including setup of the development tools and getting of special permissions (if required)

  5. Attend Jenkins governance meetings if the timezone allows

  6. Spend a significant amount of time on study and design during the community bonding

Coding period

Students are expected to…​

  1. Work on the GSoC project as it is a full-time employment.

    • It means that 30..40 hours per week is an expected workload though it can be adjusted upon the agreements with mentors.

    • It also means that you have ~5 "vacation days" during the project, do not hesitate to use them if required

  2. Use weekend to have a rest, avoid significant overwork and enjoy coding

  3. Timely notify mentors in the case of emergencies and outages (missing scheduled meetings, etc.).

  4. Timely notify mentors and org admins about unexpected time commitments

  5. Be around in #jenkins IRC and in the project chats during the working hours

  6. Attend Jenkins governance meetings if the timezone allows

  7. Be proactive; reach out to the community if required

  8. Produce the good quality code with reasonable amount of testing and documentation

  9. Have a finalized deliverable at the end of the project

Students are not expected to…​

  1. Strictly follow the originally submitted mini-design and the project proposal

    • The world is not ideal, and there may be unexpected obstacles or shortcuts

    • Upon the discussion with mentors, any plan can be adjusted

    • We expect students to achieve at least some goals in the original proposal

  2. Investigate and solve every issue on their own

    • We have mentors and experts, who can help you by answering questions and doing joint investigation if required

Evaluations

  1. At the end of the each coding phase students and mentors present the project status at the public meeting

  2. As a part of the Final evaluation students present the project results at the Jenkins Online Meetup

Post-GSoC

Depending on the project results, and available budget, we may offer a sponsored trip to Jenkins world or another Jenkins-related event to students who successfully finish their projects. This sponsorship is not guaranteed though.

If students agree to go to such event, we expect them to present their project and to write a blog-post about the trip.

Previous years