Your message dated Fri, 27 Sep 2024 14:39:19 +0000
with message-id <[email protected]>
and subject line Bug#1082318: fixed in starlette 0.39.1-1
has caused the Debian Bug report #1082318,
regarding starlette FTBFS with Python 3.13
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
1082318: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1082318
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: starlette
Version: 0.38.2-1
Severity: normal
User: [email protected]
Usertags: python3.13
Forwarded: https://github.com/encode/starlette/pull/2662
This package failed build from source when test-built against a version of
python3-defaults that includes 3.13 as a supported version.
To reproduce this issue, build against python3-defaults (python3-all-dev etc.)
from Debian experimental.
What's new in Python 3.13:
https://docs.python.org/3.13/whatsnew/3.13.html
Log snippet:
tests/test_websockets.py ...................................... [100%]
=================================== FAILURES ===================================
___________________________ test_debug_html[asyncio] ___________________________
test_client_factory = functools.partial(<class
'starlette.testclient.TestClient'>, backend='asyncio', backend_options={})
def test_debug_html(test_client_factory: TestClientFactory) -> None:
async def app(scope: Scope, receive: Receive, send: Send) -> None:
raise RuntimeError("Something went wrong")
app = ServerErrorMiddleware(app, debug=True)
client = test_client_factory(app, raise_server_exceptions=False)
response = client.get("/", headers={"Accept": "text/html, */*"})
assert response.status_code == 500
> assert response.headers["content-type"].startswith("text/html")
tests/middleware/test_errors.py:51:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Headers({}), key = 'content-type'
def __getitem__(self, key: str) -> str:
"""
Return a single header value.
If there are multiple headers with the same key, then we concatenate
them with commas. See: https://tools.ietf.org/html/rfc7230#section-3.2.2
"""
normalized_key = key.lower().encode(self.encoding)
items = [
header_value.decode(self.encoding)
for _, header_key, header_value in self._list
if header_key == normalized_key
]
if items:
return ", ".join(items)
> raise KeyError(key)
E KeyError: 'content-type'
/usr/lib/python3/dist-packages/httpx/_models.py:228: KeyError
___________________ test_https_redirect_middleware[asyncio] ____________________
cls = <class '_pytest.runner.CallInfo'>
func = <function call_and_report.<locals>.<lambda> at 0xffffa1607600>
when = 'call'
reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>)
@classmethod
def from_call(
cls,
func: Callable[[], TResult],
when: Literal["collect", "setup", "call", "teardown"],
reraise: type[BaseException] | tuple[type[BaseException], ...] | None =
None,
) -> CallInfo[TResult]:
"""Call func, wrapping the result in a CallInfo.
:param func:
The function to call. Called without arguments.
:type func: Callable[[], _pytest.runner.TResult]
:param when:
The phase in which the function is called.
:param reraise:
Exception or exceptions that shall propagate if raised by the
function, instead of being wrapped in the CallInfo.
"""
excinfo = None
start = timing.time()
precise_start = timing.perf_counter()
try:
> result: TResult | None = func()
/usr/lib/python3/dist-packages/_pytest/runner.py:341:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3/dist-packages/_pytest/runner.py:242: in <lambda>
lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
/usr/lib/python3/dist-packages/pluggy/_hooks.py:513: in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs,
firstresult)
/usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
/usr/lib/python3/dist-packages/_pytest/threadexception.py:92: in
pytest_runtest_call
yield from thread_exception_runtest_hook()
/usr/lib/python3/dist-packages/_pytest/threadexception.py:68: in
thread_exception_runtest_hook
yield
/usr/lib/python3/dist-packages/_pytest/unraisableexception.py:95: in
pytest_runtest_call
yield from unraisable_exception_runtest_hook()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
def unraisable_exception_runtest_hook() -> Generator[None]:
with catch_unraisable_exception() as cm:
try:
yield
finally:
if cm.unraisable:
if cm.unraisable.err_msg is not None:
err_msg = cm.unraisable.err_msg
else:
err_msg = "Exception ignored in"
msg = f"{err_msg}: {cm.unraisable.object!r}\n\n"
msg += "".join(
traceback.format_exception(
cm.unraisable.exc_type,
cm.unraisable.exc_value,
cm.unraisable.exc_traceback,
)
)
> warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))
E pytest.PytestUnraisableExceptionWarning: Exception ignored
in: <gzip on 0xffffa16cc190>
E
E Traceback (most recent call last):
E File "/usr/lib/python3.13/gzip.py", line 359, in close
E fileobj.write(self.compress.flush())
E ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
E ValueError: I/O operation on closed file.
/usr/lib/python3/dist-packages/_pytest/unraisableexception.py:85:
PytestUnraisableExceptionWarning
=================== 2 failed, 442 passed, 1 xfailed in 5.72s ===================
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_starlette/build; python3.13 -m pytest
tests
I: pybuild base:311: cd
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_starlette/build; python3.12 -m pytest
tests
============================= test session starts ==============================
platform linux -- Python 3.12.6, pytest-8.3.3, pluggy-1.5.0
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_starlette/build
configfile: pyproject.toml
plugins: typeguard-4.3.0, anyio-4.4.0
collected 445 items
tests/middleware/test_base.py .....x.................. [ 5%]
tests/middleware/test_cors.py ............... [ 8%]
tests/middleware/test_errors.py ...... [ 10%]
tests/middleware/test_gzip.py ..... [ 11%]
tests/middleware/test_https_redirect.py . [ 11%]
tests/middleware/test_middleware.py .. [ 11%]
tests/middleware/test_session.py ....... [ 13%]
tests/middleware/test_trusted_host.py ... [ 14%]
tests/middleware/test_wsgi.py ...... [ 15%]
tests/test__utils.py ...... [ 16%]
tests/test_applications.py .......................... [ 22%]
tests/test_authentication.py ...... [ 24%]
tests/test_background.py .... [ 24%]
tests/test_concurrency.py ... [ 25%]
tests/test_config.py ..... [ 26%]
tests/test_convertors.py ... [ 27%]
tests/test_datastructures.py ........................ [ 32%]
tests/test_endpoints.py .......... [ 35%]
tests/test_exceptions.py ............. [ 37%]
tests/test_formparsers.py ................................... [ 45%]
tests/test_requests.py .......................................... [ 55%]
tests/test_responses.py .................................... [ 63%]
tests/test_routing.py .................................................. [ 74%]
...... [ 75%]
tests/test_schemas.py .. [ 76%]
tests/test_staticfiles.py ............................. [ 82%]
tests/test_status.py .. [ 83%]
tests/test_templates.py ............... [ 86%]
tests/test_testclient.py ..................... [ 91%]
tests/test_websockets.py ...................................... [100%]
======================== 444 passed, 1 xfailed in 5.53s ========================
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13
3.12" returned exit code 13
make: *** [debian/rules:5: build] Error 25
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
--------------------------------------------------------------------------------
Build finished at 2024-09-19T13:45:33Z
If required, the full build log is available here (for the next 30 days):
https://debusine.debian.net/artifact/794363/
This bug has been filed at "normal" severity, as we haven't started the
transition to add 3.13 as a supported version, yet. This will be raised to RC
as soon as that happens, hopefully well before trixie.
Thanks,
Stefano
--- End Message ---
--- Begin Message ---
Source: starlette
Source-Version: 0.39.1-1
Done: Piotr Ożarowski <[email protected]>
We believe that the bug you reported is fixed in the latest version of
starlette, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Piotr Ożarowski <[email protected]> (supplier of updated starlette package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Format: 1.8
Date: Fri, 27 Sep 2024 15:35:22 +0200
Source: starlette
Architecture: source
Version: 0.39.1-1
Distribution: unstable
Urgency: medium
Maintainer: Piotr Ożarowski <[email protected]>
Changed-By: Piotr Ożarowski <[email protected]>
Closes: 1082318
Changes:
starlette (0.39.1-1) unstable; urgency=medium
.
* New upstream release
- builds with Python 3.13 (closes: 1082318)
Checksums-Sha1:
e57ae06068518affbda214d9908ecdcf06dbd152 2424 starlette_0.39.1-1.dsc
3ae9ab66a596f48d26c102e02cffa1f747337541 2572706 starlette_0.39.1.orig.tar.gz
bcf66057b33102457fd25190b783a73a28ce0fcc 3608 starlette_0.39.1-1.debian.tar.xz
91ace335d519a0b9cec146ae9a01afcbd0ad340d 8374
starlette_0.39.1-1_amd64.buildinfo
Checksums-Sha256:
dfbca864412887d00e9ddd35eb9331b29429f67a4e189818fa010488c0d358da 2424
starlette_0.39.1-1.dsc
33c5a94f64d3ab2c799b2715b45f254a3752f229d334f1562a3aaf78c23eab95 2572706
starlette_0.39.1.orig.tar.gz
dd20ee840bed5902c37eb39ced217e64debe2423e3314bede752c60a446914e6 3608
starlette_0.39.1-1.debian.tar.xz
e2a12953e9e7f3ba1afac9994404ac017218ea7bc34f841e5e291b5021658dce 8374
starlette_0.39.1-1_amd64.buildinfo
Files:
4f704dda992daae5bca6cdff5b7d14b0 2424 python optional starlette_0.39.1-1.dsc
1f4033bf04d91fbc98cc3914b661e489 2572706 python optional
starlette_0.39.1.orig.tar.gz
dcf1fa2acbd8d0d6d3b647bc31b1ff75 3608 python optional
starlette_0.39.1-1.debian.tar.xz
40ee75a1306029aad9c1424aa85352d5 8374 python optional
starlette_0.39.1-1_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEEHS+omFjar2IXhi33rvbxoqdFdkUFAmb2tUUACgkQrvbxoqdF
dkX/YRAAw1P9AMpZ85bNC+4yzuV9bRr9qmXIX66yZGS+Z0irpho0CDKgg+EQjDRe
ssM7kXvL+M3o3ll6RwUgUhs9UjGBAO1fEU8ZqFT2ELUr37bl/UA6FhL9rYVOFL5O
CBMCFY3oFzTwNQ/4bLvQrhMqJn95qyfgn0lawbLXWRKvYV6b+J/xQ8kghtt/l04j
1sFshlo9/2vMbMhY8+dXyWJPZp15crkK98+qwiwxPW4LyH/yMvKLBRs5G8vIVuYu
bTDP+37+8+DUOygzQqSM22DHzFQA3T2GNbRUGAP7UWblZc/o7BPIvuscaI0Di1YF
0IC/GGqRLysdKzYOFbwOGpDaO/1E9Qt436GDeP52y8mqAGrFnFD9IIf46sYnOe0p
xqZA7jVe87bqLF7SQOZHIz2+qYcQKXJwkpXpYHU1Y/JIGff43qaD/2W6BX83g4Dw
3xhcTLp7663B5hLjWQI/O8kPVs2jlICODD3Y2K89ooaggc1d1RI3tQCk+77H5Gtx
mgespS3eDpe/mG+NE00dLOcjT8UxNG5HfVsZKFT7k1uNdIN5/l7rZPXMv3f+dtDu
mj+6GTvGiQ+Vpl9qz/fHIhNE/DGehcAoJsaUhAlZsvHOe2BcbwqLbwIsaI7YbYmw
nXtfwVIOkd7Afwusp0XN4YLWrqdeJBOsv9pXZCXHHP6413CmdJ4=
=E+Vy
-----END PGP SIGNATURE-----
pgppiBzkBUMTc.pgp
Description: PGP signature
--- End Message ---