Webhook-mailer sends emails without subjects?

I just saw 4 emails to python-checkins without a subject. Did something change in the setup of how this mail is being sent?

Example body (they were all from Lukasz and an empty subject according to GMail) starts with 3-4 blank lines, followed by:

To: python-checkins@python.org
Subject: Python 3.8.0b2
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0

https://github.com/python/cpython/commit/21dd01dad7b6b38d4fd40b37d65f1ac7203e=
c4e6
commit: 21dd01dad7b6b38d4fd40b37d65f1ac7203ec4e6
branch: 3.8
author: =C5=81ukasz Langa <lukasz@langa.pl>
committer: =C5=81ukasz Langa <lukasz@langa.pl>
date: 2019-07-04T12:50:19+02:00
summary:

Python 3.8.0b2

files:
A Misc/NEWS.d/3.8.0b2.rst
D Misc/NEWS.d/next/Build/2019-06-17-09-40-59.bpo-37189.j5ebdT.rst
D Misc/NEWS.d/next/C API/2019-06-06-08-47-04.bpo-37170.hO_fpM.rst
D Misc/NEWS.d/next/C API/2019-06-07-10-47-37.bpo-37191.iGL1_K.rst
D Misc/NEWS.d/next/C API/2019-06-10-15-32-34.bpo-37215.yzoNyU.rst
D Misc/NEWS.d/next/C API/2019-06-11-02-50-38.bpo-37221.4tClQT.rst
D Misc/NEWS.d/next/C API/2019-06-12-11-45-36.bpo-37221.RhP1E7.rst
D Misc/NEWS.d/next/C API/2019-06-14-14-03-51.bpo-28805.qZC0N_.rst
D Misc/NEWS.d/next/C API/2019-06-28-15-49-16.bpo-36763.zrmgki.rst
D Misc/NEWS.d/next/Core and Builtins/2019-05-28-11-47-44.bpo-37077.S1h0Fc.rst
D Misc/NEWS.d/next/Core and Builtins/2019-06-05-09-24-17.bpo-37160.O3IAY3.rst
D Misc/NEWS.d/next/Core and Builtins/2019-06-06-11-00-55.bpo-36974.wdzzym.rst
D Misc/NEWS.d/next/Core and Builtins/2019-06-06-13-59-52.bpo-36922.EMZ3TF.rst
D Misc/NEWS.d/next/Core and Builtins/2019-06-10-23-18-31.bpo-37219.jPSufq.rst
D Misc/NEWS.d/next/Core and Builtins/2019-06-11-11-15-19.bpo-37213.UPii5K.rst
D Misc/NEWS.d/next/Core and Builtins/2019-06-14-06-32-33.bpo-37269.SjVVAe.rst
D Misc/NEWS.d/next/Core and Builtins/2019-06-17-03-53-16.bpo-37316.LytDX_.rst
D Misc/NEWS.d/next/Core and Builtins/2019-06-17-06-03-55.bpo-35224.FHWPGv.rst
D Misc/NEWS.d/next/Core and Builtins/2019-06-22-12-45-20.bpo-24214.hIiHeD.rst
D Misc/NEWS.d/next/Core and Builtins/2019-06-26-18-41-00.bpo-37417.VsZeHL.rst
D Misc/NEWS.d/next/Core and Builtins/2019-07-01-12-22-44.bpo-37467.u-XyEu.rst
D Misc/NEWS.d/next/Documentation/2019-06-17-09-36-46.bpo-34903.r_wGRc.rst
D Misc/NEWS.d/next/IDLE/2019-06-03-00-39-29.bpo-5680.VCQfOO.rst
D Misc/NEWS.d/next/IDLE/2019-06-04-20-36-24.bpo-35763.7XdoWz.rst
D Misc/NEWS.d/next/IDLE/2019-06-04-23-27-33.bpo-37039.FN_fBf.rst
D Misc/NEWS.d/next/IDLE/2019-06-07-00-17-41.bpo-37177.voU6pQ.rst
D Misc/NEWS.d/next/IDLE/2019-06-17-16-35-30.bpo-37321.zVTTGS.rst
D Misc/NEWS.d/next/IDLE/2019-06-18-16-40-05.bpo-37325.GssOf1.rst
D Misc/NEWS.d/next/Library/2017-08-15-11-24-41.bpo-4963.LRYres.rst
D Misc/NEWS.d/next/Library/2018-11-12-19-08-50.bpo-11122.Gj7BQn.rst
D Misc/NEWS.d/next/Library/2019-02-03-19-13-08.bpo-32627.b68f64.rst
D Misc/NEWS.d/next/Library/2019-05-09-18-50-55.bpo-35070.4vaqNL.rst
D Misc/NEWS.d/next/Library/2019-05-17-15-11-08.bpo-35805.E4YwYz.rst
D Misc/NEWS.d/next/Library/2019-05-27-15-29-46.bpo-30835.3FoaWH.rst
D Misc/NEWS.d/next/Library/2019-05-28-02-37-00.bpo-36520.W4tday.rst
D Misc/NEWS.d/next/Library/2019-05-28-19-03-46.bpo-35621.Abc1lf.rst
D Misc/NEWS.d/next/Library/2019-06-04-14-44-41.bpo-37150.TTzHxj.rst
D Misc/NEWS.d/next/Library/2019-06-04-22-25-38.bpo-37158.JKm15S.rst
D Misc/NEWS.d/next/Library/2019-06-04-23-44-52.bpo-34767.BpDShN.rst
D Misc/NEWS.d/next/Library/2019-06-05-11-48-19.bpo-37165.V_rwfE.rst
D Misc/NEWS.d/next/Library/2019-06-07-08-18-05.bpo-37163.36JkUh.rst
D Misc/NEWS.d/next/Library/2019-06-07-17-11-34.bpo-37178.b1StSv.rst
D Misc/NEWS.d/next/Library/2019-06-07-17-16-09.bpo-37178.Day_oB.rst
D Misc/NEWS.d/next/Library/2019-06-08-11-33-48.bpo-37173.0e_8gS.rst
D Misc/NEWS.d/next/Library/2019-06-08-16-03-19.bpo-34886.Ov-pc9.rst
D Misc/NEWS.d/next/Library/2019-06-11-00-35-02.bpo-36402.b0IJVp.rst
D Misc/NEWS.d/next/Library/2019-06-11-01-54-19.bpo-18748.ADqCkq.rst
D Misc/NEWS.d/next/Library/2019-06-11-13-52-04.bpo-36607.5_mJkQ.rst
D Misc/NEWS.d/next/Library/2019-06-11-16-41-40.bpo-35766.v1Kj-T.rst
D Misc/NEWS.d/next/Library/2019-06-11-19-34-29.bpo-35922.rxpzWr.rst
D Misc/NEWS.d/next/Library/2019-06-12-16-10-50.bpo-37210.r4yMg6.rst
D Misc/NEWS.d/next/Library/2019-06-14-08-30-16.bpo-19865.FRGH4I.rst
D Misc/NEWS.d/next/Library/2019-06-14-13-25-56.bpo-37279.OHlW6l.rst
D Misc/NEWS.d/next/Library/2019-06-14-13-30-47.bpo-37280.Fxur0F.rst
D Misc/NEWS.d/next/Library/2019-06-15-14-39-50.bpo-33972.XxnNPw.rst
D Misc/NEWS.d/next/Library/2019-06-25-02-10-00.bpo-37394.srZ1zx.rst
D Misc/NEWS.d/next/Library/2019-06-25-05-07-48.bpo-36546.RUcxaK.rst
D Misc/NEWS.d/next/Library/2019-06-25-19-27-25.bpo-29412.n4Zqdh.rst
D Misc/NEWS.d/next/Library/2019-06-26-16-28-59.bpo-37412.lx0VjC.rst
D Misc/NEWS.d/next/Library/2019-06-26-22-25-05.bpo-37420.CxFJ09.rst
D Misc/NEWS.d/next/Library/2019-06-27-13-27-02.bpo-37428._wcwUd.rst
D Misc/NEWS.d/next/Library/2019-06-27-20-33-50.bpo-37437.du39_A.rst
D Misc/NEWS.d/next/Library/2019-06-28-16-40-17.bpo-37440.t3wX-N.rst
D Misc/NEWS.d/next/Security/2019-06-17-09-34-25.bpo-34631.DBfM4j.rst
D Misc/NEWS.d/next/Security/2019-06-21-14-42-53.bpo-37364.IIRc2s.rst
D Misc/NEWS.d/next/Security/2019-06-21-15-58-59.bpo-37363.diouyl.rst
D Misc/NEWS.d/next/Security/2019-07-01-08-46-14.bpo-37463.1CHwjE.rst
D Misc/NEWS.d/next/Security/2019-07-01-10-31-14.bpo-37363.fSjatj.rst
D Misc/NEWS.d/next/Tests/2019-04-11-07-59-43.bpo-28009.s85urF.rst
D Misc/NEWS.d/next/Tests/2019-06-04-18-30-39.bpo-37153.711INB.rst
D Misc/NEWS.d/next/Tests/2019-06-07-12-23-15.bpo-37169.yfXTFg.rst
D Misc/NEWS.d/next/Tests/2019-06-13-12-19-56.bpo-37261.NuKFVo.rst
D Misc/NEWS.d/next/Tests/2019-06-14-12-21-47.bpo-37278.z0HUOr.rst
D Misc/NEWS.d/next/Tests/2019-06-14-17-05-49.bpo-35998.yX82oD.rst
D Misc/NEWS.d/next/Tests/2019-06-21-15-47-33.bpo-37362.D3xppx.rst
D Misc/NEWS.d/next/Tests/2019-06-24-10-47-07.bpo-37359.CkdtyO.rst
D Misc/NEWS.d/next/Tests/2019-06-25-16-02-43.bpo-37400.cx_EWv.rst
D Misc/NEWS.d/next/Tests/2019-06-26-15-28-45.bpo-37411.5lGNhM.rst
D Misc/NEWS.d/next/Tests/2019-06-27-00-37-59.bpo-37421.rVJb3x.rst
D Misc/NEWS.d/next/Tests/2019-06-28-16-37-52.bpo-37335.o5S2hY.rst
D Misc/NEWS.d/next/Tests/2019-06-29-23-56-28.bpo-37199.FHDsLf.rst
D Misc/NEWS.d/next/Tests/2019-07-01-19-57-26.bpo-37421.NFH1f0.rst
D Misc/NEWS.d/next/Tests/2019-07-02-23-20-35.bpo-37421.HCkKWz.rst
D Misc/NEWS.d/next/Tests/2019-07-02-23-29-06.bpo-37421.WEfc5A.rst
D Misc/NEWS.d/next/Tests/2019-07-03-00-05-28.bpo-37421.ORGRSG.rst
D Misc/NEWS.d/next/Windows/2019-06-11-15-41-34.bpo-36779.0TMw6f.rst
D Misc/NEWS.d/next/Windows/2019-06-13-04-15-51.bpo-37267.Ygo5ef.rst
D Misc/NEWS.d/next/Windows/2019-06-18-09-05-08.bpo-35360.tdqSmo.rst
D Misc/NEWS.d/next/Windows/2019-06-20-12-50-32.bpo-37351.asTnVW.rst
D Misc/NEWS.d/next/Windows/2019-06-28-09-44-08.bpo-37369.1iVpxq.rst
D Misc/NEWS.d/next/Windows/2019-07-01-12-38-48.bpo-10945.s0YBHG.rst
D Misc/NEWS.d/next/macOS/2019-06-18-00-30-40.bpo-34631.vSifcv.rst
D Misc/NEWS.d/next/macOS/2019-06-18-08-58-30.bpo-35360.-CWbfy.rst
D Misc/NEWS.d/next/macOS/2019-07-02-01-06-47.bpo-34602.10d4wl.rst
M Include/patchlevel.h
M Lib/pydoc_data/topics.py
M README.rst

