Skip to content

Commit b5ea885

Browse files
authored
Add support for Python 3.14 and use latest libjpeg release (#87)
1 parent 0ed4657 commit b5ea885

6 files changed

Lines changed: 50 additions & 43 deletions

File tree

.github/workflows/pytest-builds.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
strategy:
1313
fail-fast: false
1414
matrix:
15-
python-version: ['3.10', '3.11', '3.12', '3.13']
15+
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
1616
arch: ['x64', 'x86']
1717

1818
steps:
@@ -50,7 +50,7 @@ jobs:
5050
strategy:
5151
fail-fast: false
5252
matrix:
53-
python-version: ['3.10', '3.11', '3.12', '3.13']
53+
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
5454

5555
steps:
5656
- uses: actions/checkout@v6
@@ -86,7 +86,7 @@ jobs:
8686
strategy:
8787
fail-fast: false
8888
matrix:
89-
python-version: ['3.10', '3.11', '3.12', '3.13']
89+
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
9090

9191
steps:
9292
- uses: actions/checkout@v6
@@ -117,7 +117,7 @@ jobs:
117117
pytest --cov=libjpeg --cov-append libjpeg/tests
118118
119119
- name: Switch to pydicom dev and rerun pytest
120-
if: ${{ contains('3.10 3.11 3.12 3.13', matrix.python-version) }}
120+
if: ${{ contains('3.10 3.11 3.12 3.13 3.14', matrix.python-version) }}
121121
run: |
122122
pip uninstall -y pydicom
123123
pip install git+https://github.com/pydicom/pydicom

.github/workflows/release-wheels.yml

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
- uses: actions/setup-python@v6
2121
name: Install Python
2222
with:
23-
python-version: '3.10'
23+
python-version: '3.11'
2424

2525
- name: Build sdist
2626
run: |
@@ -29,7 +29,7 @@ jobs:
2929
poetry build -f sdist
3030
3131
- name: Store artifacts
32-
uses: actions/upload-artifact@v6
32+
uses: actions/upload-artifact@v7
3333
with:
3434
name: sdist
3535
path: ./dist
@@ -42,9 +42,6 @@ jobs:
4242
matrix:
4343
include:
4444
# Windows 32 bit
45-
- os: windows-latest
46-
python: 39
47-
platform_id: win32
4845
- os: windows-latest
4946
python: 310
5047
platform_id: win32
@@ -57,11 +54,11 @@ jobs:
5754
- os: windows-latest
5855
python: 313
5956
platform_id: win32
57+
- os: windows-latest
58+
python: 314
59+
platform_id: win32
6060

6161
# Windows 64 bit
62-
- os: windows-latest
63-
python: 39
64-
platform_id: win_amd64
6562
- os: windows-latest
6663
python: 310
6764
platform_id: win_amd64
@@ -74,12 +71,11 @@ jobs:
7471
- os: windows-latest
7572
python: 313
7673
platform_id: win_amd64
74+
- os: windows-latest
75+
python: 314
76+
platform_id: win_amd64
7777

7878
# Linux 64 bit manylinux2014
79-
- os: ubuntu-latest
80-
python: 39
81-
platform_id: manylinux_x86_64
82-
manylinux_image: manylinux2014
8379
- os: ubuntu-latest
8480
python: 310
8581
platform_id: manylinux_x86_64
@@ -96,11 +92,12 @@ jobs:
9692
python: 313
9793
platform_id: manylinux_x86_64
9894
manylinux_image: manylinux2014
95+
- os: ubuntu-latest
96+
python: 314
97+
platform_id: manylinux_x86_64
98+
manylinux_image: manylinux2014
9999

100100
# Linux aarch64
101-
- os: ubuntu-latest
102-
python: 39
103-
platform_id: manylinux_aarch64
104101
- os: ubuntu-latest
105102
python: 310
106103
platform_id: manylinux_aarch64
@@ -113,23 +110,26 @@ jobs:
113110
- os: ubuntu-latest
114111
python: 313
115112
platform_id: manylinux_aarch64
113+
- os: ubuntu-latest
114+
python: 314
115+
platform_id: manylinux_aarch64
116116

117117
# MacOS x86_64
118-
- os: macos-12
119-
python: 39
120-
platform_id: macosx_x86_64
121-
- os: macos-12
118+
- os: macos-26-intel
122119
python: 310
123120
platform_id: macosx_x86_64
124-
- os: macos-12
121+
- os: macos-26-intel
125122
python: 311
126123
platform_id: macosx_x86_64
127-
- os: macos-12
124+
- os: macos-26-intel
128125
python: 312
129126
platform_id: macosx_x86_64
130-
- os: macos-12
127+
- os: macos-26-intel
131128
python: 313
132129
platform_id: macosx_x86_64
130+
- os: macos-26-intel
131+
python: 314
132+
platform_id: macosx_x86_64
133133

134134
steps:
135135
- uses: actions/checkout@v6
@@ -145,12 +145,12 @@ jobs:
145145
- uses: actions/setup-python@v6
146146
name: Install Python
147147
with:
148-
python-version: '3.9'
148+
python-version: '3.11'
149149

150150
- name: Install cibuildwheel
151151
run: |
152152
python -m pip install -U pip
153-
python -m pip install cibuildwheel>=2.21
153+
python -m pip install cibuildwheel>=3.4
154154
155155
- name: Build wheels
156156
env:
@@ -165,7 +165,7 @@ jobs:
165165
python -m cibuildwheel --output-dir dist
166166
167167
- name: Store artifacts
168-
uses: actions/upload-artifact@v6
168+
uses: actions/upload-artifact@v7
169169
with:
170170
name: wheel-${{ matrix.python }}-${{ matrix.platform_id }}
171171
path: ./dist
@@ -178,9 +178,6 @@ jobs:
178178
matrix:
179179
include:
180180
# MacOS arm64
181-
- os: macos-14
182-
python: 39
183-
platform_id: macosx_arm64
184181
- os: macos-14
185182
python: 310
186183
platform_id: macosx_arm64
@@ -193,6 +190,9 @@ jobs:
193190
- os: macos-14
194191
python: 313
195192
platform_id: macosx_arm64
193+
- os: macos-14
194+
python: 314
195+
platform_id: macosx_arm64
196196

197197
steps:
198198
- uses: actions/checkout@v6
@@ -202,10 +202,10 @@ jobs:
202202
- uses: actions/setup-python@v6
203203
name: Install Python
204204
with:
205-
python-version: '3.9'
205+
python-version: '3.11'
206206

207207
- name: Install cibuildwheel
208-
run: python -m pip install cibuildwheel>=2.21 wheel>=0.42
208+
run: python -m pip install cibuildwheel>=3.4 wheel>=0.42
209209

210210
- name: Build wheels
211211
env:
@@ -216,7 +216,7 @@ jobs:
216216
python -m cibuildwheel --output-dir dist
217217
218218
- name: Store artifacts
219-
uses: actions/upload-artifact@v6
219+
uses: actions/upload-artifact@v7
220220
with:
221221
name: wheel-${{ matrix.python }}-${{ matrix.platform_id }}
222222
path: ./dist/*.whl
@@ -239,7 +239,7 @@ jobs:
239239
# python-version: ${{ matrix.python-version }}
240240
#
241241
# - name: Download the wheels
242-
# uses: actions/download-artifact@v7
242+
# uses: actions/download-artifact@v8
243243
# with:
244244
# path: dist/
245245
# merge-multiple: true
@@ -287,7 +287,7 @@ jobs:
287287

288288
steps:
289289
- name: Download the wheels
290-
uses: actions/download-artifact@v7
290+
uses: actions/download-artifact@v8
291291
with:
292292
path: dist/
293293
merge-multiple: true
File renamed without changes.

docs/changes/v2.4.0.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
.. _v2.4.0:
2+
3+
2.4.0
4+
=====
5+
6+
* Added support for Python 3.14 and dropped 3.9
7+
* Updated to v1.71 of libjpeg

pyproject.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ requires = [
88
build-backend = "poetry.core.masonry.api"
99

1010
[tool.poetry.build]
11-
script = "build.py"
11+
script = "build_libjpeg.py"
1212
generate-setup-file = true
1313

1414

@@ -22,11 +22,11 @@ classifiers=[
2222
"Development Status :: 5 - Production/Stable",
2323
"Natural Language :: English",
2424
"Programming Language :: C++",
25-
"Programming Language :: Python :: 3.9",
2625
"Programming Language :: Python :: 3.10",
2726
"Programming Language :: Python :: 3.11",
2827
"Programming Language :: Python :: 3.12",
2928
"Programming Language :: Python :: 3.13",
29+
"Programming Language :: Python :: 3.14",
3030
"Operating System :: MacOS :: MacOS X",
3131
"Operating System :: POSIX :: Linux",
3232
"Operating System :: Microsoft :: Windows",
@@ -56,10 +56,10 @@ packages = [
5656
{ include = "libjpeg" },
5757
]
5858
readme = "README.md"
59-
version = "2.3.0"
59+
version = "2.4.0"
6060

6161
[tool.poetry.dependencies]
62-
python = "^3.9"
62+
python = "^3.10"
6363
numpy = "^2.0"
6464

6565
[tool.poetry.plugins."pylibjpeg.jpeg_decoders"]
@@ -86,7 +86,7 @@ omit = [
8686
]
8787

8888
[tool.mypy]
89-
python_version = "3.9"
89+
python_version = "3.10"
9090
files = "libjpeg"
9191
exclude = ["libjpeg/tests"]
9292
show_error_codes = true

0 commit comments

Comments
 (0)