- Drop push-triggered runs for non-master branches; pull_request
already covers every PR commit, so push+pull_request was running
the full 14-job matrix twice per push (28 jobs).
- Only run the full Python 3.8-3.14 matrix on ubuntu-latest. macOS
runners bill at 10x Linux minutes; test just the oldest and newest
supported Python there to catch platform-specific issues.
- Net effect: 28 jobs per PR push -> 9 (7 Linux + 2 macOS).
Co-authored-by: Maxim Shulga <maxim.shulga@alludo.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Use Docker containers with official Python images to run tests across
all Python versions from 3.6 to 3.14. This approach:
- Eliminates "workers not found" errors from deprecated Ubuntu runners
- Provides reliable support for older Python versions (3.6, 3.7)
- Simplifies workflow configuration significantly
- Uses official python:X.Y Docker images maintained by Python team
- Sets fail-fast: false to test all versions independently
- Project overview and features
- Installation and usage instructions
- Detailed explanation of how hardlink-based backups work
- Command-line options and examples
- Backup structure and retention policy details
- Development and testing information