Tanmay Singhal writes:

 > I’m particularly interested in the Dynamic sublists and Topics
 > project ideas. From reading the descriptions, it looks like both
 > projects mainly involve modifying recipient determination in
 > mailman-core (moving from list-level delivery toward
 > thread/topic-based delivery from what I understand), with Postorius
 > and HyperKitty mainly providing configuration and UI.

For both , I would start by becoming familiar with the developer
docs, starting from
https://docs.mailman3.org/projects/mailman/en/latest/src/mailman/docs/contribute.html.

For Topics, you probably should get a copy of Mailman 2.  The only
developer docs I know of for that code is the source.  However, as far
as I can tell, although Topics is occasionally requested by list
admins, the requesters think it is a cool idea but have not really
used it.

Dynamic Sublists is definitely the preferred project.  Unlike Topics,
Dynamic Sublists was used intensively by the Systers organization.
The port of their implementation in Mailman 2 to Mailman 3 was
intertwined with other large modifications, so couldn't be integrated
directly into Mailman 3.  I'm not sure it was ever completed.  I will
try to find a repo online, and maybe I have a copy.

In the following, "..." = "mailman/src/mailman".  The basic outline
for Dynamic Sublists would be to add a Rule (.../rules/) in the
default Chain (.../chains), where you'll find the documentation and
partial implementation of those abstractions in .../interfaces, and
the detailed implementations in .../model.

 > I’ve started looking at membership handling and the message
 > processing pipeline in mailman-core. Could you suggest specific
 > modules or handlers I should focus on to better understand where
 > delivery decisions are made?

The rules are where the decisions are made.  The results are stashed
in the metadata of the queue object, and the actual implementation is
based on actions in handlers which move or copy the queue objects to
the appropriate queue, and finally they end up in the out or virgin
queues to be delivered.  I'm not sure whether topics or sublists would
need separate queues (if the queue objects are modified other than the
distribution list, they might).

If you have any specific questions, feel free to ask.  Aside from the
above generic advice at this time I can only suggest diving in to the
handler pipeline, and think about what the handler for sublists needs
to know.  You will definitely need an interface and a model for a
sublist.  It might be possible to derive those from the MailingList
components.  Those might be the best place to start.

-- 
GNU Mailman consultant (installation, migration, customization)
Sirius Open Source    https://www.siriusopensource.com/
Software systems consulting in Europe, North America, and Japan
_______________________________________________
Mailman-Developers mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/mailman-developers.python.org/
Mailman FAQ: https://wiki.list.org/x/AgA3

Security Policy: https://wiki.list.org/x/QIA9

Reply via email to