Skip to content

Requests: Python 2.7 Support and Deprecation #6023

@nateprewitt

Description

@nateprewitt

Overview

As we enter our third year of Python 2.7 reaching end-of-life, Requests has decided it's time to start deprecating our support. While we have yet to confirm a date, we want to provide early notice that this is coming at some point in 2022. This follows as the majority of our critical downstream consumers have finished their deprecation campaigns. While we understand this may be viewed as an inconvenience for those still using Python 2.7, I'll try to layout the steps we're taking to ensure a smooth transition.

In January, we will be releasing Requests 2.27.0. This is intended to be the last minor release with guaranteed support, including all 2.27.x hotfix releases. We've taken steps to ensure this release series includes fixes for some of the longer standing pain points and provide as much long term stability as we're able. Users who intend to continue Python 2.7 use should review the Mitigation Steps section of this issue.

Going forward, we're still working through what a Python 3-only Requests looks like. We'd like to preface now that it's unlikely to contain many of the more exciting features that may have previously been promised by former maintainers. In future releases, we'll look to add quality-of-life improvements as they make sense while maintaining the primary focus of stability in the library. We'll provide more on that as information is available.

Mitigation Steps

For Requests users that intend to remain on Python 2.7 through 2022, we recommend taking the following mitigation steps.

  1. For users of pip 9.0+, we'll also be releasing an update to the python_requires metadata to >=3.7 in Requests. This will prevent unintended installation on unsupported Python versions.
  2. For users who want to codify this requirement across all environments, ensure that you've explicitly pinned Requests in your workspace or project to requests<2.28. This will prevent unintended interruptions with future releases.
  3. For users of LTS operating systems providing Python 2.7 support through 2023, you'll need to work with their support teams for bug or security issues for any releases after 2.27.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions