DiamondLightSource / DiamondLightSource/fastcs-ximc
Python 3.14+ not yet supported
- Dominant language
- Python
- Stars
- 0
- Forks
- 0
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 6
Description
Our dependency stack hasn't caught up with the deprecations Python 3.14 enables. Since pytest runs with filterwarnings = ["error"], these surface as exceptions during import of tests/conftest.py, so the suite fails to collect (exit code 4).
Two confirmed so far:
libximc — defines ctypes structs with _pack_ but no _layout_. On non-Windows platforms this implicitly selects MSVC-compatible memory layout, deprecated in 3.14 and removed in 3.19. Fix is to set _layout_ = "ms" explicitly upstream, though it's worth confirming that layout is actually correct for the Linux .so.
fastcs — uses asyncio.iscoroutinefunction, removed in 3.16
3.14 is excluded from CI for now
Refs: [What's New in 3.14 — Deprecated](https://docs.python.org/3/whatsnew/3.14.html#deprecated) · [Pending removal in 3.16](https://docs.python.org/3/deprecations/pending-removal-in-3.16.html) · [Pending removal in 3.19](https://docs.python.org/3/deprecations/pending-removal-in-3.19.html)
Contributor guide
Research direction
Start by reproducing the collection failure under Python 3.14, using the pytest configuration and tests/conftest.py as the entry points. Investigate the confirmed libximc and fastcs deprecations, including whether the libximc layout matches the Linux .so. Done means the suite collects and runs successfully with Python 3.14, with the compatibility fixes covered by the existing tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100