Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Raise Minimum Required Version of Python #2634

Open
ITProKyle opened this issue Oct 17, 2024 · 0 comments
Open

Raise Minimum Required Version of Python #2634

ITProKyle opened this issue Oct 17, 2024 · 0 comments
Assignees
Labels
feature Request or pull request for a new feature priority:high High priority issue or pull request status:accepted Issue or pull request accepted by maintainer
Milestone

Comments

@ITProKyle
Copy link
Collaborator

Overview

With the next major release of Runway, I would like to raise the minimum required version of Python to align with Runway's dependencies, Python's release/EoL schedule, and enable our developers to innovate with the newest features of Python.

Context

Status of Python versions

Currently Runway's minimum required version of Python is 3.9.
Python 3.9 enters it's end of life 2025-10.

Even though 3.9 is still ~1 year from end of life, it is already being dropped from some of Runway's dependencies.
Although it is only used to generate documentation, Sphinx is the most impactful of these.

Python 3.9 also lacks numerous improvements to type annotations.
The gaps are reduced in size by typing_extensions, there are still syntax shortcomings that cannot be overcome.

Goals

  • Utilize the latest features of Python to improve Runway's codebase.
  • Provide great type annotations in Runway's codebase.

Non-Goals

  • Follow macOS system Python as the minimum required version.
  • Follow Linux system or package installable Python as the minimum required version.
  • Use the absolute latest version of Python (3.13) as the minimum required version.

Proposed Solution

Previous discussions among Runway's maintainers landed us on 3.10 as the version to move forward with.
However, I would like to reopen this discussion as I was recently reminded of some of the drawbacks when attempting to lower the minimum required version of another package I maintain from 3.11 to 3.10 so that it would be usable here.

I would like to propose raising the minimum required version of Python to 3.11.

What's new in Python 3.11

Some of the key changes in 3.11 that would impact Runway's codebase include:

Alternative Solutions

3.10

What's new in Python 3.10

Some of the key changes in 3.10 that would impact Runway's codebase include:

Note that any of the proposed minimum Python versions benefit from these changes with this being the lowest of the three.

3.12

What's new in Python 3.12

I am not going to go into detail here because, while I feel using 3.12 > 3.11 is better it may overly limit Runway's user base due to it still being fairly new.

Impact

  • users of Runway may need to install a newer version of Python
    • pyenv provides an easy way to do this
    • for those using older versions of Python, dependency management tools (e.g. pip and poetry) will not allow the installation of the newest major release of Runway even if explicitly requested
@ITProKyle ITProKyle added priority:high High priority issue or pull request feature Request or pull request for a new feature status:accepted Issue or pull request accepted by maintainer labels Oct 17, 2024
@ITProKyle ITProKyle added this to the v3.0.0 milestone Oct 17, 2024
@ITProKyle ITProKyle self-assigned this Oct 17, 2024
@ITProKyle ITProKyle moved this from Backlog to To do in Runway Development Work Oct 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Request or pull request for a new feature priority:high High priority issue or pull request status:accepted Issue or pull request accepted by maintainer
Projects
Status: To do
Development

No branches or pull requests

1 participant