diff --git a/Include/patchlevel.h b/Include/patchlevel.h
index 4a52f833a525..bb31b47bddd6 100644
--- a/Include/patchlevel.h
+++ b/Include/patchlevel.h
@@ -20,10 +20,10 @@
 #define PY_MINOR_VERSION        8
 #define PY_MICRO_VERSION        0
 #define PY_RELEASE_LEVEL        PY_RELEASE_LEVEL_BETA
-#define PY_RELEASE_SERIAL       1
+#define PY_RELEASE_SERIAL       2
=20

(and then more diffs)

1 Like

Looks to me like @ambv breaking things with his Ł again :wink:

I’m not versed well enough in the inner workings of email to suggest where it’s breaking, though.

Actually, I’ve managed to track this down to bpo-34424, which was just fixed in 3.7.4. When 3.7.4 is available on Heroku, the cpython-emailer-webhook can be updated and the issue will go away.

As I said a year ago, python-checkins effectively has no owner, as in messages to python-checkins-owner get no response.

Either the mailer or the list is broken.

Currently, 199 python-checkins messages “|Subject:|(no subject)|” are held for moderation.
“|Reason:|Message has implicit destination|”
with boilerplate rejection message
“Blind carbon copies or other implicit destinations are not allowed. Try
reposting your message by explicitly including the list address in the To: or
Cc: fields.”

