Skip to content

Commit 63ab596

Browse files
authored
Drop legacy platform support and improve CI efficiency (#358)
Cancelled in-progress GitHub Actions using concurrency groups to reduce CI resource usage. Fully removed support for Python 3.8 and lower. Discontinued building wheels for Linux i686 and Windows 32-bit due to low usage based on PyPI download statistics.
1 parent f09c3c8 commit 63ab596

File tree

7 files changed

+68
-52
lines changed

7 files changed

+68
-52
lines changed

.github/workflows/linuxbrew.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
name: linuxbrew
22
on: [push, pull_request]
3+
concurrency:
4+
group: ${{ github.workflow }}-${{ github.ref }}
5+
cancel-in-progress: true
36
jobs:
47
linuxbrew:
58
runs-on: ubuntu-latest

.github/workflows/macosx.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1-
name: MacOS
1+
name: macOS
22
on: [push, pull_request]
3+
concurrency:
4+
group: ${{ github.workflow }}-${{ github.ref }}
5+
cancel-in-progress: true
36
jobs:
47
macosx:
58
runs-on: macos-latest

.github/workflows/manylinux.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
name: manylinux
22
on: [push, pull_request]
3+
concurrency:
4+
group: ${{ github.workflow }}-${{ github.ref }}
5+
cancel-in-progress: true
36
jobs:
47
manylinux:
58
runs-on: ubuntu-latest
69
strategy:
710
matrix:
8-
python-abi: [cp38-cp38, cp39-cp39, cp310-cp310, cp311-cp311, cp312-cp312, cp313-cp313]
11+
python-abi: [cp39-cp39, cp310-cp310, cp311-cp311, cp312-cp312, cp313-cp313]
912
image:
1013
- manylinux2014_x86_64
1114
- manylinux_2_28_x86_64

.github/workflows/sdist.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
name: sdist
22
on: [push, pull_request]
3+
concurrency:
4+
group: ${{ github.workflow }}-${{ github.ref }}
5+
cancel-in-progress: true
36
jobs:
47
sdist:
58
# Avoid Ubuntu 24.04 in sdist workflows, because it contains libxmlsec1-dev

.github/workflows/wheels.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ on:
1515
pull_request:
1616
workflow_dispatch:
1717

18+
concurrency:
19+
group: ${{ github.workflow }}-${{ github.ref }}
20+
cancel-in-progress: true
21+
1822
permissions: {}
1923

2024
jobs:

.travis.yml

Lines changed: 40 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,52 @@
1-
dist: trusty
2-
sudo: false
1+
dist: focal
32
language: python
3+
travis:
4+
auto_cancel:
5+
push: true
6+
pull_request: true
7+
48
notifications:
59
email: false
6-
matrix:
7-
include:
8-
- python: 3.5
9-
- python: 3.6
10-
- python: 3.7
11-
dist: xenial
12-
sudo: required
13-
- python: 3.8
14-
dist: xenial
15-
sudo: required
16-
- python: 3.9
17-
dist: xenial
18-
sudo: required
19-
- python: 3.11
20-
dist: xenial
21-
sudo: required
10+
11+
python:
12+
- "3.9"
13+
- "3.10"
14+
- "3.11"
15+
- "3.12"
16+
- "3.13"
17+
2218
env:
2319
global:
24-
- CFLAGS=-coverage
25-
- LDFLAGS=-coverage -lgcov
26-
- PYXMLSEC_TEST_ITERATIONS=50
20+
- CFLAGS=-coverage
21+
- LDFLAGS=-coverage -lgcov
22+
- PYXMLSEC_TEST_ITERATIONS=50
2723

2824
addons:
2925
apt:
3026
packages:
31-
- libssl-dev
32-
- libxmlsec1
33-
- libxmlsec1-dev
34-
- libxmlsec1-openssl
35-
- libxslt1-dev
36-
- pkg-config
37-
- lcov
27+
- libssl-dev
28+
- libxmlsec1
29+
- libxmlsec1-dev
30+
- libxmlsec1-openssl
31+
- libxslt1-dev
32+
- pkg-config
33+
- lcov
34+
3835
install:
39-
- travis_retry pip install --upgrade pip setuptools wheel
40-
- travis_retry pip install coverage -r requirements-test.txt --upgrade --force-reinstall
41-
- python setup.py bdist_wheel
42-
- pip install xmlsec --only-binary=xmlsec --no-index --find-links=dist/
43-
script: coverage run -m pytest -v tests --color=yes
36+
- travis_retry pip install --upgrade pip setuptools wheel
37+
- travis_retry pip install coverage -r requirements-test.txt --upgrade --force-reinstall
38+
- python setup.py bdist_wheel
39+
- pip install xmlsec --only-binary=xmlsec --no-index --find-links=dist/
40+
41+
script:
42+
- coverage run -m pytest -v tests --color=yes
43+
4444
after_success:
45-
- lcov --capture --no-external --directory . --output-file coverage.info
46-
- lcov --list coverage.info
47-
- bash <(curl -s https://codecov.io/bash) -f coverage.info
45+
- lcov --capture --no-external --directory . --output-file coverage.info
46+
- lcov --list coverage.info
47+
- bash <(curl -s https://codecov.io/bash) -f coverage.info
48+
4849
before_deploy:
49-
- travis_retry pip install Sphinx -r doc/source/requirements.txt
50-
- git apply --verbose --no-index --unsafe-paths --directory=$(python -c "import site; print(site.getsitepackages()[0])") doc/source/sphinx-pr-6916.diff
51-
- sphinx-build -EWanb html doc/source build/sphinx
50+
- travis_retry pip install Sphinx -r doc/source/requirements.txt
51+
- git apply --verbose --no-index --unsafe-paths --directory=$(python -c "import site; print(site.getsitepackages()[0])") doc/source/sphinx-pr-6916.diff
52+
- sphinx-build -EWanb html doc/source build/sphinx

pyproject.toml

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,17 @@ known_third_party = ['lxml', 'pytest', '_pytest', 'hypothesis']
4747
requires = ['setuptools>=42', 'wheel', 'setuptools_scm[toml]>=3.4', "pkgconfig>=1.5.1", "lxml>=3.8, !=4.7.0"]
4848

4949
[tool.cibuildwheel]
50+
build = [
51+
"cp39-*",
52+
"cp310-*",
53+
"cp311-*",
54+
"cp312-*",
55+
"cp313-*"
56+
]
5057
build-verbosity = 1
5158
build-frontend = "build"
5259
skip = [
53-
"pp*",
54-
"*-musllinux_i686",
55-
# LXML doesn't publish wheels for these platforms, which makes it
56-
# difficult for us to build wheels, so we exclude them.
57-
"cp36-*",
58-
"cp37-*",
59-
"cp38-manylinux_aarch64",
60-
"cp38-musllinux_aarch64",
61-
"cp38-macosx*",
60+
"pp*", # Skips PyPy builds (pp38-*, pp39-*, etc.)
6261
]
6362
test-command = "pytest -v --color=yes {package}/tests"
6463
before-test = "pip install -r requirements-test.txt"
@@ -68,7 +67,7 @@ test-skip = "*-macosx_arm64"
6867
PYXMLSEC_STATIC_DEPS = "true"
6968

7069
[tool.cibuildwheel.linux]
71-
archs = ["x86_64", "aarch64", "i686"]
70+
archs = ["x86_64", "aarch64"]
7271
environment-pass = [
7372
"PYXMLSEC_LIBXML2_VERSION",
7473
"PYXMLSEC_LIBXSLT_VERSION",
@@ -81,7 +80,7 @@ archs = ["x86_64", "arm64"]
8180
before-all = "brew install perl"
8281

8382
[tool.cibuildwheel.windows]
84-
archs = ["AMD64", "x86"]
83+
archs = ["AMD64"]
8584

8685
[[tool.cibuildwheel.overrides]]
8786
select = "*-manylinux*"

0 commit comments

Comments
 (0)