Summary
Modernize CI/docs Python interpreter choices while preserving library backward compatibility.
Policy (explicit)
- PyGraphistry runtime backward compatibility SHOULD remain Python 3.8+ for now.
- CI SHOULD keep explicit compatibility testing across the known-supported matrix (currently
3.8 .. 3.14, where working).
- CI jobs that are primarily operational/build/docs/tooling lanes should avoid EOL interpreters and move to maintained versions (prefer newer where feasible).
Why
- Python 3.8 is EOL, so non-compat lanes pinned to 3.8 create avoidable infra risk.
- We still need confidence in older-runtime compatibility for users.
- Splitting compatibility lanes from operational lanes gives both safety and forward motion.
Scope for this issue
- Inventory and classify Python-version usage across CI/docs/packaging as:
- compatibility lanes (must include old+new supported versions),
- operational lanes (prefer maintained/current interpreters),
- policy declarations (
python_requires, docs claims, tooling targets).
- Land narrow, reviewable PRs that modernize operational lanes first.
- Keep compatibility lanes broad and explicit.
- Re-check assumptions periodically, since what works on latest Python can improve over time.
Current progress
Proposed phased approach
Phase A: Operational lane modernization (no support-floor change)
- Move fixed operational/build/docs lanes off EOL interpreters.
- Prefer
3.10+ (or newer) for non-compat jobs.
- Keep diffs small and behavior-focused.
Phase B: Compatibility matrix stewardship
- Preserve and regularly validate compatibility lanes across declared range (
3.8 .. 3.14, where known working).
- Add/adjust matrix entries as real compatibility evolves.
Phase C: Future policy bump (optional, separate decision)
- If/when support floor is raised, coordinate updates across:
python_requires, classifiers, docs claims,
- tooling targets (
pyproject),
- lockfile generator + CI matrices.
Deliverables
- Tracked mapping of lane type -> Python-version intent.
- Sequence of PRs modernizing operational lanes.
- Clear distinction between compatibility testing and operational execution lanes.
Related
Summary
Modernize CI/docs Python interpreter choices while preserving library backward compatibility.
Policy (explicit)
3.8 .. 3.14, where working).Why
Scope for this issue
python_requires, docs claims, tooling targets).Current progress
test-readme.test-buildfrom fixed Python 3.8 to Python 3.10 while keeping explicit 3.8 compatibility lanes elsewhere.Proposed phased approach
Phase A: Operational lane modernization (no support-floor change)
3.10+(or newer) for non-compat jobs.Phase B: Compatibility matrix stewardship
3.8 .. 3.14, where known working).Phase C: Future policy bump (optional, separate decision)
python_requires, classifiers, docs claims,pyproject),Deliverables
Related