Differences between revisions 21 and 22
Revision 21 as of 2015-01-25 07:57:15
Size: 11550
Editor: maxking
Comment:
Revision 22 as of 2015-01-25 08:14:03
Size: 11455
Editor: maxking
Comment:
Deletions are marked like this. Additions are marked like this.
Line 55: Line 55:
We're still discussing possible ideas for 2015, and they'll appear here as we sort them out.  If you have another idea you'd like to propose (either as a prospective student, mentor, or interested community member), please send it to [[mailto:mailman-developers@python.org|mailman-developers@python.org]] for discussion!  You can also look at older idea lists linked from the [[../|Development Home]] page (Sprints section, near the bottom), but do be careful – many of those ideas are now irrelevant, were rejected, or (yay!) have been implemented. If you have other idead you'd like to propose (either as a prospective student, mentor, or interested community member), please send it to [[mailto:mailman-developers@python.org|mailman-developers@python.org]] for discussion!  You can also look at older idea lists linked from the [[../|Development Home]] page (Sprints section, near the bottom), but do be careful – many of those ideas are now irrelevant, were rejected, or (yay!) have been implemented.

----
Line 65: Line 67:
'''Skills:'''
 * Understanding of mailing list communication. For example, you should have a rough idea of some answers to the following questions: "How do people talk on mailing lists? What sort of threads would they want to unsubscribe from? What sort of interface would work best for this?" (although be open to working with real users!)
 Skills::
 Understanding of mailing list communication. For example, you should have a rough idea of some answers to the following questions: "How do people talk on mailing lists? What sort of threads would they want to unsubscribe from? What sort   of interface would work best for this?" (although be open to working with real users!)
Line 68: Line 70:
'''Difficulty Level:'''
 * This is at least an intermediate task, as the ideal student will have to follow this through Mailman Core, Postorius (to add a web interface for subscribing/unsubscribing) and Hyperkitty (to make the archives aware of the dlists)
 Difficulty Level::
 This is at least an intermediate task, as the ideal student will have to follow this through Mailman Core, Postorius (to add a web interface for subscribing/unsubscribing) and Hyperkitty (to make the archives aware of the dlists)
