This document will be reviewed by google for the summer of code. If you add task/idea, please be sure it will contain those subsections
- short description
- long description
- expected outcome
- required skills
- possible mentor
Sympa is much more than a mailing list manager: it comes with a very rich web interface allowing non-technical people to create and customize working groups of people and allow them to communicate, share documents, get complete archives, create homepages, wikis and much more.
Sympa is also a very fast and robust system to send loads of mails with the state of art of SMTP standards (DMARC, DKIM, ...).
However, the project is quite old now (22 years) and need some features to be refactored.
According to my understanding of the sympa code and the Perl ecosystem, a lot of homebrew code should be either
- replaced by external tools
- published as external tools
(mostly CPAN distributions)
This page is my personnal list of main goals to make Sympa modern again.
Some very powerful features of sympa are hidden by the web interface wich is unattractive and uneasy to use. We need to change this.
-
sketch a new interface that should be more dynamic and easier to use.
- It MUST be
- at least isofunctional
- a11y compliant
- responsive
- It MUST implement
- merge the archives, send/resend, shared documents in a single page so users can contribute to their workgroups without using the mails
- It COULD implement
- simplified admin pages
- complete drag'n'drop of shared documents and folders
- a visual editor for simple publishing scenarii (instead of the homebrew DSL)
- It MUST be
-
implement it while using a modern web stack (elm or vue.js ?)
Modernize the UI is crucial to make sympa attractive for newcommers and experimented users.
UX, design principles, a11y and modern web stack technologies (html5, js, CSS)
- Marc Chantreux
Use Plack instead of any homebrew code, delete the old code.
- identify all the code that can be replaced by a plack counterpart
- replace this code by the plack counterpart
- if relevant, introduce an higher level web framework (dancer2?)
- remove the need of maintenance and documentation
- make all the plack ecosystem (modules, runners, ...) available for sympa
- make sympa easier to deploy, configure and maintain for a perl experimented administrator
Perl (Plack and Moo), good understanding of HTTP, FCGI, CGI
- Marc Chantreux
Does sympa job queuing compete (in terms of speed and functionnalities) with the CPAN counterparts?
- if so : publish them on CPAN
- if not : replace them by a CPAN counterpart
- remove the need of maintenance and documentation
- make all the plack ecosystem (modules, runners, ...) available for sympa
- make sympa easier to deploy, configure and maintain for a perl experimented administrator
Perl, Job queueing, documentation and packaging
- Marc Chantreux
Scenaries are one of the key features that makes sympa a much superior mailing list manager, it gives non-technical people a way to define exactly what to do when a message is received, a document is shared and so on.
But...
- there are a lot of actions that can't take avantage of them
- they are not exendable in Perl
- they can be hard to test
- they cannot be chained
Refactor the whole Action/Scenarii mechanism to give them the power they deserve (maybe inspired by the Request Tracker Scrip system).
- give more power to experimented non-technical users
- make sympa even easier to tweak
Perl, software design, documentation and packaging
- Marc Chantreux
CPAN at the rescue to give a better error report to the users
Processing of bounces isn't only interesting for Sympa but also for all kind of web applications sending out emails to users respective customers.
We can try to factor that part out of Sympa into a separate module and/or take a look at Sisimai.
the scoring and alert system to maintain large lists could be much more helpfull than the current log.
Perl, knowledge of SMTP bouncing
- Stefan Hornburg (Racke)
- Stefan Hornburg (Racke)
LMTP interface submitting messages to Sympa
LMTP (Local Mail Transfer Protocol) is a protocol focuses on local message delivery. As it is extension of SMTP, it can inform result to MTA before processing is completed, due to such as non-existing lists, unauthorized posts. And it is easy to integrate into existing mail system.
Some modules such as Net::Server::Mail::LMTP may help implementing it.
-
No need of aliases maintenance.
-
Less backscattering.
-
Widely available interface between MTA.
Perl, knowledge of LMTP
- IKEDA Soji (ikedas)