But I suspect ‘(no subject)’ is not relevant (as in, is also true of passed messages).
Reading the above, I looked at maybe 25% of the held messages and the common factor is non-ascii in the proper full name of author or committer.
committer: St=C3=A9phane Wirtel stephane@wirtel.be
committer: =C5=81ukasz Langa lukasz@langa.pl
author: =C3=89ric Araujo merwok@netwok.org
author: Hakan =C3=87elik hakancelik96@outlook.com
author: Batuhan Ta=C5=9Fkaya 47358913+isidentical@users.noreply.github.com
author: Miro Hron=C4=8Dok miro@hroncok.cz
author: R=C3=A9mi Lapeyre remi.lapeyre@henki.fr
author: Filipe La=C3=ADns lains@archlinux.org
author: J=C3=BCrgen Gmach juergen.gmach@googlemail.com
author: Jakub Kul=C3=ADk Kulikjak@gmail.com

I 'accept’ed the messages, but I cannot make the list always accept messages from webhook mailer, like I supposedly could for others. I suspect that this is because ‘webhook-mailer’ is already always ‘accepted’ for well-formed messages.

Zack, please see if you can update Heroku now.

1 Like

Hm, shit. I have a GMail filter that normally hides these, but apparently it did trigger on what you just released, so now my inbox is flooded. :frowning:

