Proposing new project ideas
New project ideas for GSoC can be proposed by mentors, GSoC applicants, or anyone in the Jenkins community with an idea they’d like to see implemented.
Note: Project ideas should not be confused with GSoC applicant proposals.
GSoC applicants: to browse the existing project ideas offered by the Jenkins Organisation, please read the instructions on the GSoC contributor page.
Proposal quick start
If you would like to propose a project idea to the Jenkins community for the GSoC program, then you are a Jenkins GSoC Idea champion. You should follow the following steps:
-
Share your idea on the Jenkins GSoC gitter channel or on the GSoC Discourse channel
-
On Discourse, use
[GSOC 2023 PROJECT IDEA] Title of idea
as the subject -
The GSoC idea must:
-
be about coding
-
be about Jenkins
-
be open-source
-
benefit users or contributors or both
-
identify the best channel to discuss the idea (SIG, sub-project, or developer mailing list)
-
-
The technical discussion of the idea should cover:
-
the technical feasibility and the required changes to existing code when applicable
-
the scope of the project (it should be defined to fit approximately 12+ weeks of coding for a GSoC contributor)
-
how it fits with existing projects (does it complement, augment, replace, combine, fix, etc. an existing project?)
-
Once the discussion has started on Discourse,
you can submit your idea for publication on the page of GSoC ideas under the discussion section
by sending a pull request with an .adoc
file for your project idea.
-
fork and clone the jenkins.io repository
-
create a new
.adoc
file under the appropriate yearly folder in content/projects/gsoc.
For more on the adoc
format see asciidoctor.org.
The format for the .adoc
file is as follows:
---
layout: gsocprojectidea
title: "Specify the project idea title"
goal: "One sentence summarizing the goal of your idea"
category: Plugins
year: 2023
status: discussion
mentors:
- "userid1" # This userid must exist under /content/_data/authors/userid.adoc on jenkins.io
- "userid2" # You can have multiple mentors (and remove these comments when submitting)
skills:
- skills_go_here
- add_more_if_needed
links:
emailThread: link to the Discourse discussion thread in https://community.jenkins.io/c/contributing/gsoc/6
---
TODO: DRAFT (this is a placeholder, it will not be shown)
The last step is to submit this new file as a pull-request.
When you submit a pull-request
-
add
CC @jenkins-infra/gsoc
so we get a notification, or request a review fromjenkins-infra/gsoc
-
add a link to the related Discourse thread
-
assign the gsoc Label to the PR if you can
-
post the pull-request link to the Jenkins GSoC gitter channel and to the GSoC Discourse channel as a follow up to your original thread.
-
If your idea gets good feedback, and you want to proceed with it,
you will need to provide details about the project idea.
This can be done using the .adoc
file itself, a Google Doc, or both.
What’s the difference?
A Google Doc lowers the barrier of entry for comments and feedback, and multiple authors can collaborate on the idea simultaneously.
It is possible to discuss the project using the comments, but in the end the comment history is hidden once the comments are resolved.
A pull-request is more rigid and once it is merged, the discussion about the project must take place either in subsequent pull-requests,
or in a chat room or Discourse. Both are offered and simultaneously possible, use the method that works best for you.
Using .adoc
for capturing the details of the idea
To use the .adoc
file for the details, please modify your .adoc
file according to this template:
---
layout: gsocprojectidea
title: "Specify the project idea title"
goal: "One sentence summarizing the goal of your idea"
category: Plugins
year: 2023
status: draft
mentors:
- "userid1" # This userid must exist under /content/_data/authors/userid.adoc on jenkins.io
- "userid2" # You can have multiple mentors (and remove these comments when submitting)
skills:
- skills_go_here
- add_more_if_needed
links:
{gitter}jenkinsci_gsoc-sig:gitter.im # This can be the gitter link of your project's chat room
---
Write your project idea here. Sometimes an abstract is enough, but you should include:
* A short description of the project
* The benefits to the community
* A list of comparable solutions, and why your idea is better
* Anything you want to say about your project idea
* GSoC contributors will read this when they look to participate in the program, so make sure you catch their attention!
* Have a look at other project ideas for inspiration to improve the way you present your idea
== Quickstart
You may have quick start instructions for GSoC contributors, e.g. how to get started on your proposal. Provide this information here.
== Links
You may have additional links to the ideas here, including related discussions on
the Jenkins Dev or Jenkins GSoC Discourse, blogposts, Jiras, etc.
Links looks like this:
# Absolute link
link:https://plugins.jenkins.io/role-strategy[Role Strategy Plugin]
# Relative links within jenkins.io
xref:projects:gsoc:students.adoc[Information page for GSoC contributors]
== Newbie-friendly issues
If you are a potential mentor, propose examples of tickets the applicants could
study while preparing their project proposals.
We do NOT require GSoC contributors to make contributions before applying,
but such tasks may help to select GSoC contributors who are interested to work on the project.
Using a Google Doc for capturing the details of the idea
To use a Google Doc for the details, please modify your .adoc
file according to this template:
---
layout: gsocprojectidea
title: "Specify the project idea title"
goal: "One sentence summarizing the goal of your idea"
category: Plugins
year: 2023
status: draft
showGoogleDoc: true # This line causes the google doc to be embedded on jenkins.io
mentors:
- "userid1" # This userid must exist under /content/_data/authors/userid.adoc on jenkins.io
- "userid2" # You can have multiple mentors (and remove these comments when submitting)
skills:
- skills_go_here
- add_more_if_needed
links:
draft: <link to Google Doc>
---
See Google doc.
Submitting the project details
Whether you use a Google Doc, the .adoc
file or both to document the details of the project idea,
you need to submit a pull-request, following the process described earlier in this document.
Make sure you post and follow up to all the places where your idea is discussed
so that participants get the link to the Google Doc.
Publishing the idea
Project ideas are published once they have been reviewed by the Org Admin team to ensure they contain enough information, all the expected sections, and that the meta information is correct (sig, links, mentors, etc.).
Publishing is done via a pull-request that changes the status to published
.
Requirements
-
GSoC is about code (though it may and likely should include some documentation)
-
Projects should be about Jenkins (plugins, core, infrastructure, integration, test frameworks, etc.)
-
Projects should be potentially doable by a GSoC contributors in 12+ weeks
-
If your project takes multiple years, try to split it in 12+ weeks long chunks so it fits with the GSoC timeline
You can find more information about requirements and practices in the GSoC Mentor Guide.
Examples
Need some hints? Here are examples of project ideas:
-
A new plugin for integration with various development tools or services
-
Adopting an existing plugin, extending it by adding new features like Jenkins Pipeline
-
Working on major feature requests from the Jenkins bugtracker
-
Creating new demo and reference setups, powered by various "-as-Code" engines (e.g. Jenkins Pipeline, JobDSL, Docker, Configuration-as-Code plugin, etc.)
Notes for GSoC applicants
Although we encourage GSoC applicants to propose their own project ideas, we cannot guarantee that will find potential mentors for every proposal, especially for narrow areas. During the selection phase we won’t be able to accept proposals without mentors, so we highly recommend getting initial feedback in the GSoC Discourse channel before spending too much time on such proposals.