Set up
The project uses uv:Tests
pytest-recording), so they run without API keys. --record-mode=all re-records them against the live APIs. Tests marked integration call live services: -m "not integration" skips them. The Temporal tests use the SDK’s time-skipping test server, downloaded on first run.
internal_tests/ holds integration scenarios (skills, flows, live model calls) that are not part of the default run.
Lint and format
pre-commit install.
Licenses
Gwenflow stays usable in commercial products: its dependencies are limited to permissive licenses (MIT, Apache-2.0, BSD), and strong copyleft licenses (GPL, LGPL, AGPL) are refused.licensecheck verifies the dependency tree:
Layout
Releasing
The version lives inpyproject.toml and gwenflow/version.py, and CHANGELOG.md follows Keep a Changelog. Pushing a vX.Y.Z tag and creating the GitHub release publishes the package to PyPI.