Line 71: Line 73:
'''More Reading'''
* [[http://wiki.mailman.psf.io/DEV/Dynamic%20Sublists|Dynamic Sublists wiki page]]
 * Mailman bug "Rip out or redesign the topic system" (see [[https://bugs.launchpad.net/mailman/+bug/975705|bug 975705]])
 * Link to whitepaper about dlists goes here
 More Reading::
  
* [[http://wiki.mailman.psf.io/DEV/Dynamic%20Sublists|Dynamic Sublists wiki page]]
   * Mailman bug "Rip out or redesign the topic system" (see [[https://bugs.launchpad.net/mailman/+bug/975705|bug 975705]])
   * Link to whitepaper about dlists goes here

----
Line 80: Line 84:
Some plugin ideas:
 * Spam Assassin integration. This would involve making it possible for list admins to set a threshold for their list and have Mailman discard any messages with a Spam Assassin score higher than the threshold.
   * This would involve some work in Postorius to add an interface as well as work with Mailman Core for the plugin.
   * Setting up Spam Assassin can be non-trivial, so make sure you know how to do this before proposing this plugin idea!
 * Add your own here!
 Some plugin ideas::
   * Spam Assassin integration. This would involve making it possible for list admins to set a threshold for their list and have Mailman discard any messages with a Spam Assassin score higher than the threshold.
     * This would involve some work in Postorius to add an interface as well as work with Mailman Core for the plugin.
   * Setting up Spam Assassin can be non-trivial, so make sure you know how to do this before proposing this plugin idea!
   * Add your own here!
Line 86: Line 90:
'''Difficulty Level:'''
 * Intermediate or advanced, since you will be the first person to use the plugin system and will have to be comfortable with suggesting architectural changes if needed
 Difficulty Level::
 Intermediate or advanced, since you will be the first person to use the plugin system and will have to be comfortable with suggesting architectural changes if needed
Line 89: Line 93:
'''More reading:'''
 * A link to Barry's plugin documentation needs to go here.
 More reading::
   * zope.interfaces and its implementation on mailman.

----
Line 97: Line 103:
'''Skills:'''
 * Some level of experience in working with Javascipt(since it would involve fairly good amount of JS coding)
 Skills::
 Some level of experience in working with Javascipt(since it would involve fairly good amount of JS coding)
Line 100: Line 106:
'''Difficulty Level:'''
 * This is a beginner level task, best suited for those having some Javascript experience...
 Difficulty Level::
 This is a beginner level task, best suited for those having some Javascript experience
Line 103: Line 109:
'''More Reading:'''
 * Source and documentation of the current [[ https://launchpad.net/mailman.client | mailman-client ]]
 * Look for REST Server documentation in mailman core.
 More Reading::
   * Source and documentation of the current [[ https://launchpad.net/mailman.client | mailman-client ]]
   * Look for REST Server documentation in mailman core.
Line 107: Line 113:
----
Line 114: Line 121:
'''Skills:'''
 * Knowledge about message queues
 Skills::
 Knowledge about message queues
Line 117: Line 124:
'''Difficulty Level:''':
 * Intermediate or advanced depending on the actual proposal of the student.
 Difficulty Level::
 Intermediate or advanced depending on the actual proposal of the student.
Line 120: Line 127:
'''More reading:'''
 * Look for IListArchiver in mailman's source code.
 More reading::
   * Look for IListArchiver interface in mailman's source code.

----
Line 128: Line 137:
'''Difficulty Level:'''
 * Intermediate
 Difficulty Level::
 Intermediate
Line 131: Line 140:
----
Line 132: Line 142:
=== Continuous Integration for Mailman ==== === Continuous Integration for Mailman Suite ===
Line 137: Line 147:
'''Difficulty Level:'''
  * Beginer
 Difficulty Level::
 Beginer
Line 140: Line 150:
'''More reading:'''  More reading::

Google Summer of Code 2015 Ideas Page

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

Skills Required

These skills are appreciated but their absence in no way disqualifies anyone from participating. Specific projects may have their desired skills listed along with them.

  • Intermediate Python programming (for instance, you can write list comprehensions, classes, subclasses, and generators, and you at least sometimes use virtual environments, even if you are not yet comfortable making your own decorators)
  • Familiarity with any version control (Mailman core and Postorius uses bzr, !Hyperkitty ues git) (note: this may change for MM core by GSoC if Launchpad gains git support.)
  • Ability to setup your own development environment for Mailman

Note: You can use a version control system of your own choice for playing around, but we accept merge requests only through Launchpad (which uses bzr) for Mailman core and Postorius. However we are planning to switch to git very soon.

We encourage you to discuss your questions with us so that we can help you get up to speed. But the more you are able to demonstrate ability in advance, the more likely we are to choose your application!

Getting Started

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

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.

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

All of the above listed projects are a part of Mailman Project. Your proposal may involve any one of them or a combination of more than one.

Want to get involved?

If you're interested in participating in GSoC 2015 as a student, mentor, or interested community member, you should join the Mailman Developers mailing list: http://mail.python.org/mailman/listinfo/mailman-developers and post any questions, comments, etc. to mailman-developers@python.org. But we want you to go through the resources mentioned above before asking questions, most of the times the answer is in there somewhere. Developers would be more enthusiastic to help you if you yourself have done some ground work.

In addition you may be able to find us on IRC at #mailman on irc.freenode.org.  If no one is available to answer your question, please be patient and post it to the mailing list as well.  (We *are* the developers for Mailman -- unsurprisingly, most of us prefer to communicate via email.)

Mailman has in the past participated under the Python Software Foundation's umbrella, and will again this year.  The PSF has some additional information (including other IRC channels and mailing lists) here: https://wiki.python.org/moin/SummerOfCode/2015

Project Ideas

If you have other idead you'd like to propose (either as a prospective student, mentor, or interested community member), please send it to mailman-developers@python.org for discussion!  You can also look at older idea lists linked from the Development Home page (Sprints section, near the bottom), but do be careful – many of those ideas are now irrelevant, were rejected, or (yay!) have been implemented.


Dynamic Sublists

Dynamic Sublists is an addition to Mailman by Systers that allows the dynamic creation of topics/sublists that users can then subscribe/unsubscribe from and filter more easily.

More details can be found on the Dynamic Sublists wiki page

We'd like to use dlists in Mailman 3 as a replacement for the old topics system of Mailman 2.

Skills
Understanding of mailing list communication. For example, you should have a rough idea of some answers to the following questions: "How do people talk on mailing lists? What sort of threads would they want to unsubscribe from? What sort of interface would work best for this?" (although be open to working with real users!)
Difficulty Level
This is at least an intermediate task, as the ideal student will have to follow this through Mailman Core, Postorius (to add a web interface for subscribing/unsubscribing) and Hyperkitty (to make the archives aware of the dlists)
More Reading


Build 2-3 Mailman plugins

Mailman 3 has a new plugin system that allows people to build rules that run before mail is delivered, but it's not entirely obvious to people how this will work since there aren't any complex plugins built yet. This project would involve choosing a couple of interesting plugins and building them both as useful pieces in their own right but also as examples for developers to build upon later.

Some plugin ideas
  • Spam Assassin integration. This would involve making it possible for list admins to set a threshold for their list and have Mailman discard any messages with a Spam Assassin score higher than the threshold.
    • This would involve some work in Postorius to add an interface as well as work with Mailman Core for the plugin.
    • Setting up Spam Assassin can be non-trivial, so make sure you know how to do this before proposing this plugin idea!
  • Add your own here!
Difficulty Level
Intermediate or advanced, since you will be the first person to use the plugin system and will have to be comfortable with suggesting architectural changes if needed
More reading
  • zope.interfaces and its implementation on mailman.


Mailman Client in Javascript

MailmanClient is the client library that talks to core's REST API through HTTP. Right now we have one official client in python but it would be nice to have it in Javascript as well so mailman could be integrated with NodeJS or other such frameworks.

Skills
Some level of experience in working with Javascipt(since it would involve fairly good amount of JS coding)
Difficulty Level
This is a beginner level task, best suited for those having some Javascript experience
More Reading
  • Source and documentation of the current mailman-client

  • Look for REST Server documentation in mailman core.


Message queue based email archiver

Hyperkitty is mailman's official archiver, however it would be a good idea to add an alternative to it based on message queues either publish-subscribe or fifo message queue. Possibly an implementation which could be extended to use several different backends (like zeromq, redis etc) of choice would be best. (Support or thoughts on pub/sub support for other system events in mailman would be a plus, though not necessary)

Skills
Knowledge about message queues
Difficulty Level
Intermediate or advanced depending on the actual proposal of the student.
More reading
  • Look for IListArchiver interface in mailman's source code.


Anonymous lists

When a user posts to such lists his email-address is disguised as <foo>@<bar> and when some replies to the same address it should be delivered back to the intended recipient.

Difficulty Level
Intermediate


Continuous Integration for Mailman Suite

Setting up continuous integration for all mailman projects with support for different database backends (sqlite and pgsql must, others should be easy to add). It should also enable developers to test their separate branch. Look for travis-ci if you have no idea what continuous integration means.

Difficulty Level
Beginer
More reading
  • Look into archives of mailman-developers list for previous discussions on the topic during last GSoC
  • Buildbot - An open source testing framework (you can obviously look for better alternatives if you want)

More ideas

This is a tentative brainstorming list! Before dedicating yourself to any of these, please talk to the mailman-developers list.

  • Make mailman core able to localise digests and other mass mails for individual subscribers if administrators turn on full personalization
  • User profile pages in HyperKitty and Postorius (see HyperKitty bug 74 and Postorius bug 1104497)

  • Gather and surface administrative statistics in Mailman & Postorius, such as number of posts sent, # bounced, # of domains accessed, which lists are quiet and which are busy (see bug 1414169)

  • Add audit trail for user subscriptions and user management changes. Who added them? What checks were made? bug 1414174

Mentor List

The following folks are mentors and administrators for Mailman's 2015 Google Summer of Code effort.  Most mentors, even if they list addresses here, probably prefer that you post to Mailman Developers <mailman-developers@python.org> instead of sending private mail.  That gives you the broadest exposure to all mentors (improves chance of selection, we are not going to get a slot per mentor!), and probably somebody can respond to you relatively quickly if the "obvious suspect" doesn't.

  • Abhilash Raj <raj DOT abhilash1 NO AT HARVEST gmail DOT com> (maxking on #mailman)

  • Barry Warsaw <barry NO AT HARVEST list DOT org> (barry on #mailman) - MM core co-mentor

  • Florian Fuchs <flo DOT fuchs NO AT HARVEST gmail DOT com> (Mailman suborg admin, nick: florianf on freenode)

  • Aurelien Bompard <aurelien NO AT HARVEST bompard DOT org> (abompard on #mailman)

  • Terri Oda <terri NO AT HARVEST toybox DOT ca> (terri on #mailman)

MailmanWiki: DEV/Google_Summer_of_Code_2015 (last edited 2016-03-24 01:40:26 by stephen@xemacs.org)