You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ci: repair GitHub Actions and pin third-party deprecations
Repairs the ci.yml workflow and adjusts pyproject.toml's pytest
filterwarnings so the test suite stays green on the CI matrix
(Python 3.9-3.12 on Ubuntu).
Workflow changes (.github/workflows/ci.yml)
-------------------------------------------
- Run on push to master/develop AND release/**, feature/**, ci/**
branches so feature branches get verified before PR open.
- Run on PRs targeting master.
- Add manual workflow_dispatch trigger.
- Three jobs:
1. lint - ruff check on src + tests; ruff format check is
advisory (continue-on-error) until a repo-wide format pass.
2. test - matrix on Python 3.9/3.10/3.11/3.12: install -e .,
install requirements-test.txt, run pytest with coverage,
run behave with --stop.
3. build-check - runs after test passes; python -m build then
twine check; uploads dist/ as a 7-day artifact named after
the commit SHA. Smoke-validates the publish.yml path on
every push without actually publishing.
- Drops contents:write permission (CI no longer needs to push).
Test config (pyproject.toml)
----------------------------
The pytest config has filterwarnings = ['error', ...] which converts
warnings to test failures. Two third-party deprecations need to be
whitelisted because they fire on the CI Python versions and are
outside our code:
- pyparsing 2.x uses sre_constants which is deprecated on Python
3.11+. Whitelisted as 'ignore:module sre_constants is deprecated'.
- pyparsing 3.x emits PyparsingDeprecationWarning when test code
uses lowerCamelCase shims like delimitedList in
tests/unitutil/cxml.py. Whitelisted via 'ignore::DeprecationWarning'
scoped to the pyparsing and tests.unitutil.cxml modules.
Verified locally:
pytest tests -> 2986 passed
behave --stop -> 54 features, 981 scenarios, 2932 steps, all passed
Dependency pins (requirements*.txt)
-----------------------------------
Pinned pyparsing>=2.0.1,<3 in both requirements.txt and
requirements-test.txt. The library still works with pyparsing 3.x
(filterwarnings catches the deprecations) but pyparsing 2.x is the
known-good baseline the test fixtures were written against.
0 commit comments