Skip to content

CI/docs Python modernization with explicit 3.8 compatibility split #1110

@lmeyerov

Description

@lmeyerov

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

  1. 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).
  2. Land narrow, reviewable PRs that modernize operational lanes first.
  3. Keep compatibility lanes broad and explicit.
  4. 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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions