Contributing#
Development setup
git clone https://github.com/brio50/avl-aero-tables.git
cd avl-aero-tables
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev,docs]"
Running tests
pytest # full suite
pytest -k avl_fileread # single test file
Note
Integration tests that invoke the AVL binary are skipped automatically if ~/bin/avl is not present. See Installation for binary setup.
Serving docs locally
sphinx-autobuild docs docs/_build/html
# open http://127.0.0.1:8000
The server watches for file changes and rebuilds automatically.
Publishing to PyPI
Releases are published automatically via GitHub Actions when a version tag is pushed. Tags can be pushed from any branch — to ensure releases only originate from main, create the tag from there.
git tag v1.0.0
git push origin v1.0.0
The publish.yml workflow builds the distribution and uploads it to PyPI using OIDC trusted publishing — no API token needed. Prerequisites:
A
pypienvironment must exist in the repository settings (Settings → Environments)PyPI must have a trusted publisher configured: repository
brio50/avl-aero-tables, workflowpublish.yml, environmentpypi
Code style
Linting is handled by Ruff:
ruff check avl_aero_tables
ruff check --fix avl_aero_tables