4.21. Why make changes in mm_cfg.py NOT Defaults.py ?
This just an expansion of what Mailman's INSTALL document says and is reiterated in Defaults.py and mm_cfg.py.
The reason for not editing Defaults.py is that it is replaced when you install a new version of MM over an existing version: the normal case when updating an operational installation. Hence, you will lose the configuration variable changes you have made to a running system if you made them in Defaults.py
In contrast, mm_cfg.py is NOT replaced when a new version of MM is installed over an existing version and hence your explicit local configuration changes are retained over the update.
Remember that the Mailman source modules only import mm_cfg (never Defaults) which, alone, imports Defaults before doing its own assignments; this means that the config variable assignments in mm_cfg override any assignment of the same variable in Defaults. If it isn't mentioned in mm_cfg, then the assignment in Defaults holds sway.
Admins should follow the same logic, in which case there should be little room for confusion.
Converted from the Mailman FAQ Wizard
This is one of many Frequently Asked Questions.