ExportXMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Minor - P4
    • None
    • Affects Version/s: None
    • Component/s: Infrastructure, Tests
    • None
    • Python Drivers
    • None
    • None
    • None
    • None
    • None
    • None

      Context

      We currently run pr-tagged tasks in every variant, and the pr tag is assigned by rotation: create_standard_tasks tags a task when its zip_cycle rotation lands on the latest server version, and create_server_version_tasks tags the first Python in each combo cycle.

      Adding or removing a CPython reshuffles the rotation, so the set of PR tasks changes with every toolchain update, and each new version multiplies the tagged tasks across every variant containing them. The middle Python versions reach PRs only through this rotation; the daily schedule covers them otherwise.

      Coverage jobs are also unevenly spread today: Linux runs coverage against every MongoDB version, but macOS and Windows only run coverage against latest, and some test types (e.g. encryption) collect coverage on a single OS.

      Definition of done

      • The pr tag is pinned to the Python boundaries instead of rotated: the min Python (TEST_MIN_DEPS=1), the max Python (COVERAGE=1), and exactly one free-threaded task, each against the latest server.
      • Adding or removing a CPython re-binds the same slots rather than reshuffling the mix.
      • The size of the PR patch build does not depend on the number of supported CPython versions.
      • At least one free-threaded task keeps running on PRs.
      • Coverage strategically added for every test type, topology, MongoDB version, and OS is covered by at least one job that runs with COVERAGE=1.

      Pitfalls

      • Do not try to necessarly reduce the number of PR tasks with this change, we're focusing on having a stable set.
      • Attempt to use code to express the rules for pr-inclusion and coverage, so we don't have to remember to apply them for new tasks/variants.

            Assignee:
            Unassigned
            Reporter:
            Steve Silvester
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: