DiamondLightSource / DiamondLightSource/fastcs-ximc

Python 3.14+ not yet supported

Open
#7 0 comments 0 reactions 0 assignees View on GitHub
bug
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.