Differences between revisions 13 and 94 (spanning 81 versions)
Revision 13 as of 2007-03-20 18:57:05
Size: 4235
Editor: msapiro
Comment:
Revision 94 as of 2022-03-28 14:31:28
Size: 11118
Comment: Update GSoC date to 2022.
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#pragma page-filename DEV/versions/163908
== Mailman version resources ==
Here are the collection of resources for people interested in the development of Mailman.
#pragma page-filename DEV/versions/9
= Mailman Developer Resources =

Thank you for contributing to Mailman! Please also see the [[../../Mailman3|Mailman 3]] release notes.

This year we will be applying to Google's [[https://summerofcode.withgoogle.com/|Summer of Code]]. For information about Mailman's project ideas, click here: [[DEV/Google Summer of Code 2022|Google Summer of Code 2022]].

== How to get started ==

Please read the [[../HowToContributeGit| git quickstart]] before doing anything else!

The [[../SetupDevEnvironment|Setup instructions]] will guide you through the process of setting up all the projects so you can start developing.

== Contributing to Mailman, step 1: Git and Gitlab ==

Mailman 3's source code is published in [[http://git-scm.com/|git]]. Project management is available on [[https://gitlab.com/mailman/mailman|Gitlab]]. We switched from Bazaar on Launchpad on May 4th, 2015. Previous to that, we switched from Subversion on !SourceForge on June 22, 2007.

'''Please note:''' Mailman 2.1 development continues to be hosted in Bazaar on [[../MailmanOnLaunchpad|Launchpad]].

For now, the Mailman 3 branch on Launchpad will continue to be available in read-only mode.

