Skip to content

Upgrade Python to 3.14 - #205

Merged
ccrisan merged 2 commits into
mainfrom
chore/upgrade-python
May 8, 2026
Merged

Upgrade Python to 3.14#205
ccrisan merged 2 commits into
mainfrom
chore/upgrade-python

Conversation

@ccrisan

@ccrisan ccrisan commented May 7, 2026

Copy link
Copy Markdown
Contributor

No description provided.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR upgrades the project’s baseline runtime/tooling to Python 3.14 and adjusts the dependency lockfile and codebase to match that new minimum version.

Changes:

  • Bump minimum Python version to >=3.14 and update CI + Docker base images accordingly.
  • Regenerate/update uv.lock for the new Python requirement (including marker/dependency pruning).
  • Remove from __future__ import annotations across modules and apply a few small typing/asyncio cleanups.

Reviewed changes

Copilot reviewed 24 out of 25 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
uv.lock Updates lock metadata and resolved dependencies for Python >=3.14 (including marker simplification/pruning).
pyproject.toml Raises requires-python to >=3.14.
docker/Dockerfile Switches Docker stages to Python 3.14 base images.
.github/workflows/main.yml Runs tests/build on Python 3.14 in GitHub Actions.
tests/unit/qtoggleserver/core/test_sessions.py Adjusts type annotations to non-string forward refs.
qtoggleserver/utils/asyncio.py Updates typing imports to collections.abc for Awaitable/Coroutine.
qtoggleserver/lib/polled.py Uses built-in TimeoutError for asyncio.wait_for timeout handling.
qtoggleserver/system/fwupdate.py Removes from __future__ import annotations.
qtoggleserver/system/dhcp.py Removes from __future__ import annotations.
qtoggleserver/slaves/discover/apclients.py Removes from __future__ import annotations.
qtoggleserver/slaves/devices.py Removes from __future__ import annotations.
qtoggleserver/slaves/api/funcs/devices.py Removes from __future__ import annotations.
qtoggleserver/peripherals/peripheralport.py Removes from __future__ import annotations.
qtoggleserver/peripherals/peripheral.py Removes from __future__ import annotations.
qtoggleserver/lib/ble.py Removes from __future__ import annotations.
qtoggleserver/core/webhooks.py Removes from __future__ import annotations.
qtoggleserver/core/sessions.py Removes from __future__ import annotations.
qtoggleserver/core/reverse.py Removes from __future__ import annotations.
qtoggleserver/core/ports.py Removes from __future__ import annotations.
qtoggleserver/core/history.py Removes from __future__ import annotations.
qtoggleserver/core/expressions/ports.py Removes from __future__ import annotations.
qtoggleserver/core/expressions/base.py Removes from __future__ import annotations.
qtoggleserver/core/expressions/__init__.py Removes from __future__ import annotations.
qtoggleserver/core/events/base.py Removes from __future__ import annotations.
qtoggleserver/core/api/__init__.py Removes from __future__ import annotations.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread pyproject.toml
Comment on lines 6 to 10
{name = "Calin Crisan", email = "ccrisan@gmail.com"},
]
requires-python = ">=3.11"
requires-python = ">=3.14"
readme = "README.md"
license = {text = "Apache 2.0"}
Comment thread docker/Dockerfile
Comment on lines 9 to 11
# Always use BUILDPLATFORM for frontend-builder image, since it doesn't contain platform-specific binaries
FROM --platform=${BUILDPLATFORM:-linux/amd64} python:3.11.14-slim-bookworm AS frontend-builder
FROM --platform=${BUILDPLATFORM:-linux/amd64} python:3.14-slim-bookworm AS frontend-builder

@ccrisan
ccrisan merged commit c9d41d6 into main May 8, 2026
18 checks passed
@ccrisan
ccrisan deleted the chore/upgrade-python branch May 8, 2026 12:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants