Uploaded image for project: 'Motor'
  1. Motor
  2. MOTOR-373

Drop support for Python 2.7 and 3.4

    XMLWordPrintable

    Details

    • Type: Epic
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.2
    • Component/s: None
    • Labels:
      None
    • Epic Name:
      Motor Drop support for CPython <= 3.4
    • Detailed Project Statuses:
      Hide

      Engineer(s): Prashant Mital
      Summary: With the introduction in Python 3.5 of the async and await expressions, MOTOR developers have to support two different APIs for concurrency. This represents a significant maintenance burden for the development team.
      After analyzing Atlas client data as well as PyPI download data, we have ascertained that it no longer makes sense to continue supporting these older runtimes (and APIs).

      2020-08-07: Updating target date to 2020-08-14 (3 weeks)

      • This work to fully drop support for CPython 2.7 and 3.4 is almost complete and only pending two tickets.
      • We have one ticket in code review to deprecate two methods and another ticket in progress to update the documentation to remove legacy patterns.
      • We feel confident this should all be completed ahead of the end date of Aug 14th.

      2020-07-24: Setting initial target date of 2020-08-07 (2 weeks)

      • This epic is necessary to reduce the maintenance burden for the team and is the first step required for us to complete the work for Motor 4.4 compatibility.
      • Work is mostly complete already, pending one ticket to deprecate two methods and a ticket to update documentation.
      • One additional ticket to remove a Python 2 compatibility submodule is in code review.
      Show
      Engineer(s): Prashant Mital Summary: With the introduction in Python 3.5 of the async and await expressions, MOTOR developers have to support two different APIs for concurrency. This represents a significant maintenance burden for the development team. After analyzing Atlas client data as well as PyPI download data, we have ascertained that it no longer makes sense to continue supporting these older runtimes (and APIs). 2020-08-07: Updating target date to 2020-08-14 (3 weeks) This work to fully drop support for CPython 2.7 and 3.4 is almost complete and only pending two tickets. We have one ticket in code review to deprecate two methods and another ticket in progress to update the documentation to remove legacy patterns. We feel confident this should all be completed ahead of the end date of Aug 14th. 2020-07-24: Setting initial target date of 2020-08-07 (2 weeks) This epic is necessary to reduce the maintenance burden for the team and is the first step required for us to complete the work for Motor 4.4 compatibility. Work is mostly complete already, pending one ticket to deprecate two methods and a ticket to update documentation. One additional ticket to remove a Python 2 compatibility submodule is in code review.

      Description

      With the introduction in Python 3.5 of the async and await expressions (see relevant PEP), MOTOR developers have to support two different APIs for concurrency. This represents a significant maintenance burden for the development team.

      We should analyze Atlas client data as well as PyPI download data to ascertain whether we need to continue supporting these older runtimes (and APIs). Python 3.5+ seem to be the runtimes of choice for concurrent/asynchronous workloads due to markedly improved performance and APIs. If user data supports this hypothesis, we can start working towards dropping support for older runtimes.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              prashant.mital Prashant Mital
              Reporter:
              prashant.mital Prashant Mital
              Participants:
              Votes:
              1 Vote for this issue
              Watchers:
              6 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                End date: