Skip to content

Commit d8a0fad

Browse files
committed
Add test infra for Python 3.14
1 parent d24f6fe commit d8a0fad

20 files changed

+114
-29
lines changed

.github/workflows/release.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
sdist: ${{ steps.package.outputs.sdist }}
2121
wheel: ${{ steps.package.outputs.wheel }}
2222
container:
23-
image: danielflook/python-minifier-build:python3.13-2024-09-15
23+
image: danielflook/python-minifier-build:python3.14-2025-08-13
2424
permissions:
2525
contents: read
2626
steps:
@@ -68,7 +68,7 @@ jobs:
6868
outputs:
6969
wheel: ${{ steps.package.outputs.wheel }}
7070
container:
71-
image: danielflook/python-minifier-build:python2.7-2024-09-15
71+
image: danielflook/python-minifier-build:python2.7-2025-08-13
7272
steps:
7373
- name: Download source distribution artifact
7474
uses: actions/[email protected]
@@ -98,7 +98,7 @@ jobs:
9898
runs-on: ubuntu-24.04
9999
needs: [package_python3]
100100
container:
101-
image: danielflook/python-minifier-build:python3.13-2024-09-15
101+
image: danielflook/python-minifier-build:python3.14-2025-08-13
102102
permissions:
103103
contents: read
104104
steps:

