After an upgrade (from port compilation) my vdirsyncer stopped working for caldav and carddav (server is a nextcloud). Todays upgrades (only python related ones): Nov 22 08:16:55 ice pkg[75248]: py311-blinker upgraded: 1.8.2 -> 1.9.0 Nov 22 08:16:56 ice pkg[75248]: py311-boto3 upgraded: 1.35.54 -> 1.35.63 Nov 22 08:16:56 ice pkg[75248]: py311-aiohttp upgraded: 3.10.10 -> 3.11.7 Nov 22 08:16:57 ice pkg[75248]: py311-charset-normalizer upgraded: 3.3.2_1 -> 3.4.0 Error messages (from vdirsyncer -vdebug discover) warning: Failed to discover collections for contacts_serveur, use `-vdebug` to see the full traceback. debug: ==================== debug: PROPFIND https://vapeur.rail.eu.org/ debug: {'User-Agent': 'vdirsyncer/0.19.3', 'Content-Type': 'application/xml; charset=UTF-8', 'Depth': '1'} debug: b'\n <propfind xmlns="DAV:">\n <prop>\n <resourcetype />\n </prop>\n </propfind>\n ' debug: Sending request... error: Unknown error occurred: 'URL' object has no attribute 'host_port_subcomponent' error: Use `-vdebug` to see the full traceback. debug: File "/usr/local/lib/python3.11/site-packages/vdirsyncer/cli/__init__.py", line 37, in inner debug: f(*a, **kw) debug: File "/usr/local/lib/python3.11/site-packages/vdirsyncer/cli/__init__.py", line 223, in discover debug: asyncio.run(main()) debug: File "/usr/local/lib/python3.11/asyncio/runners.py", line 190, in run debug: return runner.run(main) debug: ^^^^^^^^^^^^^^^^ debug: File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run debug: return self._loop.run_until_complete(task) debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/local/lib/python3.11/asyncio/base_events.py", line 654, in run_until_complete debug: return future.result() debug: ^^^^^^^^^^^^^^^ debug: File "/usr/local/lib/python3.11/site-packages/vdirsyncer/cli/__init__.py", line 215, in main debug: await discover_collections( debug: File "/usr/local/lib/python3.11/site-packages/vdirsyncer/cli/tasks.py", line 94, in discover_collections debug: rv = await collections_for_pair(pair=pair, **kwargs) debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/local/lib/python3.11/site-packages/vdirsyncer/cli/discover.py", line 99, in collections_for_pair debug: rv = await aiostream.stream.list( debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/local/lib/python3.11/site-packages/aiostream/core.py", line 60, in wait_stream debug: async for item in streamer: debug: File "/usr/local/lib/python3.11/site-packages/aiostream/stream/aggregate.py", line 89, in list debug: async for item in streamer: debug: File "/usr/local/lib/python3.11/site-packages/vdirsyncer/cli/discover.py", line 234, in expand_collections debug: b_args = await _collection_from_discovered( debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/local/lib/python3.11/site-packages/vdirsyncer/cli/discover.py", line 253, in _collection_from_discovered debug: return (await get_discovered())[collection] debug: ^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/local/lib/python3.11/site-packages/vdirsyncer/cli/discover.py", line 178, in get_self debug: self._discovered = await self._discover() debug: ^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/local/lib/python3.11/site-packages/vdirsyncer/cli/discover.py", line 187, in _discover debug: return handle_storage_init_error(self._cls, self._config) debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/local/lib/python3.11/site-packages/vdirsyncer/cli/discover.py", line 183, in _discover debug: discovered = await aiostream.stream.list(self._cls.discover(**self._config)) debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/local/lib/python3.11/site-packages/aiostream/core.py", line 60, in wait_stream debug: async for item in streamer: debug: File "/usr/local/lib/python3.11/site-packages/aiostream/stream/aggregate.py", line 89, in list debug: async for item in streamer: debug: File "/usr/local/lib/python3.11/site-packages/vdirsyncer/storage/dav.py", line 485, in discover debug: async for collection in d.discover(): debug: File "/usr/local/lib/python3.11/site-packages/vdirsyncer/storage/dav.py", line 271, in discover debug: for c in await self.find_collections(): debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/local/lib/python3.11/site-packages/vdirsyncer/storage/dav.py", line 223, in find_collections debug: rv = await aiostream.stream.list(self._find_collections_impl("")) debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/local/lib/python3.11/site-packages/aiostream/core.py", line 60, in wait_stream debug: async for item in streamer: debug: File "/usr/local/lib/python3.11/site-packages/aiostream/stream/aggregate.py", line 89, in list debug: async for item in streamer: debug: File "/usr/local/lib/python3.11/site-packages/vdirsyncer/storage/dav.py", line 253, in _find_collections_impl debug: r = await self.session.request( debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/local/lib/python3.11/site-packages/vdirsyncer/storage/dav.py", line 413, in request debug: return await http.request(method, url, session=session, **more) debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/local/lib/python3.11/site-packages/vdirsyncer/http.py", line 184, in request debug: response = await session.request(method, url, headers=headers, **kwargs) debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 673, in _request debug: req = self._request_class( debug: ^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 345, in __init__ debug: self.update_headers(headers) debug: File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 450, in update_headers debug: host = self.url.host_port_subcomponent debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Maybe py311-aiohttp 3.11 is the culprit ?
it is broken since aiohttp 3.11.0 the changelog states it clearly: "Increased minimum yarl version to 1.17.0" https://docs.aiohttp.org/en/stable/changes.html While in ports we have 1.12.0...
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=8f99f061e3371380bf0a3a9712c9415853d481ce commit 8f99f061e3371380bf0a3a9712c9415853d481ce Author: Baptiste Daroussin <bapt@FreeBSD.org> AuthorDate: 2024-11-22 09:53:32 +0000 Commit: Baptiste Daroussin <bapt@FreeBSD.org> CommitDate: 2024-11-22 09:55:00 +0000 www/py-yarl: update to 1.18.0 This upgrade is necessary to be done ASAP to fix py-asiohttp which requires yarl > 1.17.0 since 3.11 Version 1.16.0 introduce a backward incompatibility, I have checked the various consumers in the ports tree, and they seems not to be affected. PR: 282913 www/py-yarl/Makefile | 5 +++-- www/py-yarl/distinfo | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-)
the reporter confirmed the issue is now fixed with the right yarl.
I was not updating it as it because it required propcache which was not ported yet. > install_requires = > idna >= 2.0 > multidict >= 4.0 > propcache >= 0.2.0 How come it was updated without adding this dependency? Also, why move cython from uses to depends?
Tests now fail, please rollback or add the required dependency.
In fact, this has broken all yarl consumers, including by production. % python3 -c 'import yarl' Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/local/lib/python3.11/site-packages/yarl/__init__.py", line 2, in <module> from ._url import URL, cache_clear, cache_configure, cache_info File "/usr/local/lib/python3.11/site-packages/yarl/_url.py", line 13, in <module> from propcache.api import under_cached_property as cached_property ModuleNotFoundError: No module named 'propcache'
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=24a5ef4898712940caef660979b3f7a359667a6d commit 24a5ef4898712940caef660979b3f7a359667a6d Author: Dmitry Marakasov <amdmi3@FreeBSD.org> AuthorDate: 2024-11-25 16:07:19 +0000 Commit: Dmitry Marakasov <amdmi3@FreeBSD.org> CommitDate: 2024-11-25 16:11:20 +0000 www/py-yarl: Add missing dependencies The update to 1.18.0 was not properly tested, missed runtime dependencies and was broken: ``` % python3 -c 'import yarl' Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/local/lib/python3.11/site-packages/yarl/__init__.py", line 2, in <module> from ._url import URL, cache_clear, cache_configure, cache_info File "/usr/local/lib/python3.11/site-packages/yarl/_url.py", line 13, in <module> from propcache.api import under_cached_property as cached_property ModuleNotFoundError: No module named 'propcache' ``` Add missing RUN_DEPEND on a recently added py-propcache, and add missing test dependencies as well. PR: 282913 Pointyhat to: bapt www/py-yarl/Makefile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)