Skip to content

Commit 8fc0165

Browse files
committed
Add support for Python 3.14 and use latest libjpeg release
1 parent 0ed4657 commit 8fc0165

5 files changed

Lines changed: 62 additions & 55 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: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ name: release-deploy
33
on:
44
release:
55
types: [ published ]
6-
# push:
7-
# branches: [ main ]
8-
# pull_request:
6+
push:
7+
branches: [ main ]
8+
pull_request:
99

1010
jobs:
1111
build-sdist:
@@ -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,11 +110,11 @@ 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
121118
- os: macos-12
122119
python: 310
123120
platform_id: macosx_x86_64
@@ -130,6 +127,9 @@ jobs:
130127
- os: macos-12
131128
python: 313
132129
platform_id: macosx_x86_64
130+
- os: macos-12
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.10'
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.0
154154
155155
- name: Build wheels
156156
env:
@@ -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.10'
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:
@@ -274,23 +274,23 @@ jobs:
274274
# The pypi upload fails with non-linux containers, so grab the uploaded
275275
# artifacts and run using those
276276
# See: https://github.com/pypa/gh-action-pypi-publish/discussions/15
277-
deploy:
278-
name: Upload wheels to PyPI
279-
# needs: [ test-package ]
280-
needs: [ build-wheels, build-sdist, build-wheels-macos-arm64 ]
281-
runs-on: ubuntu-latest
282-
environment:
283-
name: pypi
284-
url: https://pypi.org/project/pylibjpeg-libjpeg/
285-
permissions:
286-
id-token: write
287-
288-
steps:
289-
- name: Download the wheels
290-
uses: actions/download-artifact@v7
291-
with:
292-
path: dist/
293-
merge-multiple: true
294-
295-
- name: Publish package to PyPi
296-
uses: pypa/gh-action-pypi-publish@release/v1
277+
# deploy:
278+
# name: Upload wheels to PyPI
279+
# # needs: [ test-package ]
280+
# needs: [ build-wheels, build-sdist, build-wheels-macos-arm64 ]
281+
# runs-on: ubuntu-latest
282+
# environment:
283+
# name: pypi
284+
# url: https://pypi.org/project/pylibjpeg-libjpeg/
285+
# permissions:
286+
# id-token: write
287+
#
288+
# steps:
289+
# - name: Download the wheels
290+
# uses: actions/download-artifact@v7
291+
# with:
292+
# path: dist/
293+
# merge-multiple: true
294+
#
295+
# - name: Publish package to PyPi
296+
# uses: pypa/gh-action-pypi-publish@release/v1

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: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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)