In Thunderbird, I could select the first, shift-click to select the last to select all, then Del key to delete all.

Edit while perusing the delivered emails, I discovered several more ‘accented’ names. It is nice to see such a variety of new contributors writing PRs. I am pretty sure that non-ascii names used to be much rarer.

committer: Jes=C3=BAs Cea jcea@jcea.es
author: Mat=C4=9Bj Cepl mcepl@cepl.eu
author: Furkan =C3=96nder furkantahaonder@gmail.com
author: Jos=C3=A9 Roberto Meza Cabrera robertpro01@gmail.com
author: Ra=C3=BAl Cumplido raulcumplido@gmail.com
author: Oleg H=C3=B6fling hoefling@users.noreply.github.com
author: Lum=C3=ADr ‘Frenzy’ Balhar lbalhar@redhat.com
author: Filipe La=C3=ADns filipe.lains@gmail.com
author: Ville Skytt=C3=A4 ville.skytta@iki.fi
author: G=C3=A9ry Ogam gery.ogam@gmail.com
author: Vincent F=C3=A9rotin vincent.ferotin@gmail.com
author: Alex Gr=C3=B6nholm alex.gronholm@nextday.fi
author: Mario =C5=A0a=C5=A1ko mariosasko777@gmail.com

Looking at my archive, this started to happen between June 4 and 5 2019 (!).

This is the last message which was sent fine:

Subject: [Python-checkins] Bump to 3.9.0a0
Date: Tue,  4 Jun 2019 16:13:34 -0400 (EDT)
From: Łukasz Langa <webhook-mailer@python.org>
Reply-To: python-dev@python.org
To: python-checkins@python.org

https://github.com/python/cpython/commit/9ab2fb1c68a75115da92d51b8c40b74f60f88561
commit: 9ab2fb1c68a75115da92d51b8c40b74f60f88561
branch: master
author: Łukasz Langa <lukasz@langa.pl>
committer: Łukasz Langa <lukasz@langa.pl>
date: 2019-06-04T22:12:32+02:00
summary:

And this the first message which came through without subject line due to empty lines at the top of the message:

Subject: [Python-checkins] (no subject)
Date: Tue,  4 Jun 2019 22:01:00 -0400 (EDT)
From: Łukasz Langa <webhook-mailer@python.org>
Reply-To: python-dev@python.org




To: python-checkins@python.org
Subject: Bump version in AppVeyor config (#13822)
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0

https://github.com/python/cpython/commit/750767f7c06994f58bf235a520bc76b62aff=
b70b
commit: 750767f7c06994f58bf235a520bc76b62affb70b
branch: master
author: Zachary Ware <zach@python.org>
committer: =C5=81ukasz Langa <lukasz@langa.pl>
date: 2019-06-04T22:57:15+02:00
summary:

https://bugs.python.org/issue34424 does look a lot like the cause of this.

Maybe GitHub provides the information differently than what we had before?

Since part of the problem is that there’s no explicit owner of the python-checkins list, I’ll volunteer to be the owner of python-checkins and release the held messages every few days. I already do this for the Distutils-SIG, for example, and for a few other low-traffic lists.

2 Likes

Thank you Andrew. Working on IDLE is enough for me.
Without the held commit messages, there were about 10 spam messages in the last year, so dumping them once a year was enough.