.github/workflows/release_test.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
sdist: ${{ steps.package.outputs.sdist }}
1515
wheel: ${{ steps.package.outputs.wheel }}
1616
container:
17-
image: danielflook/python-minifier-build:python3.13-2024-09-15
17+
image: danielflook/python-minifier-build:python3.14-2025-08-13
1818
steps:
1919
- name: Checkout
2020
uses: actions/[email protected]
@@ -60,7 +60,7 @@ jobs:
6060
outputs:
6161
wheel: ${{ steps.package.outputs.wheel }}
6262
container:
63-
image: danielflook/python-minifier-build:python2.7-2024-09-15
63+
image: danielflook/python-minifier-build:python2.7-2025-08-13
6464
steps:
6565
- name: Download source distribution artifact
6666
uses: actions/[email protected]
@@ -90,7 +90,7 @@ jobs:
9090
runs-on: ubuntu-24.04
9191
needs: [package_python3]
9292
container:
93-
image: danielflook/python-minifier-build:python3.13-2024-09-15
93+
image: danielflook/python-minifier-build:python3.14-2025-08-13
9494
steps:
9595
- uses: actions/[email protected]
9696
with:
@@ -124,7 +124,7 @@ jobs:
124124
strategy:
125125
fail-fast: false
126126
matrix:
127-
python: ["2.7", "3.3", "3.4", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
127+
python: ["2.7", "3.3", "3.4", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
128128
package_type: [sdist, wheel]
129129
steps:
130130
- name: Checkout
@@ -145,7 +145,7 @@ jobs:
145145
- name: Test
146146
uses: ./.github/actions/run-in-container
147147
with:
148-
image: danielflook/python-minifier-build:python${{ matrix.python }}-2024-09-15
148+
image: danielflook/python-minifier-build:python${{ matrix.python }}-2025-08-13
149149
run: |
150150
if [[ "${{ matrix.package_type }}" == "sdist" ]]; then
151151
pip${{ matrix.python }} install dist/${{needs.package_python3.outputs.sdist}}
@@ -171,7 +171,7 @@ jobs:
171171
matrix:
172172
package_type: [sdist, wheel]
173173
container:
174-
image: danielflook/python-minifier-build:python3.13-2024-09-15
174+
image: danielflook/python-minifier-build:python3.14-2025-08-13
175175
steps:
176176
- name: Download distribution artifacts
177177
uses: actions/[email protected]

.github/workflows/test.yaml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
strategy:
1414
fail-fast: false
1515
matrix:
16-
python: ["python2.7", "python3.3", "python3.4", "python3.5", "python3.6", "python3.7", "python3.8", "python3.9", "python3.10", "python3.11", "python3.12", "python3.13", "pypy", "pypy3"]
16+
python: ["python2.7", "python3.3", "python3.4", "python3.5", "python3.6", "python3.7", "python3.8", "python3.9", "python3.10", "python3.11", "python3.12", "python3.13", "python3.14", "pypy", "pypy3"]
1717
steps:
1818
- name: Checkout
1919
uses: actions/[email protected]
@@ -30,7 +30,7 @@ jobs:
3030
- name: Run tests
3131
uses: ./.github/actions/run-in-container
3232
with:
33-
image: danielflook/python-minifier-build:${{ matrix.python }}-2024-09-15
33+
image: danielflook/python-minifier-build:${{ matrix.python }}-2025-08-13
3434
run: |
3535
tox -r -e $(echo "${{ matrix.python }}" | tr -d .)
3636
@@ -40,7 +40,7 @@ jobs:
4040
strategy:
4141
fail-fast: false
4242
matrix:
43-
python-version: ['2.7', '3.6', '3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
43+
python-version: ['2.7', '3.6', '3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14']
4444
steps:
4545
- name: Checkout
4646
uses: actions/[email protected]
@@ -135,6 +135,7 @@ jobs:
135135
- Dockerfile-fedora36
136136
- Dockerfile-fedora38
137137
- Dockerfile-fedora40
138+
- Dockerfile-fedora42
138139
- Dockerfile-fuzz
139140
steps:
140141
- name: Checkout

.github/workflows/test_corpus.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ jobs:
4444
strategy:
4545
fail-fast: false
4646
matrix:
47-
python: ["2.7", "3.3", "3.4", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
47+
python: ["2.7", "3.3", "3.4", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
4848
ref: ["${{ inputs.ref }}", "${{ inputs.base-ref }}"]
4949
steps:
5050
- name: Clear workspace
@@ -72,7 +72,7 @@ jobs:
7272
- name: Run tests
7373
uses: dflook/run-in-container@main
7474
with:
75-
image: danielflook/python-minifier-build:python${{ matrix.python }}-2024-09-15
75+
image: danielflook/python-minifier-build:python${{ matrix.python }}-2025-08-13
7676
volumes: |
7777
/corpus:/corpus
7878
/corpus-results:/corpus-results
@@ -143,7 +143,7 @@ jobs:
143143
- name: Generate Report
144144
uses: dflook/run-in-container@main
145145
with:
146-
image: danielflook/python-minifier-build:python3.13-2024-09-15
146+
image: danielflook/python-minifier-build:python3.14-2025-08-13
147147
volumes: |
148148
/corpus-results:/corpus-results
149149
run: |

.github/workflows/verify_release.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ jobs:
1717
runs-on: ubuntu-24.04
1818
strategy:
1919
matrix:
20-
python: ["2.7", "3.3", "3.4", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
20+
python: ["2.7", "3.3", "3.4", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
2121
container:
22-
image: danielflook/python-minifier-build:python${{ matrix.python }}-2024-09-15
22+
image: danielflook/python-minifier-build:python${{ matrix.python }}-2025-08-13
2323
steps:
2424
- name: Test
2525
env:

.github/workflows/xtest.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
strategy:
1414
fail-fast: false
1515
matrix:
16-
python: ["python2.7", "python3.3", "python3.4", "python3.5", "python3.6", "python3.7", "python3.8", "python3.9", "python3.10", "python3.11", "python3.12", "python3.13", "pypy3"]
16+
python: ["python2.7", "python3.3", "python3.4", "python3.5", "python3.6", "python3.7", "python3.8", "python3.9", "python3.10", "python3.11", "python3.12", "python3.13", "python3.14", "pypy3"]
1717
steps:
1818
- name: Clear workspace
1919
run: rm -rf "${GITHUB_WORKSPACE:?}/*"
@@ -33,7 +33,7 @@ jobs:
3333
- name: Run tests
3434
uses: ./.github/actions/run-in-container
3535
with:
36-
image: danielflook/python-minifier-build:${{ matrix.python }}-2024-09-15
36+
image: danielflook/python-minifier-build:${{ matrix.python }}-2025-08-13
3737
run: |
3838
3939
if [[ "${{ matrix.python }}" == "python3.4" ]]; then

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,14 @@ and will output source code compatible with the version of the interpreter it is
1010
This means that if you minify code written for Python 3.11 using python-minifier running with Python 3.12,
1111
the minified code may only run with Python 3.12.
1212

13+
## [Unreleased] - Work in Progress
14+
15+
### Added
16+
- Python 3.14 support (work in progress), including:
17+
+ PEP 750 Template strings (t-strings)
18+
+ Exception handling without parentheses
19+
+ PEP 649 Deferred annotation evaluation
20+
1321
## [3.0.0] - 2025-08-13
1422

1523
### Fixed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Transforms Python source code into its most compact representation.
44

55
[Try it out!](https://python-minifier.com)
66

7-
python-minifier currently supports Python 2.7 and Python 3.3 to 3.13. Previous releases supported Python 2.6.
7+
python-minifier currently supports Python 2.7 and Python 3.3 to 3.14. Previous releases supported Python 2.6.
88

99
* [PyPI](https://pypi.org/project/python-minifier/)
1010
* [Documentation](https://dflook.github.io/python-minifier/)

docker/Dockerfile-fedora30

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ FROM base AS python3.8
7979
RUN <<EOF
8080
dnf install -y python38
8181
dnf clean all && rm -rf /var/cache/dnf/*
82-
curl https://bootstrap.pypa.io/get-pip.py | python3.8
82+
curl https://bootstrap.pypa.io/pip/3.8/get-pip.py | python3.8
8383
EOF
8484

8585
##

docker/Dockerfile-fedora42

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
FROM fedora:42 AS python3.14
2+
3+
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
4+
5+
# CircleCI required tools
6+
RUN <<EOF
7+
dnf install -y \
8+
git \
9+
tar \
10+
gzip \
11+
gpg \
12+
ca-certificates
13+
dnf clean all && rm -rf /var/cache/dnf/*
14+
EOF
15+
16+
# Development tools
17+
RUN <<EOF
18+
dnf install -y \
19+
@development-tools \
20+
findutils \
21+
zlib-devel \
22+
bzip2-devel \
23+
ncurses-devel \
24+
gdbm-devel \
25+
openssl-devel \
26+
sqlite-devel \
27+
tk-devel \
28+
libuuid-devel \
29+
readline-devel \
30+
libnsl2-devel \
31+
xz-devel \
32+
libffi-devel \
33+
wget
34+
git clone https://github.com/python/cpython.git
35+
cd cpython
36+
git checkout v3.14.0rc1
37+
./configure
38+
make
39+
make install
40+
cd ..
41+
rm -rf cpython
42+
dnf clean all && rm -rf /var/cache/dnf/*
43+
EOF
44+
45+
# Other packages required for tests
46+
RUN <<EOF
47+
dnf install -y bzip2
48+
dnf clean all && rm -rf /var/cache/dnf/*
49+
EOF
50+
51+
RUN pip3 install --no-cache-dir tox==4.28.4
52+
53+
WORKDIR /tmp/work
54+
ENTRYPOINT ["/bin/bash"]

0 commit comments

Comments
 (0)