You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by "Peelman, Nick" <ni...@peelman.us> on 2013/02/18 21:55:40 UTC

Bug in mailer.py

Using mailer.py fetched from: http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/mailer/

Running:

> root@svn:/home/svn/agsync/hooks# ./mailer.py commit /home/svn/agsync/ 8160 ../conf/mailer.conf 
> Traceback (most recent call last):
>   File "./mailer.py", line 1444, in <module>
>     sys.argv[3:3+expected_args])
>   File "/usr/lib/python2.7/dist-packages/svn/core.py", line 281, in run_app
>     return func(application_pool, *args, **kw)
>   File "./mailer.py", line 102, in main
>     {'author': author,
> UnboundLocalError: local variable 'author' referenced before assignment


Fix:

~ Line 102:

>   if cmd == 'commit':
>     revision = int(cmd_args[0])
>     repos = Repository(repos_dir, revision, pool)
>     cfg = Config(config_fname, repos,
>                  {'author': repos.author,
>                   'repos_basename': os.path.basename(repos.repos_dir)
>                  })
>     messenger = Commit(pool, cfg, repos)   

Use repos.author instead of just 'author'.

-nick

--
Peelman, Nick
nick@peelman.us





Re: Bug in mailer.py

Posted by olli hauer <oh...@gmx.de>.
On 2013-02-19 07:44, Daniel Shahaf wrote:
> Will this break any use-cases?  (eg: do some people send commit mails to
> mailing lists configured to reject Precedence:bulk inbound mails?)
> 
> Would it be better to allow the user to set arbitrary headers?  Example
> UI for mailer.py.conf:
> 
>    [headers]
>    Precedence: bulk
>    X-SVN-Id: %(repos_basename)s %(revnum)s %(date)s %(author)s
> 

I totally agree, thats the better way.

Regards,
olli



> olli hauer wrote on Tue, Feb 19, 2013 at 07:07:52 +0100:
>> I also have a small patch on my wish-list ...
>>
>> o add rfc2076 header (Precedence: bulk)
>> o add rfc3834 header (Auto-Submitted: auto-generated)
>>    (this header is already honored by dovecot2)
>> o add special header for MS Exchange
>>    (http://msdn.microsoft.com/en-us/library/ee219609%28v=EXCHG.80%29.aspx)
>>
>>
>> Index: tools/hook-scripts/mailer/mailer.py
>> ===================================================================
>> --- tools/hook-scripts/mailer/mailer.py (revision 1447596)
>> +++ tools/hook-scripts/mailer/mailer.py (working copy)
>> @@ -246,9 +246,12 @@
>>      hdrs = 'From: %s\n'    \
>>             'To: %s\n'      \
>>             'Subject: %s\n' \
>> +           'Precedence: bulk\n' \
>> +           'Auto-Submitted: auto-generated\n' \
>>             'MIME-Version: 1.0\n' \
>>             'Content-Type: text/plain; charset=UTF-8\n' \
>>             'Content-Transfer-Encoding: 8bit\n' \
>> +           'X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply\n' \
>>             'X-Svn-Commit-Project: %s\n' \
>>             'X-Svn-Commit-Author: %s\n' \
>>             'X-Svn-Commit-Revision: %d\n' \
>>
>>
>> Regards,
>> olli
> 

Re: Bug in mailer.py

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
Will this break any use-cases?  (eg: do some people send commit mails to
mailing lists configured to reject Precedence:bulk inbound mails?)

Would it be better to allow the user to set arbitrary headers?  Example
UI for mailer.py.conf:

   [headers]
   Precedence: bulk
   X-SVN-Id: %(repos_basename)s %(revnum)s %(date)s %(author)s

olli hauer wrote on Tue, Feb 19, 2013 at 07:07:52 +0100:
> I also have a small patch on my wish-list ...
> 
> o add rfc2076 header (Precedence: bulk)
> o add rfc3834 header (Auto-Submitted: auto-generated)
>    (this header is already honored by dovecot2)
> o add special header for MS Exchange
>    (http://msdn.microsoft.com/en-us/library/ee219609%28v=EXCHG.80%29.aspx)
> 
> 
> Index: tools/hook-scripts/mailer/mailer.py
> ===================================================================
> --- tools/hook-scripts/mailer/mailer.py (revision 1447596)
> +++ tools/hook-scripts/mailer/mailer.py (working copy)
> @@ -246,9 +246,12 @@
>      hdrs = 'From: %s\n'    \
>             'To: %s\n'      \
>             'Subject: %s\n' \
> +           'Precedence: bulk\n' \
> +           'Auto-Submitted: auto-generated\n' \
>             'MIME-Version: 1.0\n' \
>             'Content-Type: text/plain; charset=UTF-8\n' \
>             'Content-Transfer-Encoding: 8bit\n' \
> +           'X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply\n' \
>             'X-Svn-Commit-Project: %s\n' \
>             'X-Svn-Commit-Author: %s\n' \
>             'X-Svn-Commit-Revision: %d\n' \
> 
> 
> Regards,
> olli

Re: Bug in mailer.py

Posted by olli hauer <oh...@gmx.de>.
On 2013-02-18 22:51, Daniel Shahaf wrote:
> r1447513 fixes the bug you originally reported, Nick.
> 
> Peelman, Nick wrote on Mon, Feb 18, 2013 at 16:40:57 -0500:
>> While you're in there :)
>>
>> I was seeing a few more spam points than i liked, and a coupe of them were easy fixes:
>>
>>    def mail_headers(self, group, params):
> 
> Can you send this as a proper unidiff (`svn diff` output) against
> mailer.py@HEAD?
> 
> See http://subversion.apache.org/patches for a few other recommendations
> that make our lives easier.
> 
> Thanks,
> 
> Daniel
> 

I also have a small patch on my wish-list ...

o add rfc2076 header (Precedence: bulk)
o add rfc3834 header (Auto-Submitted: auto-generated)
   (this header is already honored by dovecot2)
o add special header for MS Exchange
   (http://msdn.microsoft.com/en-us/library/ee219609%28v=EXCHG.80%29.aspx)


Index: tools/hook-scripts/mailer/mailer.py
===================================================================
--- tools/hook-scripts/mailer/mailer.py (revision 1447596)
+++ tools/hook-scripts/mailer/mailer.py (working copy)
@@ -246,9 +246,12 @@
     hdrs = 'From: %s\n'    \
            'To: %s\n'      \
            'Subject: %s\n' \
+           'Precedence: bulk\n' \
+           'Auto-Submitted: auto-generated\n' \
            'MIME-Version: 1.0\n' \
            'Content-Type: text/plain; charset=UTF-8\n' \
            'Content-Transfer-Encoding: 8bit\n' \
+           'X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply\n' \
            'X-Svn-Commit-Project: %s\n' \
            'X-Svn-Commit-Author: %s\n' \
            'X-Svn-Commit-Revision: %d\n' \


Regards,
olli

Re: Bug in mailer.py

Posted by olli hauer <oh...@gmx.de>.
On 2013-02-18 22:51, Daniel Shahaf wrote:
> r1447513 fixes the bug you originally reported, Nick.
> 
> Peelman, Nick wrote on Mon, Feb 18, 2013 at 16:40:57 -0500:
>> While you're in there :)
>>
>> I was seeing a few more spam points than i liked, and a coupe of them were easy fixes:
>>
>>    def mail_headers(self, group, params):
> 
> Can you send this as a proper unidiff (`svn diff` output) against
> mailer.py@HEAD?
> 
> See http://subversion.apache.org/patches for a few other recommendations
> that make our lives easier.
> 
> Thanks,
> 
> Daniel
> 

I also have a small patch on my wish-list ...

o add rfc2076 header (Precedence: bulk)
o add rfc3834 header (Auto-Submitted: auto-generated)
   (this header is already honored by dovecot2)
o add special header for MS Exchange
   (http://msdn.microsoft.com/en-us/library/ee219609%28v=EXCHG.80%29.aspx)


Index: tools/hook-scripts/mailer/mailer.py
===================================================================
--- tools/hook-scripts/mailer/mailer.py (revision 1447596)
+++ tools/hook-scripts/mailer/mailer.py (working copy)
@@ -246,9 +246,12 @@
     hdrs = 'From: %s\n'    \
            'To: %s\n'      \
            'Subject: %s\n' \
+           'Precedence: bulk\n' \
+           'Auto-Submitted: auto-generated\n' \
            'MIME-Version: 1.0\n' \
            'Content-Type: text/plain; charset=UTF-8\n' \
            'Content-Transfer-Encoding: 8bit\n' \
+           'X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply\n' \
            'X-Svn-Commit-Project: %s\n' \
            'X-Svn-Commit-Author: %s\n' \
            'X-Svn-Commit-Revision: %d\n' \


Regards,
olli

Re: Bug in mailer.py

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
r1447513 fixes the bug you originally reported, Nick.

Peelman, Nick wrote on Mon, Feb 18, 2013 at 16:40:57 -0500:
> While you're in there :)
> 
> I was seeing a few more spam points than i liked, and a coupe of them were easy fixes:
> 
>    def mail_headers(self, group, params):

Can you send this as a proper unidiff (`svn diff` output) against
mailer.py@HEAD?

See http://subversion.apache.org/patches for a few other recommendations
that make our lives easier.

Thanks,

Daniel

>     from email import Utils
>     subject = self.make_subject(group, params)
>     try:
>       subject.encode('ascii')
>     except UnicodeError:
>       from email.Header import Header
>       subject = Header(subject, 'utf-8').encode()
>     hdrs = 'From: %s\n'    \
>            'To: %s\n'      \
>            'Subject: %s\n' \
>            'Date: %s\n' \
>            'Message-ID: %s\n' \
>            'MIME-Version: 1.0\n' \
>            'Content-Type: text/plain; charset=UTF-8\n' \
>            'Content-Transfer-Encoding: 8bit\n' \
>            'X-Svn-Commit-Project: %s\n' \
>            'X-Svn-Commit-Author: %s\n' \
>            'X-Svn-Commit-Revision: %d\n' \
>            'X-Svn-Commit-Repository: %s\n' \
>            % (self.from_addr, ', '.join(self.to_addrs), subject, 
>               Utils.formatdate(), Utils.make_msgid("r" + str(self.repos.rev)),
>               group, self.repos.author or 'no_author', self.repos.rev,
>               os.path.basename(self.repos.repos_dir))
>     if self.reply_to:
>       hdrs = '%sReply-To: %s\n' % (hdrs, self.reply_to)
>     return hdrs + '\n'
> 
> Adds a Date header and a Message-ID with the revision property embedded at the end.  I also have a tweak with a new config line to allow you to ignore the directory inclusion on the subject line entirely (leaving only the revision (eg. r4939)), but unless you're interested, I'm willing to fight that battle another day.
> 
> 
> -nick
> 
> --
> Peelman, Nick
> nick@peelman.us
> 
> 
> 
> 
> On Feb 18, 2013, at 16:36, Daniel Shahaf <d....@daniel.shahaf.name> wrote:
> 
> > Agreed.  This was introduced in r1439592.  You can use r1439591 for now;
> > I'll commit your fix shortly.  Thanks!
> > 
> > Peelman, Nick wrote on Mon, Feb 18, 2013 at 15:55:40 -0500:
> >> Using mailer.py fetched from: http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/mailer/
> >> 
> >> Running:
> >> 
> >>> root@svn:/home/svn/agsync/hooks# ./mailer.py commit /home/svn/agsync/ 8160 ../conf/mailer.conf 
> >>> Traceback (most recent call last):
> >>>  File "./mailer.py", line 1444, in <module>
> >>>    sys.argv[3:3+expected_args])
> >>>  File "/usr/lib/python2.7/dist-packages/svn/core.py", line 281, in run_app
> >>>    return func(application_pool, *args, **kw)
> >>>  File "./mailer.py", line 102, in main
> >>>    {'author': author,
> >>> UnboundLocalError: local variable 'author' referenced before assignment
> >> 
> >> 
> >> Fix:
> >> 
> >> ~ Line 102:
> >> 
> >>>  if cmd == 'commit':
> >>>    revision = int(cmd_args[0])
> >>>    repos = Repository(repos_dir, revision, pool)
> >>>    cfg = Config(config_fname, repos,
> >>>                 {'author': repos.author,
> >>>                  'repos_basename': os.path.basename(repos.repos_dir)
> >>>                 })
> >>>    messenger = Commit(pool, cfg, repos)   
> >> 
> >> Use repos.author instead of just 'author'.
> >> 
> >> -nick
> >> 
> >> --
> >> Peelman, Nick
> >> nick@peelman.us
> >> 
> >> 
> >> 
> >> 
> > 
> > 
> 



Re: Bug in mailer.py

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
r1447513 fixes the bug you originally reported, Nick.

Peelman, Nick wrote on Mon, Feb 18, 2013 at 16:40:57 -0500:
> While you're in there :)
> 
> I was seeing a few more spam points than i liked, and a coupe of them were easy fixes:
> 
>    def mail_headers(self, group, params):

Can you send this as a proper unidiff (`svn diff` output) against
mailer.py@HEAD?

See http://subversion.apache.org/patches for a few other recommendations
that make our lives easier.

Thanks,

Daniel

>     from email import Utils
>     subject = self.make_subject(group, params)
>     try:
>       subject.encode('ascii')
>     except UnicodeError:
>       from email.Header import Header
>       subject = Header(subject, 'utf-8').encode()
>     hdrs = 'From: %s\n'    \
>            'To: %s\n'      \
>            'Subject: %s\n' \
>            'Date: %s\n' \
>            'Message-ID: %s\n' \
>            'MIME-Version: 1.0\n' \
>            'Content-Type: text/plain; charset=UTF-8\n' \
>            'Content-Transfer-Encoding: 8bit\n' \
>            'X-Svn-Commit-Project: %s\n' \
>            'X-Svn-Commit-Author: %s\n' \
>            'X-Svn-Commit-Revision: %d\n' \
>            'X-Svn-Commit-Repository: %s\n' \
>            % (self.from_addr, ', '.join(self.to_addrs), subject, 
>               Utils.formatdate(), Utils.make_msgid("r" + str(self.repos.rev)),
>               group, self.repos.author or 'no_author', self.repos.rev,
>               os.path.basename(self.repos.repos_dir))
>     if self.reply_to:
>       hdrs = '%sReply-To: %s\n' % (hdrs, self.reply_to)
>     return hdrs + '\n'
> 
> Adds a Date header and a Message-ID with the revision property embedded at the end.  I also have a tweak with a new config line to allow you to ignore the directory inclusion on the subject line entirely (leaving only the revision (eg. r4939)), but unless you're interested, I'm willing to fight that battle another day.
> 
> 
> -nick
> 
> --
> Peelman, Nick
> nick@peelman.us
> 
> 
> 
> 
> On Feb 18, 2013, at 16:36, Daniel Shahaf <d....@daniel.shahaf.name> wrote:
> 
> > Agreed.  This was introduced in r1439592.  You can use r1439591 for now;
> > I'll commit your fix shortly.  Thanks!
> > 
> > Peelman, Nick wrote on Mon, Feb 18, 2013 at 15:55:40 -0500:
> >> Using mailer.py fetched from: http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/mailer/
> >> 
> >> Running:
> >> 
> >>> root@svn:/home/svn/agsync/hooks# ./mailer.py commit /home/svn/agsync/ 8160 ../conf/mailer.conf 
> >>> Traceback (most recent call last):
> >>>  File "./mailer.py", line 1444, in <module>
> >>>    sys.argv[3:3+expected_args])
> >>>  File "/usr/lib/python2.7/dist-packages/svn/core.py", line 281, in run_app
> >>>    return func(application_pool, *args, **kw)
> >>>  File "./mailer.py", line 102, in main
> >>>    {'author': author,
> >>> UnboundLocalError: local variable 'author' referenced before assignment
> >> 
> >> 
> >> Fix:
> >> 
> >> ~ Line 102:
> >> 
> >>>  if cmd == 'commit':
> >>>    revision = int(cmd_args[0])
> >>>    repos = Repository(repos_dir, revision, pool)
> >>>    cfg = Config(config_fname, repos,
> >>>                 {'author': repos.author,
> >>>                  'repos_basename': os.path.basename(repos.repos_dir)
> >>>                 })
> >>>    messenger = Commit(pool, cfg, repos)   
> >> 
> >> Use repos.author instead of just 'author'.
> >> 
> >> -nick
> >> 
> >> --
> >> Peelman, Nick
> >> nick@peelman.us
> >> 
> >> 
> >> 
> >> 
> > 
> > 
> 



Re: Bug in mailer.py

Posted by "Peelman, Nick" <ni...@peelman.us>.
While you're in there :)

I was seeing a few more spam points than i liked, and a coupe of them were easy fixes:

   def mail_headers(self, group, params):
    from email import Utils
    subject = self.make_subject(group, params)
    try:
      subject.encode('ascii')
    except UnicodeError:
      from email.Header import Header
      subject = Header(subject, 'utf-8').encode()
    hdrs = 'From: %s\n'    \
           'To: %s\n'      \
           'Subject: %s\n' \
           'Date: %s\n' \
           'Message-ID: %s\n' \
           'MIME-Version: 1.0\n' \
           'Content-Type: text/plain; charset=UTF-8\n' \
           'Content-Transfer-Encoding: 8bit\n' \
           'X-Svn-Commit-Project: %s\n' \
           'X-Svn-Commit-Author: %s\n' \
           'X-Svn-Commit-Revision: %d\n' \
           'X-Svn-Commit-Repository: %s\n' \
           % (self.from_addr, ', '.join(self.to_addrs), subject, 
              Utils.formatdate(), Utils.make_msgid("r" + str(self.repos.rev)),
              group, self.repos.author or 'no_author', self.repos.rev,
              os.path.basename(self.repos.repos_dir))
    if self.reply_to:
      hdrs = '%sReply-To: %s\n' % (hdrs, self.reply_to)
    return hdrs + '\n'

Adds a Date header and a Message-ID with the revision property embedded at the end.  I also have a tweak with a new config line to allow you to ignore the directory inclusion on the subject line entirely (leaving only the revision (eg. r4939)), but unless you're interested, I'm willing to fight that battle another day.


-nick

--
Peelman, Nick
nick@peelman.us




On Feb 18, 2013, at 16:36, Daniel Shahaf <d....@daniel.shahaf.name> wrote:

> Agreed.  This was introduced in r1439592.  You can use r1439591 for now;
> I'll commit your fix shortly.  Thanks!
> 
> Peelman, Nick wrote on Mon, Feb 18, 2013 at 15:55:40 -0500:
>> Using mailer.py fetched from: http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/mailer/
>> 
>> Running:
>> 
>>> root@svn:/home/svn/agsync/hooks# ./mailer.py commit /home/svn/agsync/ 8160 ../conf/mailer.conf 
>>> Traceback (most recent call last):
>>>  File "./mailer.py", line 1444, in <module>
>>>    sys.argv[3:3+expected_args])
>>>  File "/usr/lib/python2.7/dist-packages/svn/core.py", line 281, in run_app
>>>    return func(application_pool, *args, **kw)
>>>  File "./mailer.py", line 102, in main
>>>    {'author': author,
>>> UnboundLocalError: local variable 'author' referenced before assignment
>> 
>> 
>> Fix:
>> 
>> ~ Line 102:
>> 
>>>  if cmd == 'commit':
>>>    revision = int(cmd_args[0])
>>>    repos = Repository(repos_dir, revision, pool)
>>>    cfg = Config(config_fname, repos,
>>>                 {'author': repos.author,
>>>                  'repos_basename': os.path.basename(repos.repos_dir)
>>>                 })
>>>    messenger = Commit(pool, cfg, repos)   
>> 
>> Use repos.author instead of just 'author'.
>> 
>> -nick
>> 
>> --
>> Peelman, Nick
>> nick@peelman.us
>> 
>> 
>> 
>> 
> 
> 


Re: Bug in mailer.py

Posted by "Peelman, Nick" <ni...@peelman.us>.
While you're in there :)

I was seeing a few more spam points than i liked, and a coupe of them were easy fixes:

   def mail_headers(self, group, params):
    from email import Utils
    subject = self.make_subject(group, params)
    try:
      subject.encode('ascii')
    except UnicodeError:
      from email.Header import Header
      subject = Header(subject, 'utf-8').encode()
    hdrs = 'From: %s\n'    \
           'To: %s\n'      \
           'Subject: %s\n' \
           'Date: %s\n' \
           'Message-ID: %s\n' \
           'MIME-Version: 1.0\n' \
           'Content-Type: text/plain; charset=UTF-8\n' \
           'Content-Transfer-Encoding: 8bit\n' \
           'X-Svn-Commit-Project: %s\n' \
           'X-Svn-Commit-Author: %s\n' \
           'X-Svn-Commit-Revision: %d\n' \
           'X-Svn-Commit-Repository: %s\n' \
           % (self.from_addr, ', '.join(self.to_addrs), subject, 
              Utils.formatdate(), Utils.make_msgid("r" + str(self.repos.rev)),
              group, self.repos.author or 'no_author', self.repos.rev,
              os.path.basename(self.repos.repos_dir))
    if self.reply_to:
      hdrs = '%sReply-To: %s\n' % (hdrs, self.reply_to)
    return hdrs + '\n'

Adds a Date header and a Message-ID with the revision property embedded at the end.  I also have a tweak with a new config line to allow you to ignore the directory inclusion on the subject line entirely (leaving only the revision (eg. r4939)), but unless you're interested, I'm willing to fight that battle another day.


-nick

--
Peelman, Nick
nick@peelman.us




On Feb 18, 2013, at 16:36, Daniel Shahaf <d....@daniel.shahaf.name> wrote:

> Agreed.  This was introduced in r1439592.  You can use r1439591 for now;
> I'll commit your fix shortly.  Thanks!
> 
> Peelman, Nick wrote on Mon, Feb 18, 2013 at 15:55:40 -0500:
>> Using mailer.py fetched from: http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/mailer/
>> 
>> Running:
>> 
>>> root@svn:/home/svn/agsync/hooks# ./mailer.py commit /home/svn/agsync/ 8160 ../conf/mailer.conf 
>>> Traceback (most recent call last):
>>>  File "./mailer.py", line 1444, in <module>
>>>    sys.argv[3:3+expected_args])
>>>  File "/usr/lib/python2.7/dist-packages/svn/core.py", line 281, in run_app
>>>    return func(application_pool, *args, **kw)
>>>  File "./mailer.py", line 102, in main
>>>    {'author': author,
>>> UnboundLocalError: local variable 'author' referenced before assignment
>> 
>> 
>> Fix:
>> 
>> ~ Line 102:
>> 
>>>  if cmd == 'commit':
>>>    revision = int(cmd_args[0])
>>>    repos = Repository(repos_dir, revision, pool)
>>>    cfg = Config(config_fname, repos,
>>>                 {'author': repos.author,
>>>                  'repos_basename': os.path.basename(repos.repos_dir)
>>>                 })
>>>    messenger = Commit(pool, cfg, repos)   
>> 
>> Use repos.author instead of just 'author'.
>> 
>> -nick
>> 
>> --
>> Peelman, Nick
>> nick@peelman.us
>> 
>> 
>> 
>> 
> 
> 


Re: Bug in mailer.py

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
Agreed.  This was introduced in r1439592.  You can use r1439591 for now;
I'll commit your fix shortly.  Thanks!

Peelman, Nick wrote on Mon, Feb 18, 2013 at 15:55:40 -0500:
> Using mailer.py fetched from: http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/mailer/
> 
> Running:
> 
> > root@svn:/home/svn/agsync/hooks# ./mailer.py commit /home/svn/agsync/ 8160 ../conf/mailer.conf 
> > Traceback (most recent call last):
> >   File "./mailer.py", line 1444, in <module>
> >     sys.argv[3:3+expected_args])
> >   File "/usr/lib/python2.7/dist-packages/svn/core.py", line 281, in run_app
> >     return func(application_pool, *args, **kw)
> >   File "./mailer.py", line 102, in main
> >     {'author': author,
> > UnboundLocalError: local variable 'author' referenced before assignment
> 
> 
> Fix:
> 
> ~ Line 102:
> 
> >   if cmd == 'commit':
> >     revision = int(cmd_args[0])
> >     repos = Repository(repos_dir, revision, pool)
> >     cfg = Config(config_fname, repos,
> >                  {'author': repos.author,
> >                   'repos_basename': os.path.basename(repos.repos_dir)
> >                  })
> >     messenger = Commit(pool, cfg, repos)   
> 
> Use repos.author instead of just 'author'.
> 
> -nick
> 
> --
> Peelman, Nick
> nick@peelman.us
> 
> 
> 
> 



Re: Bug in mailer.py

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
Agreed.  This was introduced in r1439592.  You can use r1439591 for now;
I'll commit your fix shortly.  Thanks!

Peelman, Nick wrote on Mon, Feb 18, 2013 at 15:55:40 -0500:
> Using mailer.py fetched from: http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/mailer/
> 
> Running:
> 
> > root@svn:/home/svn/agsync/hooks# ./mailer.py commit /home/svn/agsync/ 8160 ../conf/mailer.conf 
> > Traceback (most recent call last):
> >   File "./mailer.py", line 1444, in <module>
> >     sys.argv[3:3+expected_args])
> >   File "/usr/lib/python2.7/dist-packages/svn/core.py", line 281, in run_app
> >     return func(application_pool, *args, **kw)
> >   File "./mailer.py", line 102, in main
> >     {'author': author,
> > UnboundLocalError: local variable 'author' referenced before assignment
> 
> 
> Fix:
> 
> ~ Line 102:
> 
> >   if cmd == 'commit':
> >     revision = int(cmd_args[0])
> >     repos = Repository(repos_dir, revision, pool)
> >     cfg = Config(config_fname, repos,
> >                  {'author': repos.author,
> >                   'repos_basename': os.path.basename(repos.repos_dir)
> >                  })
> >     messenger = Commit(pool, cfg, repos)   
> 
> Use repos.author instead of just 'author'.
> 
> -nick
> 
> --
> Peelman, Nick
> nick@peelman.us
> 
> 
> 
>