I stumbled accross a Python 3 compatibility issue in tools/hook-scripts/mailer/mailer.py.
The call of self.cfg.which_groups in line 565 passes an empty string as first parameter. In which_groups this empty string is passed to to_str in line 1489. In line 88 to_str does x.decode('utf-8') In Python 2 str objects have a decode method at least in later Python 3 versions they have not. Hence I propose the following patch which fixes the issue for me: Index: mailer.py =================================================================== --- mailer.py (revision 1914422) +++ mailer.py (working copy) @@ -562,7 +562,7 @@ # collect the set of groups and the unique sets of params for the options self.groups = { } - for (group, params) in self.cfg.which_groups('', None): + for (group, params) in self.cfg.which_groups(b'', None): # turn the params into a hashable object and stash it away param_list = sorted(params.items()) self.groups[group, tuple(param_list)] = params If I would get a go ahead here on list I would commit. Regards RĂ¼diger