Differences between revisions 2 and 11 (spanning 9 versions)
Revision 2 as of 2016-01-05 10:22:20
Size: 6498
Editor: terri
Comment: Porting over a couple of ideas from last year so the idea format is clear.
Revision 11 as of 2016-01-10 18:47:55
Size: 9064
Editor: terri
Comment: Adding warning about small project.
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
Not sure about how GSoC works? Check out the [[http://en.flossmanuals.net/GSoCStudentGuide/|GSoC student Guide]]
Line 6: Line 8:
The [[http://en.flossmanuals.net/GSoCStudentGuide/|GSoC Student Guide]] has some great general GSoC information. Read it first!
Line 40: Line 44:
Mailman is written in Python. Mailman 3 core is compliant only with python3.4 and the rest of the projects work on python2 (2.7+). You are not required to use a virtual machine for Mailman development, although many people prefer to do so. Mailman is written in Python. Mailman 3 core is compliant only with Python 3 (MM3.0 works with Python 3.4 only, but MM3.1 will work with 3.4 and 3.5) and the rest of the projects work on python2 (2.7+). You are not required to use a virtual machine for Mailman development, although many people prefer to do so.
Line 47: Line 51:
The most successful GSoC students are the ones who work closely with the Mailman team. As you might expect from a group that makes mailing list software, our preferred method of communication is our mailing list, but we also have an IRC channel. Please do not send private messages or emails unless asked to do so or the subject is personal rather than technical, since we get a lot of similar questions and would rather the questions and answers happen in public so everyone can benefit. '''The most successful GSoC students are the ones who work closely with the Mailman team.''' As you might expect from a group that makes mailing list software, our preferred method of communication is our mailing list, but we also have an IRC channel. Please do not send private messages or emails unless asked to do so or the subject is personal rather than technical, since we get a lot of similar questions and would rather the questions and answers happen in public so everyone can benefit.
Line 52: Line 56:
== Writing your Application ==

* The [[http://en.flossmanuals.net/GSoCStudentGuide/|GSoC Student Guide]] has some great information

More tips soon! In the meantime, you might want to look at [[http://wiki.list.org/DEV/Google_Summer_of_Code_2015|Last year's page]]
Line 55: Line 65:

----
=== Preset list settings templates (aka list styles) ===
Mailman can be used for a variety of different purposes: Discussion lists, announcement lists, newsletters and more. Each of those need different settings that currently need to be applied for each list separately.

The idea of this project is to make it easier for site admins to apply certain list styles to a list (or even multiple lists at once) by providing a number of fixed templates or styles that take care of the list configuration. e.g. When you want an announcement list, you'd be able to select "announcement list" and it would set it up so all posts must be vetted by the admin, posting instructions could be updated in subscriber emails, etc.

Ideally, this might also have a web interface (as part of Postorius?) where administrators can manage styles without having shell access to the machine. Minimally, we'd want to let web interface users choose from a set of templates provided by the admin.

Note that we are NOT talking about visual styles here. This project is about functional differences in the way the lists work. Barry called them "list styles" in Mailman core so you'll see them referred to that way, though.

This project will likely touch Mailman Core and Postorius.

 Difficulty:: Easy/Beginner-friendly
 Mentors:: Abhilash, Florian, Terri. All students interested in this task should discuss it on the mailman-developers mailing list.
Line 57: Line 83:
=== GitHub/development tools integration ===
Per https://twitter.com/gvwilson/status/535279362871144448 -- a tool that will take a thread from a Mailman mailing list and turn it into a thread on a !GitHub issue. Or any kind of !GitHub API integration tool (e.g., to automatically mail a Mailman list when a repo gets a new !GitHub pull request)
=== GitLab/development tools integration ===
Per https://twitter.com/gvwilson/status/535279362871144448 -- a tool that will take a thread from a Mailman mailing list and turn it into a thread on a !GitLab issue. Or any kind of !GitLab API integration tool (e.g., to automatically mail a Mailman list when a repo gets a new !GitLab pull request)
Line 60: Line 86:
This doesn't necessarily have to be github -- launchpad, gerrit, jira, bitbucket, gitlab, etc. would all be valid targets. But as !GitHub is popular and familiar to many developers, it may be a good place to start. This doesn't necessarily have to be gitlab -- launchpad, github, gerrit, jira, bitbucket, etc. would all be valid targets. Mailman uses !GitLab, so we'd love to see that one in particular (because we'd be able to use it ourselves!), but as !GitHub is extremely popular, it might be a good second target (or even first if you want to maximize general appeal!)
Line 62: Line 88:
Note that some Mailman developers may be moving some of their own working branches to !GitLab (as a GNU Project we prefer to avoid services based on closed/proprietary software for Mailman work, so !GitHub is inappropriate). With the acquisition of Gitosis by !GitLab, !GitLab is the obvious alternative for free software development. For this reason we would like to see !GitLab integration ourselves. This doesn't mean you shouldn't work on !GitHub or other closed services if that's what you need, just that if you don't have a strong preference, we do prefer !GitLab.

 Difficulty:: Easy/Beginner-friendly (although depending on what you want to do, this could get much harder!)
 Difficulty:: Easy/Beginner-friendly (for the thread->issue part; if you add in some other integration tools you can make this task more challenging!)
Line 72: Line 96:
This idea by itself is may not be enough for a Summer of Code project, so interested students should brainstorm about some related tools that might be useful and discuss them with the developers. This idea by itself is may not be enough for a Summer of Code project, so interested students should brainstorm about some related tools that might be useful and discuss them with the developers, or select a set of smaller projects that could all be done by a single student.

WARNING: Currently this is the only such small project on the Mailman ideas list; you may want to wait until there are a few smaller projects available before seriously putting together a project proposal with several smaller pieces. At the very least, discuss any other small project ideas with the developers: we get a lot of suggested ideas that aren't suitable for Mailman and don't want you to waste time developing them if they're things we'll never be able to integrate. Thanks!
Line 81: Line 108:
While you're waiting, you might want to look at [[http://wiki.list.org/DEV/Google_Summer_of_Code_2015|Last year's ideas page]] to get a sense of the type of projects we're interested in supporting over the summer. Some of last year's ideas weren't ever realized, so they may return for this year! While you're waiting, you might want to look at [[http://wiki.list.org/DEV/Google_Summer_of_Code_2015|Last year's ideas page]] to get a sense of the type of projects we're interested in supporting over the summer. Some of last year's ideas weren't ever realized, so they may return for this year!  But please don't assume that all of last year's ideas are valid -- we've taken some of them (such as the dashboard and profile pages) out of this year's list because we have code that needs to be merged in those areas before further work can be done, so they're not viable options for 2016.
Line 91: Line 118:
 * Abhilash Raj (maxking on IRC)

Google Summer of Code 2016 Ideas Page

GNU Mailman is hoping to participate in Google Summer of Code (GSoC) 2016. This page presents of some of the project ideas and guidelines on how to participate.

Not sure about how GSoC works? Check out the GSoC student Guide

Getting Started

The GSoC Student Guide has some great general GSoC information. Read it first!

Here's a few skills that will make it easier for you to get started as a Mailman developer:

  • Python programming. You can be fairly new to Python, but you're going to have to be comfortable reading the Mailman code and asking questions if you aren't sure how it works.

  • Familiarity with any version control. We use git on Gitlab, but any experience will help you here.

  • Ability to setup a development environment for Mailman. You'll need access to a Linux machine or VM, and you can get help setting it up.

  • Ability to communicate with the Mailman developers. You'll be expected to post to the public mailing lists, ask questions, and describe the work you're doing.

Specific projects may have additional desired skills listed along with them.

What is Mailman Suite?

In Mailman 3, we've divided up the code into a number of sub-projects. We refer to the whole package as "Mailman Suite" and there's a few really important pieces you should know:

  • Mailman Core - This is the part that actually sends and receives mail and handles subscriber and list information.

  • Postorious - A web interface for managing Mailman lists (e.g. subscribing, changing preferences)

  • Hyperkitty - A web interface to access GNU Mailman v3 archives.

  • Mailman Bundler - An installer to help people who want to use those 3 big pieces together.

There's also a number of smaller projects that provide the glue to make these pieces work well together, or allow them to be used separately.

All the Mailman source is now on GitLab.

Documentation & Installation

Here are some useful links to get you started with Mailman Development:

Mailman is written in Python. Mailman 3 core is compliant only with Python 3 (MM3.0 works with Python 3.4 only, but MM3.1 will work with 3.4 and 3.5) and the rest of the projects work on python2 (2.7+). You are not required to use a virtual machine for Mailman development, although many people prefer to do so.

Development work on Mailman 2.1 has been frozen for some time, so all new project ideas must be related to Mailman 3.

Contacting us

The most successful GSoC students are the ones who work closely with the Mailman team. As you might expect from a group that makes mailing list software, our preferred method of communication is our mailing list, but we also have an IRC channel. Please do not send private messages or emails unless asked to do so or the subject is personal rather than technical, since we get a lot of similar questions and would rather the questions and answers happen in public so everyone can benefit.

Writing your Application

* The GSoC Student Guide has some great information

More tips soon! In the meantime, you might want to look at Last year's page

Project Ideas

If you have other idea you'd like to propose , please send it to mailman-developers@python.org for discussion! You can also look at the to-do list for Mailman 3.0 here, and see if anything is interesting enough that you would like to work on it through the summer.


Preset list settings templates (aka list styles)

Mailman can be used for a variety of different purposes: Discussion lists, announcement lists, newsletters and more. Each of those need different settings that currently need to be applied for each list separately.

The idea of this project is to make it easier for site admins to apply certain list styles to a list (or even multiple lists at once) by providing a number of fixed templates or styles that take care of the list configuration. e.g. When you want an announcement list, you'd be able to select "announcement list" and it would set it up so all posts must be vetted by the admin, posting instructions could be updated in subscriber emails, etc.

Ideally, this might also have a web interface (as part of Postorius?) where administrators can manage styles without having shell access to the machine. Minimally, we'd want to let web interface users choose from a set of templates provided by the admin.

Note that we are NOT talking about visual styles here. This project is about functional differences in the way the lists work. Barry called them "list styles" in Mailman core so you'll see them referred to that way, though.

This project will likely touch Mailman Core and Postorius.

Difficulty
Easy/Beginner-friendly
Mentors
Abhilash, Florian, Terri. All students interested in this task should discuss it on the mailman-developers mailing list.


GitLab/development tools integration

Per https://twitter.com/gvwilson/status/535279362871144448 -- a tool that will take a thread from a Mailman mailing list and turn it into a thread on a GitLab issue. Or any kind of GitLab API integration tool (e.g., to automatically mail a Mailman list when a repo gets a new GitLab pull request)

This doesn't necessarily have to be gitlab -- launchpad, github, gerrit, jira, bitbucket, etc. would all be valid targets. Mailman uses GitLab, so we'd love to see that one in particular (because we'd be able to use it ourselves!), but as GitHub is extremely popular, it might be a good second target (or even first if you want to maximize general appeal!)

Difficulty

Easy/Beginner-friendly (for the thread->issue part; if you add in some other integration tools you can make this task more challenging!)

Mentors
Any mentor can help with this task. All students interested in this task should discuss it on the mailman-developers mailing list.


Shared bookmarking toolkit

A shared bookmarking tool that listens to a Mailman list, pulls out URLs that people mention, and adds them to an OPML file or Pinboard.

This idea by itself is may not be enough for a Summer of Code project, so interested students should brainstorm about some related tools that might be useful and discuss them with the developers, or select a set of smaller projects that could all be done by a single student.

WARNING: Currently this is the only such small project on the Mailman ideas list; you may want to wait until there are a few smaller projects available before seriously putting together a project proposal with several smaller pieces. At the very least, discuss any other small project ideas with the developers: we get a lot of suggested ideas that aren't suitable for Mailman and don't want you to waste time developing them if they're things we'll never be able to integrate. Thanks!

Difficulty
Easy/Beginner-friendly
Mentors
Any mentor can help with this task. All students interested in this task should discuss it on the mailman-developers mailing list.


More project ideas coming soon!

While you're waiting, you might want to look at Last year's ideas page to get a sense of the type of projects we're interested in supporting over the summer. Some of last year's ideas weren't ever realized, so they may return for this year! But please don't assume that all of last year's ideas are valid -- we've taken some of them (such as the dashboard and profile pages) out of this year's list because we have code that needs to be merged in those areas before further work can be done, so they're not viable options for 2016.

For Mentors

If you're interested in mentoring, please join mailman-developers@python.org and let us know!

Current list of prospective mentors

  • Terri Oda (terri on IRC)
  • Abhilash Raj (maxking on IRC)

MailmanWiki: DEV/Google Summer of Code 2016 (last edited 2016-03-08 20:55:53 by SimonHanna)