Skip to content

Commit 766955b

Browse files
committed
chore: upgrade to Python 3.14
- Update requires-python from >=3.11 to >=3.12 across all packages - Update ruff target-version to py312 - Update CI pytest matrix to test 3.12, 3.13, 3.14 - Add Python 3.14 build dependencies for Pillow and scipy - Remove duplicate pytest-asyncio in jumpstarter-driver-http - Add missing Apache-2.0 license to jumpstarter-driver-iscsi - Update uv.lock with Python 3.14 compatible dependencies
1 parent b38ff9a commit 766955b

66 files changed

Lines changed: 201 additions & 2335 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/python-tests.yaml

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
echo 'python-versions=["3.12"]' >> "$GITHUB_OUTPUT"
4949
echo 'runners=["ubuntu-24.04"]' >> "$GITHUB_OUTPUT"
5050
else
51-
echo 'python-versions=["3.11", "3.12", "3.13"]' >> "$GITHUB_OUTPUT"
51+
echo 'python-versions=["3.12", "3.13", "3.14"]' >> "$GITHUB_OUTPUT"
5252
echo 'runners=["ubuntu-24.04", "macos-15"]' >> "$GITHUB_OUTPUT"
5353
fi
5454
@@ -108,6 +108,17 @@ jobs:
108108
sudo apt-get update
109109
sudo apt-get install -y libgpiod-dev liblgpio-dev
110110
111+
- name: Install Python package build dependencies (Linux, Python 3.14)
112+
if: runner.os == 'Linux' && matrix.python-version == '3.14'
113+
run: |
114+
sudo apt-get update
115+
# Pillow dependencies
116+
sudo apt-get install -y libjpeg-dev zlib1g-dev libtiff-dev libfreetype6-dev liblcms2-dev libwebp-dev libopenjp2-7-dev
117+
# scipy dependencies
118+
sudo apt-get install -y g++ gfortran libopenblas-dev liblapack-dev pkg-config
119+
# cffi dependencies
120+
sudo apt-get install -y libffi-dev
121+
111122
- name: Install nftables and dnsmasq (Linux)
112123
if: runner.os == 'Linux'
113124
run: |
@@ -132,6 +143,17 @@ jobs:
132143
run: |
133144
brew install qemu
134145
146+
- name: Install Python package build dependencies (macOS, Python 3.14)
147+
if: runner.os == 'macOS' && matrix.python-version == '3.14'
148+
run: |
149+
# Pillow dependencies
150+
brew install libjpeg libtiff little-cms2 webp
151+
# scipy dependencies
152+
brew install gcc openblas
153+
# Link gfortran so scipy's meson build can find it
154+
# Homebrew's gcc provides gfortran-14, create a gfortran symlink
155+
ln -sf "$(brew --prefix gcc)/bin/gfortran-$(brew list --versions gcc | sed 's/gcc //' | cut -d. -f1)" /usr/local/bin/gfortran
156+
135157
# Homebrew Renode is slow (~5+ minutes per job). Install on macOS only when this run
136158
# touches the Renode driver, or on workflow_dispatch (full manual run). Linux still
137159
# installs Renode from the .deb in all jobs (fast).

python/__templates__/driver/pyproject.toml.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ license = "Apache-2.0"
77
authors = [
88
{ name = "${AUTHOR_NAME}", email = "${AUTHOR_EMAIL}" }
99
]
10-
requires-python = ">=3.11"
10+
requires-python = ">=3.12"
1111
dependencies = [
1212
"anyio>=4.10.0",
1313
"jumpstarter",

python/examples/android-emulator/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ version = "0.1.0"
44
description = "Android emulator testing example using Jumpstarter ADB tunneling"
55
authors = [{ name = "Kirk Brauer", email = "kbrauer@hatci.com" }]
66
license = "Apache-2.0"
7-
requires-python = ">=3.11"
7+
requires-python = ">=3.12"
88
dependencies = [
99
"pytest>=8.3.2",
1010
"jumpstarter",

python/examples/automotive/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ authors = [
1010
]
1111
readme = "README.md"
1212
license = "Apache-2.0"
13-
requires-python = ">=3.11"
13+
requires-python = ">=3.12"
1414
dependencies = [
1515
"pytest>=8.3.2",
1616
"jumpstarter",

python/examples/soc-pytest/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ authors = [
99
]
1010
readme = "README.md"
1111
license = "Apache-2.0"
12-
requires-python = ">=3.11"
12+
requires-python = ">=3.12"
1313
dependencies = [
1414
"pytest>=8.3.2",
1515
"jumpstarter",

python/examples/xcp-ecu/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ authors = [
1010
]
1111
readme = "README.md"
1212
license = "Apache-2.0"
13-
requires-python = ">=3.11"
13+
requires-python = ">=3.12"
1414
dependencies = [
1515
"pytest>=8.3.2",
1616
"jumpstarter",

python/packages/hatch-pin-jumpstarter/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ readme = "README.md"
66
authors = [
77
{ name = "Nick Cao", email = "nickcao@nichi.co" }
88
]
9-
requires-python = ">=3.11"
9+
requires-python = ">=3.12"
1010
dependencies = [
1111
"hatchling>=1.27.0",
1212
"packaging>=24.2",

python/packages/jumpstarter-all/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ description = "Jumpstarter meta-package which will install all packages"
55
authors = [{ name = "Miguel Angel Ajo", email = "majopela@redhat.com" }]
66
readme = "README.md"
77
license = "Apache-2.0"
8-
requires-python = ">=3.11"
8+
requires-python = ">=3.12"
99
dependencies = [
1010
"jumpstarter",
1111
"jumpstarter-cli",

python/packages/jumpstarter-cli-admin/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ description = ""
55
authors = [{ name = "Kirk Brauer", email = "kbrauer@hatci.com" }]
66
readme = "README.md"
77
license = "Apache-2.0"
8-
requires-python = ">=3.11"
8+
requires-python = ">=3.12"
99
dependencies = [
1010
"grpcio-reflection>=1.60.0",
1111
"jumpstarter-cli-common",

python/packages/jumpstarter-cli-common/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ description = ""
55
authors = [{ name = "Kirk Brauer", email = "kbrauer@hatci.com" }]
66
readme = "README.md"
77
license = "Apache-2.0"
8-
requires-python = ">=3.11"
8+
requires-python = ">=3.12"
99
dependencies = [
1010
"jumpstarter",
1111
"pydantic>=2.8.2",

0 commit comments

Comments
 (0)