Twisted: twisted-23.8.0rc1 Release

Release date:
August 17, 2023
Previous version:
twisted-22.10.0 (released October 30, 2022)
Magnitude:
7,386 Diff Delta
Contributors:
18 total committers
Data confidence:
Commits:

366 Commits in this Release

Ordered by the degree to which they evolved the repo in this version.

Authored November 22, 2022
Authored June 9, 2023
Authored February 28, 2023
Authored November 21, 2022
Authored August 16, 2023
Authored November 16, 2022
Authored July 21, 2023
Authored February 14, 2023
Authored March 21, 2023
Authored February 14, 2023
Authored March 21, 2023
Authored October 18, 2022
Authored February 14, 2023
Authored February 14, 2023
Authored November 29, 2022
Authored November 6, 2022
Authored February 25, 2023
Authored October 26, 2022
Authored November 2, 2022

Top Contributors in twisted-23.8.0rc1

glyph
exarkun
reaperhulk
graingert
felipemelendez
eevel-c9aa
adiroiban
erikjohnston
ofek
pre-commit-ci[bot]

Directory Browser for twisted-23.8.0rc1

We haven't yet finished calculating and confirming the files and directories changed in this release. Please check back soon.

Release Notes Published

Twisted 23.8.0.rc1 (2023-08-17)

This is the last release with support for Python 3.7.

Features

  • reactor.spawnProcess() now uses posix_spawnp when possible, making it much more efficient (#5710)
  • Twisted now officially supports Python 3.11. (#10343)
  • twisted.internet.defer.Deferred.fromFuture now has a more precise type annotation. (#11753)
  • twisted.internet.defer._ConcurrencyPrimitive.__aexit__ now has a more precise type annotation. (#11795)
  • twisted.internet.defer.race has been added as a way to get the first available result from a list of Deferreds. (#11817)
  • The CI suite was updated to execute the tests using a Python 3.12 pre-release (#11857)

Bugfixes

  • twisted.conch.scripts.ckeygen now substitutes a default of "~/.ssh/id_rsa" if no keyfile is specified. (#6607)
  • Correct type hints for IHostnameResolver.resolveHostName and IResolverSimple.getHostByName. (#10276)
  • twist conch --auth=sshkey can now authenticate users without a traceback again, thanks to twisted.conch.unix.UnixConchUser no longer being incorrectly instantiated with bytes. In the course of this fix, some type hinting has also been applied to twisted.cred.portal. (#11626)
  • twisted.internet.gireactor now works with Gtk4, and is tested and supported in CI again. (#11705)
  • When interrupted with control-C, trial -j no longer obscures tracebacks for any errors caused by that interruption with an UnboundLocalError due to a bug in its own implementation. Note that there are still several internal tracebacks that will be emitted upon exiting, because tearing down the test runner mid-suite is still not an entirely clean operation, but it should at least be possible to see errors reported from, for example, a test that is hanging more clearly. (#11707)
  • PortableGIReactor and PortableGtkReactor are no longer necessary and are now aliases of GIReactor and Gtk2Reactor respectively, improving the performance of any applications using them. (#11738)
  • The Twisted package dependencies were updated to minimum versions that will work with latest Twisted codebase. (#11740)
  • Deferred's type annotations have been made more comprehensive, precise, correct, and strict. You may notice new type errors in your applications; be sure to check on those because they may represent real type errors! (#11772)
  • To prevent parsing errors and ensure validity when serializing HTML comments, twisted.web.template.flattenString has been updated to escape the --> sequence within comments. (#11804)
  • BadZipfile (with a small f) has been deprecated since Python 3.2, use BadZipFile (big F) instead, added in 3.2. (#11821)
  • twisted.web.template now avoids unnecessary copying and is faster, particularly for templates with deep nesting. (#11834)
  • twisted.web.template now avoids some unecessary evaluation of type annotations and is faster. (#11835)
  • utcfromtimestamp has been deprecated since Python 3.12, use fromtimestamp(x, timezone.utc).replace(tzinfo=None) instead. (#11908)

Deprecations and Removals

  • Optional dependency "extras" names like conch_nacl now use hyphens rather than underscores to comply with PEP 685. The old names will be supported until the end of 2023. (#11655)
  • twisted.internet.gtk2reactor, twisted.internet.gtk3reactor, and twisted.internet.glib2reactor are now deprecated in favor of twisted.internet.gireactor. (#11705)
  • The minimum supported version of PyPy has been updated to 3.9. (#11836)

Misc

  • #10149, #10310, #10345, #11708, #11723, #11742, #11746, #11748, #11751, #11764, #11766, #11768, #11776, #11788, #11799, #11806, #11824, #11828, #11830, #11856, #11859, #11877, #11894

Conch

Deprecations and Removals ~~~~~~~~~~~~~~~~~~~~~~~~~

  • PyAsn1 has been removed as a conch dependency.

twisted.conch.ssh.keys.Key no longer supports loading "alternate" OpenSSH private keys. These are some private keys that at some point were handled by OpenSSH but for which no specification exists. For more info about these OpenSSH keys see https://github.com/twisted/twisted/issues/3008. (#11843) - Due to changes in the way raw private key byte serialization are handled in Cryptography, and widespread support for Ed25519 in current versions of OpenSSL, we no longer support PyNaCl as a fallback for Ed25519 keys in Conch. (#11871)

Web

Misc ~~~~

  • #11815, #11879

Mail

No significant changes.

Words

No significant changes.

Names

No significant changes.

Trial

No significant changes.