Proposing new project ideas

New project ideas for GSoC can be proposed by mentors, students, or anyone in the Jenkins community with an idea they’d like to see implemented.

Note: Project ideas should not be confused with student proposals.

Students: to browse the existing project ideas offered by the Jenkins Organisation, please read the instructions on the students 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:

  1. Share your idea on the Jenkins GSoC gitter channel or on the GSoC mailing list

  2. On the mailing list, use [GSOC 2020 PROJECT IDEA] Title of idea as the subject

  3. The GSoC idea must:

    1. be about coding

    2. be about Jenkins

    3. be open-source

    4. benefit users or contributors or both

    5. identify the best channel to discuss the idea (SIG, sub-project, or developer mailing list)

  4. The technical discussion of the idea should cover:

    1. the technical feasability and the required changes to existing code when applicable

    2. the scope of the project (it should be defined to fit approximately 3 months of full time coding for a student)

    3. how it fits with existing projects (does it complement, augment, replace, combine, fix, etc. an existing project?)

Once the discussion has started on the mailing list, 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.

  1. fork and clone the jenkins.io repository

  2. 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: 2020
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 email thread in https://groups.google.com/forum/#!forum/jenkinsci-gsoc-all-public
---

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

  1. add CC @jenkins-infra/gsoc so we get a notification, or request a review from jenkins-infra/gsoc

  2. add a link to the related mailing list thread

  3. assign the gsoc Label to the PR if you can

    1. post the pull-request link to the Jenkins GSoC gitter channel and to the GSoC mailing list 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 a mailing list. 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: 2020
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" # 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
* Students 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 students, 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 User mailing list, blogposts, Jiras, etc.

Links looks like this:

# Absolute link
link:https://plugins.jenkins.io/role-strategy[Role Strategy Plugin]

# Relative links within jenkins.io
link:../../students[Information page for students]


== 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 students to make contributions before applying,
but such tasks may help to select students 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: 2020
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.

Using both the .adoc and the Google Doc

To use both, add a draft entry to the links like this:

links:
    draft: <link to google doc>
    ...

And remove the line that says showGoogleDoc: true.

The .adoc will be displayed, and the Google Doc will be linked at the bottom.

The .adoc can have links to chat rooms, mailing lists, etc. Simply name the links and they will be displayed:

links:
    mailing list: https://somelink to the mailing list
    chat: https://some link to a chat room on gitter or slask or other

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 student in 3-4 months

  • If your project takes multiple years, try to split it in 3-4 month 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:

Notes for students

Although we encourage students 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 mailing lists before spending too much time on such proposals.

More examples of how to write project ideas

Refer to the following files on Github for additional example to format your project idea submission: