Jenkins GSoC application draft, 2019
The data below represents the 2019 GSoC application draft.
Please feel free to contribute to it by proposing pull requests against the page.
- Tagline (up to 80 symbols): Open-source automation server for building great things at any scale
- Technology tags (max 5):
- Topic Tags (max 5)
- continuous integration
- continuous delivery
- developer tools
- Ideas list: https://jenkins.io/projects/gsoc/2019/project-ideas/
- Primary open-source license: MIT License
- Category: Programming Languages and Development tools
- Logo: https://wiki.jenkins.io/download/attachments/2916393/logo-title.png
Jenkins is an open source automation server.
Built primarily in Java, it provides hundreds of plugins to support building, testing, deploying and automating virtually any project.
Long description (Markdown)
Jenkins, originally founded in 2006 as "Hudson", is one of the leading automation servers.
Jenkins' motto is "Build great things at any scale".
Using an extensible, plugin-based architecture developers have created hundreds of plugins to adapt Jenkins to a multitude of build, test, and deployment automation workloads.
Jenkins core is open-source (MIT License)
The project has about 400 active contributors working on Jenkins core, plugins, website, project infrastructure, localization activities, etc.
In total we have more than 2000 components including plugins, libraries, and various utilities.
but we also have components written in other languages (Go, C/C++, C#, etc.).
Jenkins project also includes multiple
sub-projects (including Jenkins X,
and Remoting) and
special interest groups.
These projects and SIGs participate in GSoC as a part of the Jenkins project.
This year we invite students to join the Jenkins community and to work together on Jenkins plugins in order to improve Jenkins user experience and reliability.
In order to apply to the organization, please follow the guidelines posted on our website.
Before submitting please go through the page (including the expectations section) and through the Student guide.
Participating in Google Summer of Code is a serious commitment requiring an almost full-time dedication over several months.
If it may overlap with your study and other commitments, we recommend to think twice before applying.
If you have any questions about the application process,
please feel free to contact us via the mailing list or the chat.
- user experience
- developer tools
- electronic design automation
- web interfaces
- REST API
- cloud technologies
- Chat page URL: https://gitter.im/jenkinsci/gsoc-sig
- Mailing list page URL: https://jenkins.io/projects/gsoc/#contacts
- General-purpose e-mail: firstname.lastname@example.org
Why does your org want to participate in Google Summer of Code?
In our community we are interested in more contributors in both Jenkins core and more than 1,000 of existing plugins.
We consider Google Summer of Code as an opportunity to find new contributors and students interested in software development automation (continuous integration and continuous delivery).
For us it is also a great opportunity to get existing contributors more involved into the community work.
We have previously participated in GSoC 2016/2018 and got much experience from it, especially regarding the student selection process.
We hope this will help us to improve student/mentor experience and overall results this year.
How many potential mentors have agreed to participate?
How will you keep mentors engaged with their students?
- Each student project will have at least 2+ mentors AND org admin advisor assigned to the project.
- Mentors are expected to be accomplished Jenkins contributors, who are passionate about the community/mentorship work.
- Mentors bring their own project, and they are expected to have a high interest in it
- Mentors will be directly involved into student selection and interview processes so they will establish connection with successful students early
- We do not require mentors to be experts in the code base, because we expect students to work with other community members.
- Starting from Dec 2018 we conduct weekly meetings between mentors and org admins to sync-up on progress and any issues:
- As org admins we will be monitoring mentor/student interaction starting from the application phase. If something goes wrong, as org admins we will jump in and/or find additional mentors
How will you help your students stay on schedule to complete their projects?
- During the Community Bonding phase mentors will share their expertise in order to define realistic project plans, design document, and effort estimations.
- The student project milestones will be discussed and confirmed between mentors and students.
Milestones will be aligned with student evaluations and will have clear expectations set up.
- Mentors will set up regular meetings with students (at least twice per week) in order to sync-up on projects.
We will also recommend having retrospectives with students after evaluations.
- Mentors should be available for questions.
They should also provide a periodic feedback on the progress of the project and on the performance of particular students (1x1).
- We will set up weekly public office-hours with students (or two meetings if time-zones require it) and private ones between mentors and org admins to sync-up
- We will be requiring a daily push to branches so that the students always show the progress and keep changes atomic.
- Students will cooperate with Jenkins community during the project.
Org Admins will provide an introductory training (community overview, code-of-conduct, etc.),
then mentors will help students to establish contacts with experts from the community
- We will ensure that students are around in public chats and other communication channels during the “working days”
- Students will be encouraged to present proofs-of-concept of their projects on public Jenkins Developer meetings and in blog posts
- Students will be involved into all standard processes in our community (including pull requests, code reviews, IRC/Gitter discussions, test automation for their projects, documentation development, etc.).
- Students may be participating in Jenkins Governance Meetings (https://wiki.jenkins-ci.org/display/JENKINS/Governance+Meeting+Agenda).
- The Jenkins project has an active blog, and students will be encouraged to use this to give updates to the wider community.
- There will be a DevOps World - Jenkins World conference in USA in August 2019 and then in Europe in Dec 2019.
We plan sponsoring successful students to go to this or other Jenkins-focused conference & contributor summit.
The projects will be also presented at the Jenkins Online Meetup.
- Students will be developing their own modules for Jenkins and effectively they will retain ownership of these modules after GSoC (they can opt-out, of course).
Public presentations will attract attention, and the students will be periodically contacted by users.
- Students will be also advised to present their projects at local Jenkins Area Meetups (https://jenkins.io/projects/jam)
- Each project will have a strict Definition Of Done: public availability, Q&A chats, blog posts on the project website.
The students will be visible in the community even after GSoC
Has your org been accepted as a mentoring org in Google Summer of Code before?
Yes, in 2016 and 2018
2018: 2/3 (+1 cancelled project during community bonding)
2016: 1/5 (3 students have been failed due to major undisclosed time commitments, which impacted the project quality at the first coding phase)
If your org has applied for GSoC before but not been accepted, select the years
What year was your project started?
Where does your source code live
Are you part of a foundation/umbrella organization?
Yes, Software in the Public Interest, Inc. (http://spi-inc.org) a 501 (c) (3) non-profit organization
Anything else we should know (optional)?
There is a probability that Jenkins project migrates from SPI to Linux Foundation this year
GSoC org admins closely monitor this topic,
and we will make sure to notify GSoC Support team if this migration impacts the organization payment process.