My change to a source module is inneffective; When do I need to restart Mailman?
This is specific in detail to Mailman 2.1, but similar considerations apply to Mailman 3.
Mailman's qrunners are persistent processes and will not reload any previously loaded modules unless Mailman is restarted.
In general, if you change any .py file in Mailman/ or subordinates except Mailman/Cgi/, you must restart Mailman for the change to be effective. Mailman/Cgi/ is an exception because what's there is only used by web CGI processes which are not persistent.
It's also necessary to restart Mailman if you change any templates/ files having to do with the pipermail archive because ArchRunner keeps a cache of templates.
Also, regenerating .py[co] files is not necessary. Upon import of a module, python will see the .py is newer and load and compile it and if it has permission, write the .py[co] file it will use the next time.