Twisted is a framework, written in Python, for writing networked applications.
interface and an object broker. Developers can build applications using all of
these services as well as custom services that they write themselves. Twisted
security models.
2024-11-13 10:11:40 by Adam Ciarcinski | Files touched by this commit (5) | |
Log message:
py-twisted py-twisted-docs: updated to 24.10.0
Twisted 24.10.0 (2024-10-28)
Features
--------
- Python 3.13 is now supported.
- twisted.internet.defer.succeed() is significantly faster, and awaiting \
Deferred has also been sped up.
- twisted.python.failure.Failure creation no longer records the place where it \
was created. This reduces creation time by 60% at least, thereby speeding up \
Deferred error handling.
- twisted.internet.defer.Deferred no longer removes the traceback object from \
Failures. This may result in more objects staying in memory if you don't clean \
up failed Deferreds, but it speeds up error handling and enables improvements to \
traceback reporting.
- twisted.internet.defer APIs are 2%-4% faster in many cases.
- twisted.internet.defer.Deferred runs callbacks with chained Deferreds a little \
faster.
- The reactor now will use a little less CPU when events have been scheduled \
with callLater().
- Creation of twisted.python.failure.Failure is now faster.
Bugfixes
--------
- Fixed unreleased regression caused by PR 12109.
- twisted.logger.eventAsText can now format the output having types/classes as input.
This was a regression introduced in Twisted 24.3.0.
- twisted.internet.endpoints.clientFromString for TLS endpoints with \
"bindAddress=" no longer crashes during connect. \
twisted.internet.endpoints.HostnameEndpoint() no longer crashes when given a \
bindAddress= argument that is just a string, and that argument now accepts \
either address strings or (address, port) tuples.
- The URLs from README and pyproject.toml were updated.
Conch
-----
Features
- twisted.conch.ssh.keys.Key can now load public blob keys of type \
sk-ssh-ed25519@openssh.com and sk-ecdsa-sha2-nistp256@openssh.com.
Bugfixes
- twisted.conch tests no longer rely on OpenSSH supporting DSA keys, fixing \
compatibility with OpenSSH >= 9.8.
- twisted.conch.ssh.SSHCiphers no longer supports the cast128-ctr, cast128-cbc, \
blowfish-ctr, and blowfish-cbc ciphers.
The Blowfish and CAST5 ciphers were removed as they were deprecated by the \
Python cryptography library.
Web
---
Features
- The twisted.web HTTP server and client now reject HTTP header names containing \
whitespace or other invalid characters by raising \
twisted.web.http_headers.InvalidHeaderName, improving compliance with RFC 9110. \
As a side effect, the server is slightly faster.
- twisted.web.client and twisted.web.server now disable the Nagle algorithm \
(enable TCP_NODELAY), reducing the latency of small HTTP queries.
- twisted.web.server is 1-2% faster in some cases.
Bugfixes
- twisted.web's HTTP/1.1 server now rejects header values containing a NUL byte \
with a 400 error, in compliance with RFC 9110.
- twisted.internet.address no longer raises DeprecationWarning when used with \
attrs>=24.1.0.
- twisted.web's HTTP/1.1 server now accepts '&' within tokens (methods, \
header field names, etc.), in compliance with RFC 9110.
Trial
-----
Features
- Trial's ``-j`` flag now accepts an ``auto`` keyword to spawn a number of \
workers based on the available CPUs.
|
2024-08-10 15:50:13 by Greg Troxel | Files touched by this commit (3) | |
Log message:
net/py-twisted: Update to 24.7.0
This release carries a significant security fix.
Upstream NEWS:
Twisted 24.7.0 (2024-08-08)
===========================
24.7.0.rc2 fixed an unreleased regression caused by PR 12109. (#12279)
No other changes since 24.7.0.rc2
Security Advisories
-------------------
- twisted.web.util.redirectTo now HTML-escapes the provided URL in the fallback \
response body it returns (GHSA-cf56-g6w6-pqq2, CVE-2024-41810). (#9839)
- The HTTP 1.0 and 1.1 server provided by twisted.web could process pipelined \
HTTP requests out-of-order, possibly resulting in information disclosure \
(CVE-2024-41671/GHSA-c8m8-j448-xjx7) (#12248)
Features
--------
- twisted.protocols.ftp now supports the IPv6 extensions defined in RFC 2428. (#9645)
- twisted.internet.defer.inlineCallbacks can now yield a coroutine. (#9972)
- twisted.python._shellcomp.ZshArgumentsGenerator was updated for Python 3.13. \
(#12065)
- twisted.web.wsgi request environment now contains the peer port number as \
`REMOTE_PORT`. (#12096)
- twisted.internet.defer.Deferred.callback() and \
twisted.internet.defer.Deferred.addCallbacks() no longer use `assert` to check \
the type of the arguments. You should now use type checking to validate your \
code. These changes were done to reduce the CPU usage. (#12122)
- Added two new methods, twisted.logger.Logger.failuresHandled and \
twisted.logger.Logger.failureHandler, which allow for more concise and \
convenient handling of exceptions when dispatching out to application code. The \
former can arbitrarily customize failure handling at the call site, and the \
latter can be used for performance-sensitive cases where no additional \
information needs to be logged. (#12188)
- twisted.internet.defer.Deferred.addCallback now runs about 10% faster. (#12223)
- twisted.internet.defer.Deferred error handling is now faster, taking 40% less \
time to run. (#12227)
Deprecations and Removals
-------------------------
- twisted.internet.defer.returnValue has been deprecated. You can replace it \
with the standard `return` statement. (#9930)
- The `twisted-iocpsupport` is no longer a hard dependency on Windows.
The IOCP support is now installed together with the other Windows soft
dependencies via `twisted[windows-platform]`. (#11893)
- twisted.python.deprecate helper function will now always strip whitespaces \
from the docstrings.
This is done to have the same behaviour as with Python 3.13. (#12063)
- twisted.conch.manhole.ManholeInterpreter.write, \
twisted.conch.manhole.ManholeInterpreter.addOutput, \
twisted.mail.imap4.IMAP4Server.sendUntaggedResponse `async` argument, deprecated \
since 18.9.0, has been removed. (#12130)
- twisted.web.soap was removed.
The SOAP support was already broken, for at least the last 4 years.
The SOAP support in Twisted has no active maintainer. (#12146)
Web
---
Features
~~~~~~~~
- twisted.web.agent.Agent now allows duplicate Content-Length headers having the \
same value, per RFC 9110 section 8.6. It is otherwise more strict when parsing \
Content-Length header values. (#9064)
- twisted.web.client.HTTPConnectionPool used by HTTP clients now runs faster by \
using a little less CPU. (#12108)
- twisted.web.http_headers now uses less CPU, making a small HTTP client request \
10% faster or so. (#12116)
- twisted.web's HTTP/1.1 server now runs a little faster, with about 10% lower \
CPU overhead. (#12133)
- twisted.web's HTTP 1.1 server is an additional 5% faster. (#12155)
Deprecations and Removals
~~~~~~~~~~~~~~~~~~~~~~~~~
- twisted.web.util.ChildRedirector, which has never worked on Python 3, has been \
removed. (#9591)
- ``twisted.web.http.Request.setResponseCode()`` no longer validates the types \
of inputs; we encourage you to use a type checker like mypy to catch these sort \
of errors. The long-deprecated ``twisted.web.server.string_date_time()`` and \
``twisted.web.server.date_time_string()`` APIs were removed altogether. (#12133)
- twisted.web.http.HTTPClient is now deprecated in favor of \
twisted.web.client.Agent (#12158)
|
2024-04-05 19:31:54 by Adam Ciarcinski | Files touched by this commit (4) | |
Log message:
py-twisted: updated to 24.3.0
Twisted 24.3.0 (2024-03-01)
===========================
This release supports PyPy v7.3.14.
Bugfixes
--------
- twisted.logger.formatEvent now honors dotted method names, not just flat
function names, in format strings, as it has long been explicitly documented to
do. So, you will now get the expected result from `formatEvent("here's the
result of calling a method at log-format time: {obj.method()}", obj=...)`
- twisted.web.http.HTTPChannel now ignores the trailer headers provided in the \
last chunk of a chunked encoded response, rather than raising an exception.
- twisted.protocols.tls.BufferingTLSTransport, used by default by \
twisted.protocols.tls.TLSMemoryBIOFactory, was refactored for improved \
performance when doing a high number of small writes.
- twisted.python.failure.Failure now throws exception for generators without \
triggering a deprecation warnings on Python 3.12.
- twisted.internet.process.Process, used by ``reactor.spawnProcess``, now copies \
the parent environment when the `env=None` argument is passed on Posix systems \
and ``os.posix_spawnp`` is used internally.
- twisted.internet.defer.inlineCallbacks.returnValue's stack introspection was \
adjusted for the latest PyPy 7.3.14 release, allowing legacy @inlineCallbacks to \
run on new PyPY versions.
Deprecations and Removals
-------------------------
- twisted.trial.reporter.TestRun.startTest() is no longer called for tests
with skip annotation or skip attribute for Python 3.12.1 or newer.
This is the result of upstream Python gh-106584 change.
The behavior is not change in 3.12.0 or older.
Conch
-----
No significant changes.
Web
---
Bugfixes
~~~~~~~~
- The documentation for twisted.web.client.CookieAgent no longer references
long-deprecated ``cookielib`` and ``urllib2`` standard library modules.
Deprecations and Removals
~~~~~~~~~~~~~~~~~~~~~~~~~
- twisted.web.http.Request now parses the `multipart/form-data` using \
`email.message_from_bytes`.
The usage of `cgi.parse_multipart` was removed as the `cgi` module will be \
removed in Python 3.13.
Mail
----
No significant changes.
Words
-----
Improved Documentation
~~~~~~~~~~~~~~~~~~~~~~
- The documented IRC example was updated for Python3 usage.
Names
-----
No significant changes.
Trial
-----
No significant changes.
|
2023-11-05 11:38:35 by Thomas Klausner | Files touched by this commit (4) | |
Log message:
py-twisted: update to 23.10.0
Twisted 23.10.0 (2023-10-31)
============================
Features
--------
- twisted.python.filepath.FilePath and related classes \
(twisted.python.filepath.IFilepath, twisted.python.filepath.AbstractFilePath, \
twisted.python.zippath.ZipPath, and twisted.python.zippath.ZipArchive) now have \
type annotations. Additionally, FilePath is now generic, describing its mode, \
so you can annotate variables as FilePath[str] or FilePath[bytes] depending on \
the types that you wish to get back from the 'path' attribute and related \
methods like 'basename'. (#11822)
- When using `CPython`, functions wrapped by \
`twisted.internet.defer.inlineCallbacks` can have their arguments and return \
values freed immediately after completion (due to there no longer being circular \
references). (#11885)
Bugfixes
--------
- Fix TypeError on t.i.cfreactor due to 3.10 type annotation syntax (#11965)
- Fix the type annotations of DeferredLock.run, DeferredSemaphore.run, \
maybeDeferred, ensureDeferred, inlineCallbacks and fromCoroutine that used to \
return Deferred[Any] to return the result of the passed Coroutine/Coroutine \
function (#11985)
- Fixed significant performance overhead (CPU and bandwidth) when doing small \
writes to a TLS transport. Specifically, small writes to a TLS transport are now \
buffered until the next reactor iteration. (#11989)
- fix mypy due to hypothesis 6.85 (#11995)
|
2023-06-18 07:39:38 by Adam Ciarcinski | Files touched by this commit (20) |
Log message:
py-ZopeInterface: moved to py-zope.interface
|
2022-11-27 11:44:20 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message:
py-twisted: updated to 22.10.0
Twisted 22.10.0 (2022-10-30)
============================
This release contains a security fix for CVE-2022-39348.
This is a low-severity security bug.
Twisted 22.10.0rc1 release candidate was released on 2022-10-26 and there are
no changes between the release candidate and the final release.
Features
--------
- The ``systemd:`` endpoint parser now supports "named" file \
descriptors. This is a more reliable mechanism for choosing among several \
inherited descriptors.
Improved Documentation
----------------------
- The ``systemd`` endpoint parser's ``index`` parameter is now documented as \
leading to non-deterministic results in which descriptor is selected. The new \
``name`` parameter is now documented as preferred.
- The implementers of Zope interfaces are once more displayed in the documentations.
Deprecations and Removals
-------------------------
- twisted.protocols.dict, which was deprecated in 17.9, has been removed.
Conch
-----
Bugfixes
~~~~~~~~
- twisted.conch.manhole.ManholeInterpreter now captures tracebacks even if \
sys.excepthook has been modified.
Web
---
Features
~~~~~~~~
- The twisted.web.pages.errorPage, notFound, and forbidden each return an \
IResource that displays an HTML error pages safely rendered using \
twisted.web.template.
Bugfixes
~~~~~~~~
- twisted.web.error.Error.__str__ no longer raises an exception when the error's \
message attribute is None. Additionally, it validates that code is a plausible \
3-digit HTTP status code.
- The typing of the twisted.web.http_headers.Headers methods addRawHeader() and \
setRawHeaders() now allow mixing str and bytes, matching the runtime behavior.
- twisted.web.vhost.NameVirtualHost no longer echoes HTML received in the Host \
header without escaping it (CVE-2022-39348, GHSA-vg46-2rrj-3647).
Deprecations and Removals
~~~~~~~~~~~~~~~~~~~~~~~~~
- twisted.web.resource.Resource.putChild now raises TypeError when the path \
argument is not bytes, rather than issuing a deprecation warning.
- The twisted.web.resource.ErrorPage, NoResource, and ForbiddenResource classes \
have been deprecated in favor of new implementations twisted.web.pages module \
because they permit HTML injection.
Mail
----
Bugfixes
~~~~~~~~
- emailserver.tac now runs under python3.x
|
2022-10-25 20:21:27 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message:
py-twisted: updated to 22.8.0
Twisted 22.8.0 (2022-09-06)
===========================
Twisted 22.8.0rc1 release candidate was released on 2022-08-28 and there are
no changes between the release candidate and the final release.
Features
--------
- twisted.internet.defer.maybeDeferred will now schedule a coroutine result as \
asynchronous operation and return a Deferred that fires with the result of the \
coroutine.
- Twisted now works with Cryptography versions 37 and above, and as a result, \
its minimum TLS protocol version has been upgraded to TLSv1.2.
Bugfixes
--------
- ``twisted.internet.base.DelayedCall.__repr__`` will no longer raise \
``AttributeError`` if the ``DelayedCall`` was created before debug mode was \
enabled. As a side-effect, ``twisted.internet.base.DelayedCall.creator`` is now \
defined as ``None`` in cases where previously it was undefined.
- twisted.internet.iocpreactor.udp now properly re-queues its listener when \
there is a failure condition on the read from the socket.
- twisted.internet.defer.inlineCallbacks no longer causes confusing \
StopIteration tracebacks to be added to the top of tracebacks originating in \
triggered callbacks
- The typing of twisted.internet.task.react no longer constrains the type of argv.
- `ContextVar.reset()` now works correctly inside `inlineCallbacks` functions \
and coroutines.
- Implement twisted.python.failure._Code.co_positions for compatibility with \
Python 3.11.
- twisted.pair.tuntap._TUNSETIFF and ._TUNGETIFF values are now correct parisc, \
powerpc and sparc architectures.
Improved Documentation
----------------------
- The release process documentation was updated to include information about
doing a security release.
- The development and policy documentation pages were moved into the same
directory that is now placed inside the documentation root directory.
Deprecations and Removals
-------------------------
- Python 3.6 is no longer supported.
Twisted 22.4.0 was the last version with support for Python 3.6.
Conch
-----
Bugfixes
~~~~~~~~
- twisted.conch.checkers.UNIXAuthorizedKeysFiles now uses the filesystem \
encoding to decode usernames before looking them up in the password database, so \
it works on Python 3.
- twisted.conch.ssh.SSHSession.request_env no longer gives a warning if the \
session does not implement ISessionSetEnv.
- The cftp command line (and \
`twisted.conch.scripts.cftp.SSHSession.extReceived`) no longer raises an \
unhandled error when receiving data on stderr from the server.
Web
---
Features
~~~~~~~~
- twisted.web.template.renderElement now combines consecutive, \
sychronously-available bytes up to a fixed size limit into a single string to \
pass to ``IRequest.write`` instead of passing them all separately. This greatly \
reduces the number of chunks in the response.
Mail
----
Bugfixes
~~~~~~~~
- twisted.mail.maildir.MaildirMessage now use byte header to avoid \
incompatibility with the FileMessage which writes bytes not strings lines to a \
message file
Words
-----
Bugfixes
~~~~~~~~
- twisted.words.protocols.irc.IRCClient now splits overly long NOTICEs and \
NOTICEs containing \n before sending.
Names
-----
Bugfixes
~~~~~~~~
- twisted.names.dns logs unparsable messages rather than generating a Failure \
instance
Trial
-----
Features
~~~~~~~~
- ``trial --jobs=N --exitfirst`` is now supported.
Bugfixes
~~~~~~~~
- `trial --jobs=N --until-failure ...` now reports the correct number of tests \
run after each iteration.
- ``trial -jN ...`` will now pass errors and failures to ``IReporter`` methods \
as instances of ``WorkerException`` instead of ``str``.
|
2022-10-19 16:25:20 by Nia Alarie | Files touched by this commit (21) |
Log message:
fighting a losing battle against the py-cryptography rustification, part 5
Convert py-OpenSSL users to versioned_dependencies.mk
|