Repository navigation
Commit bedbdd2
committed
fix(toolchain): pin Python floor to 3.14.6 for the frozen+slots dataclass regression (#303)
CPython 3.14.0-3.14.5 ship a regression (python/cpython#135228 + the related
frozen-dataclass __setattr__ fix) where `@dataclass(frozen=True, slots=True)`'s
generated __setattr__ closes over the pre-slots class, so an unknown-attribute
assignment raises a spurious `TypeError: super(type, obj)` instead of
FrozenInstanceError/AttributeError. AlfredOS has 36+ frozen+slots dataclasses
(incl. trust-boundary types); the symptom surfaced locally because .python-version
floated to a stale 3.14.4 while CI's `uv python install 3.14` already pulls 3.14.6.
Pin the regression-free floor consistently:
- requires-python >=3.14.6 (with explanatory comment)
- .python-version 3.14.6
- docker/alfred-core.Dockerfile ARG ALFRED_PYTHON_VERSION 3.14.0 -> 3.14.6 (the
in-container interpreter must satisfy the new floor; the build's `uv pip install .`
otherwise fails "3.14.0 does not satisfy Python>=3.14.6")
- refreshed uv.lock
Verified: under 3.14.6 the repro raises FrozenInstanceError and the two
previously-failing memory tests pass.
MrReasonable <4990954+MrReasonable@users.noreply.github.com>1 parent b275614 commit bedbdd2
4 files changed
Lines changed: 10 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
60 | | - | |
| 60 | + | |
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
7 | 13 | | |
8 | 14 | | |
9 | 15 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments