On Jul 17, 2021, at 3:47 AM, Adi Roiban email@example.com wrote:
On Fri, 16 Jul 2021 at 20:27, Glyph <firstname.lastname@example.org mailto:email@example.com> wrote:
On Jul 16, 2021, at 2:20 AM, Richard van der Hoff <firstname.lastname@example.org mailto:email@example.com> wrote:
On 16/07/2021 00:18, Glyph wrote:
On Jul 15, 2021, at 9:00 AM, Richard van der Hoff <firstname.lastname@example.org mailto:email@example.com> wrote:
We can't just go and add type annotations because we need to maintain compatibility with older Twisted (to make it possible to package in Debian et al).
Any suggestions for keeping mypy happy?
Are you saying you need it to typecheck against older versions or just run against them?
Ah, this gave me the clue I needed. We just need to run against them. Which means I can put type hints in comments, where they will be ignored at runtime. It's fiddly, but it will work well enough.
You can also do 'from __future__ import annotations' to avoid the annotations getting evaluated, which might be slightly less awkward.
Thanks Glyph, and thanks to Adi and Barry for your suggestions too.
One particular problem I came across was the type annotation on inlineCallbacks. I've filed https://twistedmatrix.com/trac/ticket/10231 https://twistedmatrix.com/trac/ticket/10231 about it - would appreciate thoughts.
This definitely looks wrong; there should be a TypeVar in there. Adi, I'd go so far as to say that this should be a release blocker, although the change should be fairly minimal.
Richard, could you please make a proper PR for this to get CI kicked off and make sure the new annotation doesn't cause any failures?
I think that I will do a RC2 release candidate, since due to this issue the GHA tests on RC1 are red - https://github.com/twisted/twisted/pull/1628 https://github.com/twisted/twisted/pull/1628 So I plan to cherry-pick those changes and do a RC2.
Regarding the release blocker, I will block the release for any ticket from https://twistedmatrix.com/trac/report/26 https://twistedmatrix.com/trac/report/26
Right now, I have added https://twistedmatrix.com/trac/ticket/10231 https://twistedmatrix.com/trac/ticket/10231 to that report.
So, if anyone knows how to fix https://twistedmatrix.com/trac/ticket/10231 https://twistedmatrix.com/trac/ticket/10231 please help to unblock the release.
Or if you think that https://twistedmatrix.com/trac/ticket/10231 https://twistedmatrix.com/trac/ticket/10231 should not be a release blocker, please add your comments.
For now, I will delay the release of RC2 to wait to see what is the resolution for #10231
This depends largely upon your available time and the difficulty of making these changes, but I'd suggest doing an RC2 as soon as the fixes are ready for the new python versions, to ensure folks can test with those, and then do an RC3 as soon as the annotation fix is ready.