@@ -16,8 +16,6 @@ permissions:
1616env :
1717 TEST_ALL_PACKAGES : " false" # Set to "false" to only run tests for packages with a git diff
1818 ALL_PYTHON : " ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14', '3.15']"
19- # Force static compilation of libxml2 and libxslt for lxml packages
20- STATIC_DEPS : " true"
2119
2220jobs :
2321 # Dynamic package discovery job to calculate required matrix size automatically
7573 with :
7674 enable-cache : true
7775 cache-dependency-glob : ' packages/**/testing/constraints*.txt'
76+ # Temporarily needed for Python 3.15+.
77+ # Packages like `lxml` (required by `pikepdf` -> `google-cloud-documentai-toolbox`)
78+ # do not have precompiled binary wheels on PyPI for Python 3.15 yet.
79+ # This requires building `lxml` from source, which uses local
80+ # system headers. Once stable Python 3.15 is released and `lxml` wheels are
81+ # published to PyPI, this step can be safely removed.
82+ - name : Install libxml2 and libxslt dependencies
83+ run : |
84+ sudo apt-get update
85+ sudo apt-get install -y libxml2-dev libxslt1-dev
86+
7887 - name : Install nox
7988 run : |
8089 uv pip install --system nox nox-uv
@@ -102,8 +111,6 @@ jobs:
102111 # Can be removed once libcst releases a version with native Python 3.15 wheels
103112 # Follow https://github.com/Instagram/LibCST/issues/1445 for updates.
104113 PYO3_USE_ABI3_FORWARD_COMPATIBILITY : " 1"
105- # Ensure sub-processes (such as Nox test runs) statically compile lxml dependencies
106- STATIC_DEPS : " true"
107114 run : |
108115 UNIQUE_BATCH_PACKAGES=$(python -c 'import sys; sys.path.append("ci"); import get_batches; print(get_batches.get_batch_slice(${{ matrix.batch-index }}))')
109116
0 commit comments