I have started contributing in GNU Mailman for quite some time now and a some Introduction is required so. My name is Aaryan Bhagat a 2nd Year Computer Science Undergraduate studying in Indian Institute of Technology Kharagur.
github-link---"https://github.com/berserker1" gitlab-link----"https://gitlab.com/berserker1?nav_source=navbar"
I will be focusing on the project idea "Add support for bounce processing in Core". I feel comfortable in this area and have undertook some research in this also meanwhile.
DISCUSSION FOR THE IDEA----------------------------------
Currently I have read the source code regarding bounce runner and various files. What I have gathered of all the bounce configuration files is this (Summary below if you want to skip) :
File
bounce.py
inmailman/src/mailman/interfaces
is an interface file which defines various class of bounce functions.
File
bounce.py
inmailman/src/mailman/model
is a model file for various functions.
File
bounce.py
inmailman/src/mailman/runners/bounce.py
runs thebounce runner
info read about the runners in the docs.
File
bounces.rst
inmailman/src/mailman/app/docs/bounces.rst
shows how a bounce message is generated and send to the original sender , how you can also send the error reasons in a dict and it will all be showed to the sender in an organized way.
File
bounce.rst
inmailman/src/mailman/model/docs
shows how a bounce event is registered , it stores various info .
File
test_bounces.py
inmailman/src/mailman/app/tests
tests theapp.bounces
functions.
File
test_bounce.py
inmailman/src/mailman/model/tests
tests thebounce model objects
.
File
test_bounce.py
inmailman/src/mailman/runners/tests
tests thebounce runners
.
SUMMARY------- What I can summarize is the method of detecting bounces, registering events, sending mail bounce message to the sender and all other data gathering events are complete.(Also mentioned in the proposal but I had to go though to understand the code otherwise I could not move on).
I have also read the Mailman 2.1.xx method of processing bounce addresses. Important docs I have read -----
Bounces in mailman3 ------------ "https://mailman.readthedocs.io/en/latest/src/mailman/model/docs/bounce.html"
Bounce Processing of Mailman 2.1( Sub topic here ) ---------- "https://wiki.list.org/DOC/Mailman%202.1%20List%20Administrators%20Manual?hig..."
Runners in Mailman3 ------------------------ "https://mailman.readthedocs.io/en/latest/src/mailman/runners/docs/incoming.h..."
QUESTIONS
Q1--- What should be my implementation of processing bounces? Same as previous Mailman or some new ideas. (I am researching this but also need pointers from other contributors!)
Q2--- Some crucial info I missed or overlooked please point out and guide me in the right direction for this. If any imp doc I missed please share the link.
I believe implementation on this is not trivial and suitable amount of discussion is required for making anything final. I hope to contribute to this org as long as possible(GSoC or No GSoC). It has really sparked my interest.