Breaking changes
- Dropped support for Python 3.9. Python 3.10 or newer is now required.
Features and Improvements
- Releases are now built, tested, and published to PyPI from GitHub Actions via
Trusted Publishing (OIDC) when a release tag is pushed. Theiapex binary
is built and smoke-tested in CI and attached to the GitHub release. - Modernized development tooling: the codebase is now formatted with
ruff format(enforced in CI), CI installs dependencies with uv, and tests
that hit archive.org are marked with anetworkmarker so the offline
suite can be run withpytest -m "not network".
Documentation
- Clarified that the
retries_sleepupload argument is in seconds.
What's Changed
Other Changes
- Clean up toolchain drift in dev/test/release tooling by @jjjake in #781
- Unify and modernize the responses test-mock pin (0.26.1) by @jjjake in #782
- Switch from black to ruff format (line length 88, enforced) by @jjjake in #783
- Update .git-blame-ignore-revs for the rebase-merged reformat SHA by @jjjake in #784
- Drop Python 3.9 support (floor: Python 3.10) by @jjjake in #785
- Use uv in CI workflows (uv adoption, Phase 1) by @jjjake in #786
- CI hardening: network marker, parallel matrix, docs build, Sphinx 8, pip Dependabot by @jjjake in #787
- Add tag-triggered release workflow with PyPI Trusted Publishing (OIDC) by @jjjake in #789
- Update item.py: specify what unit of time sleep is in by @wyattscarpenter in #790
- Release 5.11.0 by @jjjake in #792
- Isolate config tests from host XDG_CONFIG_HOME and IA_CONFIG_FILE by @jjjake in #793
New Contributors
- @wyattscarpenter made their first contribution in #790
Full Changelog: v5.10.1...v5.11.0