== Contributing to Mailman, step 2: Contribution workflow process ==

 1. A developer has an idea for an enhancement.  They discuss it on the [[http://mail.python.org/mailman/listinfo/mailman-developers|mailman-developers]] mailing list. For higher bandwidth discussions we can use irc (#mailman channel on [[irc://libera.chat|irc://libera.chat]]).
 1. Developers can clone our git repository, push their own branches, and submit [[https://gitlab.com/mailman/mailman/merge_requests|a merge request]] against the official branches.
 1. If the idea is appropriate for GNU Mailman and we decide to include it, FSF must get copyright assignments from the developer. See below. Do this early, since it can take some time to get all the paperwork to the FSF.

== Branch development guidelines ==

 * Branches should be self-contained:  Include documentation, a NEWS entry, and tests.  Ideally, there would be one bug for every branch.
 * Be sure your branch does not provoke any regressions. Run {{{tox}}} on your branch and be sure everything passes. Eventually, we'll enable CI on Gitlab so you'll know immediately whether your branch is ready for merging.
 * Branches should be as small as possible. The smaller the branch the easier it is to review.

== Contributing to Mailman, step 3: Copyright assignment ==

Mailman is a [[http://www.gnu.org|GNU]] project with the majority of the copyrights being held by the [[http://www.fsf.org|Free Software Foundation]]. We therefore request that developers who contribute code, assign their copyrights in their Mailman contribution to the FSF. To do this, you first need to submit a [[../GNU copyright assignment request form|GNU copyright assignment request form]] containing some basic information, and then fill out the form that the FSF sends you. Please [[mailto:mailman-cabal@python.org|let us know]] after you've sent the second form so that we can track your contribution. The FSF often doesn't tell us in a timely manner when such forms have been received.

== Version-specific resources ==

Mailman's developers are currently focused mostly on working towards the release of Mailman 3.0.
Line 6: Line 43:
 * [[../Mailman 2.2|Mailman 2.2]]
 * [[../Mailman 3.0|Mailman 3.0]]
== Initiatives and proposals ==
 * [[../Mailman 2.2|Mailman 2.2]] -- 2.1 is the stable branch, now in maintenance mode
 * [[../Mailman 3.0|Mailman 3.0]] -- 3.0 is the stable Mailman 3 release
 * [[../Mailman 3.1|Mailman 3.1]]
 * [[../Mailman 3.2|Mailman 3.2]]

== Sprints ==

 * [[../Google_Summer_of_Code_2015|Google Summer of Code 2015]]
 * [[../PyCon 2015 Sprint|PyCon 2015 Sprint]]
 * [[../Google Summer of Code 2014|Google Summer of Code 2014]]
 * [[../PyCon 2014 Sprint|PyCon Sprint 2014]]
 * [[../Google Summer of Code 2013|Google Summer of Code 2013]]
 * [[../PyCon Sprint 2013|PyCon Sprint 2013]]
 * [[../Google Summer of Code 2012|Google Summer of Code 2012]]
 * [[../Google Summer of Code 2011|Google Summer of Code 2011]]
 * [[http://wiki.list.org/display/DEV/GHC12+Open+Source+Day+Hackathon|GHC12 Open Source Day Hackathon]]
 * [[../Google Summer of Code 2011|Google Summer of Code 2011]]
 * [[../PyCon Sprint 2010|PyCon Sprint 2010]]
 * [[../PyCon Sprint 2009|PyCon Sprint 2009]]
 * [[../Google Summer of Code 2008|Google Summer of Code 2008]]
 * [[../Google_Summer_of_Code_2006|Google Summer of Code 2006]]

== Initiatives, proposals, ideas ==

 * [[../New Logos|New Logos]]
 * [[../GPLv3|GPLv3]]
Line 10: Line 70:
 * [[../DKIM|DKIM]]  * [[../DKIM|DKIM]] and [[../DMARC|DMARC]]
Line 13: Line 73:
== Other developer information ==
Google's doing a [[http://code.google.com/soc/|2006 Summer of Code]]program again this year. Mailman is not yet a sponsor, but I'd be willing to mentor if anybody is interested in doing some work under the program. See my [[../Summer of Code|Summer of Code]] page and [[../Mailman 2.2|Mailman 2.2]] page for ideas.
 * [[../Improved Logging|Improved Logging]]
 * [[../Stable URLs|Stable URLs]]
 * [[../Patches|Patches]]
 * [[../ReplyTo|ReplyTo]]
 * [[../Usability|Usability]]
 * [[../ModernArchiving|Modern Archiving]] (currently HyperKitty in [[../Mailman 3.0|Mailman 3]])
 * [[../Postorius Web Interface|Postorius Web Interface]] (in [[../Mailman 3.0|Mailman 3]])
 * [[../REST Interface|REST Interface]] (a part of [[../Mailman 3.0|Mailman 3]] core)
 * [[http://blog.linuxgrrl.com/2012/03/14/mailman-brainstorm-2/|Mairin Duffy's blog ideas]]
Line 16: Line 83:
Mailman is a [[http://www.gnu.org|GNU]] project with the majority of the copyrights being held by the [[http://www.fsf.org|Free Software Foundation]]. We therefore request that developers who contribute code, assign their copyrights in their Mailman contribution to the FSF. To do this, you first need to submit a [[../GNU copyright assignment request form|GNU copyright assignment request form]] containing some basic information, and then fill out the form that the FSF sends you. Please [[mailto:mailman-cabal@python.org|let us know]]after you've sent the second form so that we can track your contribution. The FSF often doesn't tell us in a timely manner when such forms have been received. == Suggestions ==

People seem to have trouble figuring out where to make suggestions or feature requests. There is a [[../suggestions|suggestions]] page here, or you may wish to start a discussion on the [[http://mail.python.org/mailman/listinfo/mailman-developers|mailman-developers list]]
Line 19: Line 88:
Here are some useful references:
Here are some useful RFCs, references and drafts:
Line 24: Line 94:
RFCs and drafts:  * [[http://www.faqs.org/rfcs/rfc3834.html|RFC 3834 - Recommendations for Automatic Responses to Electronic Mail]]
 * [[http://tools.ietf.org/html/rfc5064|RFC 5064 - The Archived-At Message Header Field]] '''draft'''
 * [[http://www.faqs.org/rfcs/rfc2033.html|RFC 2033 - Local Mail Transfer Protocol]]
 * [[http://www.ietf.org/rfc/rfc4871.txt?number=4871|RFC 4871]][[http://www.dkim.org|DomainKey Identified Mail (DKIM)]]
 * [[http://www.openid.net|OpenID]]
 * [[http://www.faqs.org/rfcs/rfc1893.html|RFC 1893 - Enhanced Mail System Status Codes]]
 * [[http://www.faqs.org/rfcs/rfc2034.html|RFC 2034 - SMTP Service Extension for Returning Enhanced Error Codes]]
 * [[http://en.wikipedia.org/wiki/Bounce_Address_Tag_Validation|Bounce Address Tag Validation (BATV)]]
 * [[http://www.ietf.org/id/draft-shafranovich-feedback-report-07.txt|Extensible Format for Email Feedback Reports]]
 * [[https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet|Forgotten Password recommendations from OWASP]]
 * [[http://www.faqs.org/rfcs/rfc6530.html|RFC 6530 - Overview and Framework for Internationalized Email]]
 * [[http://www.faqs.org/rfcs/rfc6531.html|RFC 6531 - SMTP Extension for Internationalized Email]]
 * [[http://www.faqs.org/rfcs/rfc6532.html|RFC 6532 - Internationalized Email Headers]]
Line 26: Line 108:
 * [[http://www.faqs.org/rfcs/rfc2033.html|RFC 2033 - Local Mail Transfer Protocol]]
 * [[http://www.dkim.org|DomainKey Identified Mail (DKIM) draft specs]]
 * [[http://www.openid.org|OpenID]]
Best practices:

 * OWASP's [[https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet|password reset]] recommendations
 * Anti-spam and anti-backscatter<<BR>>
  * [[http://wiki.exim.org/EximAutoReply|How To Do Autoreplies Without The World Hating You]].
  * A talk given at a UK Unix User Group meeting. Look for the 5th abstract on [[http://www.ukuug.org/events/winter2005/programme.shtml|this page]].
  * [[http://www.dontbouncespam.org/|http://www.dontbouncespam.org/]]
  * [[http://spamlinks.net/prevent-secure-backscatter.htm|http://spamlinks.net/prevent-secure-backscatter.htm]]
  * The inevitable [[http://mayfirst.org/?q=node/180|"...considered harmful" article]].
  * UK Joint Academic Network (JANet) provides network connectivity and services for UK
  * HE institutions has [[http://www.ja.net/services/csirt/advice/policies/collateral-spam.html|guidance to victims of backscatter]].
  * ...and to system adminstrators [[http://www.ja.net/services/csirt/threats/bounce.html|Spam Bounces Considered Harmful]].
  * [[http://mipassoc.org/batv/|Bounce Address Tag Validation (BATV)]]
  * Mailman's own recommendations for [[../../SEC/Controlling spam|controlling spam]]
Line 44: Line 137:
 * [[DEV/Google Summer of Code 2015|Google Summer of Code 2015]]
 * [[DEV/Google Summer of Code 2016|Google Summer of Code 2016]]
 * [[DEV/Google Summer of Code 2019|Google Summer of Code 2019]]
 * [[DEV/SeasonOfDocs2019|Mailman Season of Docs 2019]].
 * [[DEV/Google Summer of Code 2021|Google Summer of Code 2021]]
 * [[DEV/Google Summer of Code 2022|Google Summer of Code 2022]]
Line 57: Line 156:
 * [[DEV/PyCon 2014 Sprint|PyCon 2014 Sprint]]
Line 61: Line 159:
 * [[DEV/PyCon 2014 Sprint|PyCon 2014 Sprint]]
 * [[DEV/PyCon 2015 Sprint|PyCon 2015 Sprint]]

Mailman Developer Resources

Thank you for contributing to Mailman! Please also see the Mailman 3 release notes.

This year we will be applying to Google's Summer of Code. For information about Mailman's project ideas, click here: Google Summer of Code 2022.

How to get started

Please read the git quickstart before doing anything else!

The Setup instructions will guide you through the process of setting up all the projects so you can start developing.

Contributing to Mailman, step 1: Git and Gitlab

Mailman 3's source code is published in git. Project management is available on Gitlab. We switched from Bazaar on Launchpad on May 4th, 2015. Previous to that, we switched from Subversion on SourceForge on June 22, 2007.

Please note: Mailman 2.1 development continues to be hosted in Bazaar on Launchpad.

For now, the Mailman 3 branch on Launchpad will continue to be available in read-only mode.

Contributing to Mailman, step 2: Contribution workflow process

  1. A developer has an idea for an enhancement.  They discuss it on the mailman-developers mailing list. For higher bandwidth discussions we can use irc (#mailman channel on irc://libera.chat).

  2. Developers can clone our git repository, push their own branches, and submit a merge request against the official branches.

  3. If the idea is appropriate for GNU Mailman and we decide to include it, FSF must get copyright assignments from the developer. See below. Do this early, since it can take some time to get all the paperwork to the FSF.

Branch development guidelines

  • Branches should be self-contained:  Include documentation, a NEWS entry, and tests.  Ideally, there would be one bug for every branch.
  • Be sure your branch does not provoke any regressions. Run tox on your branch and be sure everything passes. Eventually, we'll enable CI on Gitlab so you'll know immediately whether your branch is ready for merging.

  • Branches should be as small as possible. The smaller the branch the easier it is to review.

Mailman is a GNU project with the majority of the copyrights being held by the Free Software Foundation. We therefore request that developers who contribute code, assign their copyrights in their Mailman contribution to the FSF. To do this, you first need to submit a GNU copyright assignment request form containing some basic information, and then fill out the form that the FSF sends you. Please let us know after you've sent the second form so that we can track your contribution. The FSF often doesn't tell us in a timely manner when such forms have been received.

Version-specific resources

Mailman's developers are currently focused mostly on working towards the release of Mailman 3.0.

Sprints

Initiatives, proposals, ideas

Suggestions

People seem to have trouble figuring out where to make suggestions or feature requests. There is a suggestions page here, or you may wish to start a discussion on the mailman-developers list

Relevant RFCs, references, and standards

Here are some useful RFCs, references and drafts:

Best practices:


MailmanWiki: DEV/Home (last edited 2023-02-25 16:13:48 by stephen@xemacs.org)