Fix up issues on Python 3.8

Review Request #14677 — Created Nov. 6, 2025 and updated — Latest diff uploaded

Information

Review Board
release-7.1.x

Reviewers

We had a bunch of issues sneak into the codebase that made it impossible
to set up or run the release-7.1.x branch against Python 3.8. This
change fixes them up:

  • Our pyproject.toml file required setuptools>=77, but the last release
    that supports 3.8 was 75.
  • Once that was fixed, I was getting errors about the format of the
    license lines.
  • There were several few places where type annonations were getting
    evaluated, primarily in generics, TypeAliases, and Pydantic models.
    We had a number of places where we had more-modern syntax (type[...],
    |-syntax for unions) or were getting things from collections.abc
    that needed to come from typing because the collections versions
    don't support subscripts for 3.8.
  • Some of the new hosting services stuff was using str.removeprefix(),
    which was introduced in Python 3.9.

Set up a Python 3.8 environment and ran unit tests.

Commits

Files