User Tools

Site Tools


2010_systers-mailman_development_projects

Systers GSoC 2010 Ideas

Fixing and implementing wishlists items and bug-fixes for existing features

Systers uses a heavily-customized version of GNU Mailman. A number of additional small features are desired to improve things further. Please see: the issue list, including wishlist items.

This year we particularly want to get the following features implemented:

  1. add admin UI for changing whether essay or name is required at sign up
  2. ability to save the essays for perusing in the future
  3. enable email conversation unsubscribes to happen without moderator intervention

keywords: Mailman, Python, web interface

Required Skill Levels: You must be a member of Systers or eligible and willing to join Systers to be considered for this project. Rising 2nd year undergraduate with some programming experience, Python preferred but not necessary. This is an ideal project for a first time Summer of Code participant, who perhaps has only done class projects before. Or it could be a starter project to get familiar with the code base before tackling one of the projects below.

Patches, Release and Testing Automation

Right now Systers code is available as a branch rather then in patch form. This makes it somewhat difficult to test on different versions of operating systems and against different versions of Mailman. Additionally, most of testing is done manually. This project involves working to automate everything from patch creation for new releases to testing to release management. It is a great project for a first-time GSoC student who would like to gain experience programming in Python and learning how an entire system runs. Project outline might include:

  • better automation of the the pushing and pulling of code (a script would be nice) to the dev and production servers
  • work on automated testing - there are some MM test scripts that might be exploitable.
  • come up with release numbering scheme
  • figure out how to use the many features of Launchpad for release control (and document).
  • implement a system of patches for releases – figure out how we make our code available to others - You will need to work with the MM 3.0 port team.

keywords: bazaar,mailman,release-management, python, scripting, patch management

Required Skill Levels: Basic Python, ability to read and learn from documentation, some understanding of systems administration.

Improve Mailman Archive Access/Searching

The default Mailman archives are really rudimentary: there is no search built-in, and finding a particular message is sometimes easier via Google, rather than Mailman's native interface. (but systers' archives are not indexed by Google, so even this option isn't viable). This project would seek to enhance the archives to be more useful to the list participants – better search options, member info & statistics, pretty charts using Google APIs and SVG graphics. This also would be eligible for eventual mainline Mailman adoption. (There is currently no archive system integrated with Mailman 3, so the systers project could potentially be the default archives for Mailman 3!)

For more information about Mailman's archive requirements, see Modern Archiving in the Mailman wiki.

This is probably a multi-person project. It will provide opportunities to learn requirements gathering, UI design, data architectures,and more. Describe the aspects you are interested in working on, and the ideas you have for making useful archives, and we will match you with another student interested in other parts of the project. (If two students who know each other want to work together this summer, you will each need to submit a separate application, though mention the other student in your application)

keywords: Python, CGI, web interfaces, SVG, CSS, web APIs, search

Required Skill Levels: Self-directed requirements definition, web backend and frontend experience. Senior CS undergrad or graduate.

Integrating Dynamic Sub-lists with Mailman 3.0

This is a great project for someone who is good at reading python code and making sense of it, and good at communicating with other developers. It will be a great way to improve your skill at understanding idioms, testing, debugging, and working with larger open source groups.

Integration of Systers Dynamic Sublist feature with Mailman 3.0. Read about dynamic sub-lists here:

Dynamic Sub-Lists

People have been talking about similar functionality in other mailing lists: Marin Duffy on richer web interfaces for mailing lists and Luis Villa on unsubscribing from conversations. So this may be an excellent time to get the dynamic sublists integrated into mainline Mailman.

keywords: Python, Mailman, ORM, Storm, upstream open-source participation

Required Skill Levels: Python and SQL familiarity, basic use of source control. 3rd year or above CS undergraduate.

Using Mailman Authentication to Access Other Applications

Systers would like to use the mailing list user database to access other web-frameworks. The work in this area would be either to adapt OpenLDAP to use the mailing list membership information as a data source, or to write an OpenID provider web service. These authentication systems have the most support, and will provide Systers with the most flexibility in choosing CMS, wiki, or other software needing authentication.

For example, Systers would like to bring up a wiki that is restricted to members. Rather then issuing everyone another set of authentication credentials for the wiki (or drupal site, etc) – the ideal scenario is to use the existing system for authentication - Mailman authentication model.

Last year a student managed to get a working module – that still utilizes the MM .pck files. You can see the branch here:

https://code.launchpad.net/~systers-dev/systers/membership

The primary goals for this year are to:

  • Make sure the plugin is compatible with the new MM 3.0 architecture
  • Remove the .pck dependency
  • Actually test using another web-framework

The new Mailman 3.0 interface is most likely going to be built using Django. A good starting point would be see if the Django authentication component could be used to essentially create a single-signon mechanism. It would be a good idea to review this project:

django-openid

And also take a look at the Mailman-developer archives for threads like this one: https://mail.google.com/mail/?shva=1#search/mailman-developers/126f2d61b1673c69

There has been work in the Mailman community on this type of authentication model - using the Mailman user-base to authenticate against other applications – please check the Mailman-Developer archives and google around for additional information. It would be good to include reference to any existing work and how you plan to integrate or why it is not useful to move this project forward.

keywords: Python, openldap, authentication, openid, web services, Django

Required Skill Levels: Python, C, familiarity with basics of web authentication, source control. Senior CS undergrad or graduate.

Create your own project

If you don't see a project that you'd like to do here, we welcome new project ideas. This makes sense mostly for someone who has participated in Summer of Code before, or at least is engaged enough in systers to know what kinds of projects would be relevant and doable.

2010_systers-mailman_development_projects.txt · Last modified: 2010/03/27 17:00 by jenred