Reason for file in mailman/src/mailman/model?
There is some basic problem that has been tinkering me. In the codebase we have a MODELS folder in MAILMAN REPO We are forming classes using implementer from zope.interface although we have created interface already in INTERFACE folder. I read the doc on implementer but not much is given.
Any pointers on why we created another file in the MODELS folder
Example -----
There is a bounce..py file in MODEL folder using implementer from zope.interface
There is bounce,py file in INTERFACE having implemented some interfaces for bounces Why need two different cannot we work with only one?
On 3/8/19 4:56 PM, Aaryan Bhagat wrote:
There is some basic problem that has been tinkering me. In the codebase we have a MODELS folder in MAILMAN REPO We are forming classes using implementer from zope.interface although we have created interface already in INTERFACE folder. I read the doc on implementer but not much is given.
Models define the database model for SQLAlchemy and maybe implement interfaces.
Interfaces define the characteristics of the zope interface, but do not define the code that implements it.
In your example, interfaces/bounce.py defines the IBounceEvent and IBounceProcessor interfaces and model/bounce.py defines the actual methods that implement those interfaces and the database model (table structure) for the underlying database.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
Thanks Mark for clarification I have thought of working on "Implementing bounce features in mailman 3 " as my gsoc project I will create a new thread soon regarding the current status and will ask for inputs there.
On Sat, 9 Mar 2019, 08:21 Mark Sapiro, <mark@msapiro.net> wrote:
On 3/8/19 4:56 PM, Aaryan Bhagat wrote:
There is some basic problem that has been tinkering me. In the codebase we have a MODELS folder in MAILMAN REPO We are forming classes using implementer from zope.interface although we have created interface already in INTERFACE folder. I read the doc on implementer but not much is given.
Models define the database model for SQLAlchemy and maybe implement interfaces.
Interfaces define the characteristics of the zope interface, but do not define the code that implements it.
In your example, interfaces/bounce.py defines the IBounceEvent and IBounceProcessor interfaces and model/bounce.py defines the actual methods that implement those interfaces and the database model (table structure) for the underlying database.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
Mailman-Developers mailing list -- mailman-developers@python.org To unsubscribe send an email to mailman-developers-leave@python.org 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
A follow up question I do not get what "bounces.py" in "mailman/src/mailman" is trying to achieve?
From what I understand we have a func to send the bounce back (this happens in MTA so nothing unusual) Since Verp does not work effectively with every MTA so we parse the Verp message and send the Verp probes(send_probe func).
I have referred to "https://wiki.list.org/DOC/So%20what%20is%20this%20VERP%20stuff" so this has helped me in probe stuff.
Q1--Is this right or some pointers I am missing?
Q2--What exactly is the meaning of ProbeVerp class and _ProbePendable class?
On 3/9/19 1:12 AM, Aaryan Bhagat wrote:
A follow up question I do not get what "bounces.py" in "mailman/src/mailman" is trying to achieve?
From what I understand we have a func to send the bounce back (this happens in MTA so nothing unusual) Since Verp does not work effectively with every MTA so we parse the Verp message and send the Verp probes(send_probe func).
I have referred to "https://wiki.list.org/DOC/So%20what%20is%20this%20VERP%20stuff" so this has helped me in probe stuff.
Q1--Is this right or some pointers I am missing?
Basically, mailman sends outgoing messages with envelope sender 'listname-bounces@list.domain' or in the VERP case 'listname-bounces+recip=recip.domain@list.domain'. If such a message is undeliverable, a failure DSN is returned.
Currently in Mailman 3, that results in a bounce event being recorded and nothing more.
There should be lots more as in Mailman 2.1. See <https://gitlab.com/mailman/mailman/issues/343> for some info.
Q2--What exactly is the meaning of ProbeVerp class and _ProbePendable class?
See <https://mail.python.org/archives/list/mailman-developers@python.org/message/AY4FPVYNHK2D25F67R5VL3E46XHQKSFK/> (the first 5 paragraphs) for some info on probes.
Implementing all of this in Mailman 3 would make a good GSOC project and is in fact suggested at <https://wiki.list.org/DEV/Google%20Summer%20of%20Code%202019#Add_support_for_bounce_processing_in_Core>. I am personally interested in this, but I don't have availability to be a mentor for this project.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
Thanks mark basically I have summarized this in another thread please go through that
Thread------------------- " https://mail.python.org/archives/list/mailman-developers@python.org/thread/T... "
On Sat, 9 Mar 2019, 23:09 Mark Sapiro, <mark@msapiro.net> wrote:
On 3/9/19 1:12 AM, Aaryan Bhagat wrote:
A follow up question I do not get what "bounces.py" in "mailman/src/mailman" is trying to achieve?
From what I understand we have a func to send the bounce back (this happens in MTA so nothing unusual) Since Verp does not work effectively with every MTA so we parse the Verp message and send the Verp probes(send_probe func).
I have referred to " https://wiki.list.org/DOC/So%20what%20is%20this%20VERP%20stuff" so this has helped me in probe stuff.
Q1--Is this right or some pointers I am missing?
Basically, mailman sends outgoing messages with envelope sender 'listname-bounces@list.domain' or in the VERP case 'listname-bounces+recip=recip.domain@list.domain'. If such a message is undeliverable, a failure DSN is returned.
Currently in Mailman 3, that results in a bounce event being recorded and nothing more.
There should be lots more as in Mailman 2.1. See <https://gitlab.com/mailman/mailman/issues/343> for some info.
Q2--What exactly is the meaning of ProbeVerp class and _ProbePendable class?
See < https://mail.python.org/archives/list/mailman-developers@python.org/message/...
(the first 5 paragraphs) for some info on probes.
Implementing all of this in Mailman 3 would make a good GSOC project and is in fact suggested at < https://wiki.list.org/DEV/Google%20Summer%20of%20Code%202019#Add_support_for...
. I am personally interested in this, but I don't have availability to be a mentor for this project.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
Mailman-Developers mailing list -- mailman-developers@python.org To unsubscribe send an email to mailman-developers-leave@python.org 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
participants (3)
-
aaryan bhagat
-
Aaryan Bhagat
-
Mark Sapiro