define 'noextra' tox env, fold 'nolxml' into that one

and keep all pinned test dependencies inside a single requirements.txt, previously lxml was defined only inside tox.ini
This commit is contained in:
Cosimo Lupo 2023-05-24 16:28:53 +01:00
parent d017d2b173
commit 31cb8c0a96
No known key found for this signature in database
GPG Key ID: DF65A8A5A119C9A8
4 changed files with 13 additions and 17 deletions

View File

@ -51,8 +51,8 @@ jobs:
run: pip install tox coverage run: pip install tox coverage
- name: Run Tox - name: Run Tox
run: tox $TOX_OPTIONS -e py-cov run: tox $TOX_OPTIONS -e py-cov
- name: Run Tox without lxml - name: Run Tox without extra dependencies
run: tox $TOX_OPTIONS -e py-cov-nolxml run: tox $TOX_OPTIONS -e py-cov-noextra
- name: Produce coverage files - name: Produce coverage files
run: | run: |
coverage combine coverage combine
@ -80,7 +80,7 @@ jobs:
- name: Install packages - name: Install packages
run: pip install tox run: pip install tox
- name: Run Tox - name: Run Tox
run: tox $TOX_OPTIONS -e py-cy-nolxml run: tox $TOX_OPTIONS -e py-cy
test-pypy3: test-pypy3:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@ -94,4 +94,4 @@ jobs:
- name: Install packages - name: Install packages
run: pip install tox run: pip install tox
- name: Run Tox - name: Run Tox
run: tox $TOX_OPTIONS -e pypy3-nolxml run: tox $TOX_OPTIONS -e pypy3

View File

@ -11,7 +11,6 @@ on:
workflow_dispatch: workflow_dispatch:
env: env:
PROJECT_NAME: fonttools
# skip binary wheels for pypy (preferable to use pure-python) and 32-bit Linux # skip binary wheels for pypy (preferable to use pure-python) and 32-bit Linux
CIBW_SKIP: pp* cp*linux_i686 CIBW_SKIP: pp* cp*linux_i686
CIBW_ENVIRONMENT: FONTTOOLS_WITH_CYTHON=1 CIBW_ENVIRONMENT: FONTTOOLS_WITH_CYTHON=1
@ -31,7 +30,7 @@ jobs:
os: [macos-latest, windows-latest] os: [macos-latest, windows-latest]
arch: [auto64] arch: [auto64]
build: ["*"] build: ["*"]
test_command: ["tox -e py-cy-nolxml -c {package}/tox.ini --installpkg {wheel}"] tox_env: ["py-cy"]
include: include:
# # the manylinux1 docker images contain up to python 3.9 # # the manylinux1 docker images contain up to python 3.9
# - os: ubuntu-latest # - os: ubuntu-latest
@ -66,8 +65,8 @@ jobs:
- os: windows-latest - os: windows-latest
arch: auto32 arch: auto32
build: "*" build: "*"
# skip running test on 32-bit windows # scipy doesn't have wheels for win32 hence run tox with 'noextra'
test_command: "python -c \"import fontTools; print(fontTools.__file__, fontTools.__version__)\"" tox_env: py-cy-noextra
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
with: with:
@ -77,6 +76,7 @@ jobs:
with: with:
python-version: "3.x" python-version: "3.x"
- name: Install dependencies - name: Install dependencies
# using fork of cibuildwheel until this is fixed: https://github.com/pypa/cibuildwheel/issues/1504
run: pip install git+https://github.com/anthrotype/cibuildwheel.git@test_command_wheel#egg=cibuildwheel run: pip install git+https://github.com/anthrotype/cibuildwheel.git@test_command_wheel#egg=cibuildwheel
- name: Build Wheels - name: Build Wheels
@ -86,7 +86,7 @@ jobs:
CIBW_MANYLINUX_I686_IMAGE: ${{ matrix.CIBW_MANYLINUX_I686_IMAGE }} CIBW_MANYLINUX_I686_IMAGE: ${{ matrix.CIBW_MANYLINUX_I686_IMAGE }}
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.CIBW_MANYLINUX_X86_64_IMAGE }} CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.CIBW_MANYLINUX_X86_64_IMAGE }}
CIBW_ARCHS: ${{ matrix.arch }} CIBW_ARCHS: ${{ matrix.arch }}
CIBW_TEST_COMMAND: ${{ matrix.test_command }} CIBW_TEST_COMMAND: "tox -e ${{ matrix.tox_env }} --installpkg {wheel}"
- uses: actions/upload-artifact@v2 - uses: actions/upload-artifact@v2
with: with:
path: wheelhouse/*.whl path: wheelhouse/*.whl
@ -107,6 +107,7 @@ jobs:
with: with:
platforms: all platforms: all
- name: Install dependencies - name: Install dependencies
# using fork of cibuildwheel until this is fixed: https://github.com/pypa/cibuildwheel/issues/1504
run: pip install git+https://github.com/anthrotype/cibuildwheel.git@test_command_wheel#egg=cibuildwheel run: pip install git+https://github.com/anthrotype/cibuildwheel.git@test_command_wheel#egg=cibuildwheel
- name: Build Wheels - name: Build Wheels
run: python -m cibuildwheel --output-dir wheelhouse . run: python -m cibuildwheel --output-dir wheelhouse .

View File

@ -15,3 +15,4 @@ pyobjc==9.0; sys_platform == "darwin"
freetype-py==2.3.0 freetype-py==2.3.0
uharfbuzz==0.32.0 uharfbuzz==0.32.0
glyphsLib==6.2.1 # this is only required to run Tests/varLib/interpolatable_test.py glyphsLib==6.2.1 # this is only required to run Tests/varLib/interpolatable_test.py
lxml==4.9.0

10
tox.ini
View File

@ -18,14 +18,8 @@ deps =
cov: coverage>=4.3 cov: coverage>=4.3
pytest pytest
pytest-randomly pytest-randomly
-rrequirements.txt # add -noextra to tox -e to skip installing extras and only test the core fonttools
!nolxml: lxml==4.9.0 !noextra: -rrequirements.txt
extras =
ufo
woff
unicode
interpolatable
!nolxml: lxml
commands = commands =
cy: python -c "from fontTools.cu2qu.cu2qu import COMPILED; assert COMPILED" cy: python -c "from fontTools.cu2qu.cu2qu import COMPILED; assert COMPILED"
!cy: python -c "from fontTools.cu2qu.cu2qu import COMPILED; assert not COMPILED" !cy: python -c "from fontTools.cu2qu.cu2qu import COMPILED; assert not COMPILED"