/python-versions

Python builds for Actions Runner Images

Primary LanguagePowerShellMIT LicenseMIT

Python for Actions

This repository contains the code and scripts that we use to build Python packages used in runner-images and accessible through the setup-python Action. File versions-manifest.json contains the list of available and released versions.

Caution: this is prepared for and only permitted for use by actions runner-images and setup-python action.

Some versions are pre-installed on runner-images images. More versions are available to install on-the-fly through the setup-python action.

Building installation packages

Ubuntu: The official Python sources are downloaded from python.org, built using the make tool, and archived along with the installation script for further distribution and installation. We build each Python version against all versions of Ubuntu that are available at the time the Python version is released.

macOS:

  • For Python < 3.11, the official Python sources are downloaded from python.org, built using the make tool, and archived along with the installation script for further distribution and installation. For backward compatibility, we build each Python version against the oldest version of macOS that is available at the time the Python version is released.
  • For Python >= 3.11, the official macOS universal2 Python binaries are simply downloaded from python.org and archived along with the installation script for further distribution and installation.

Windows: The official Python executables are simply downloaded from python.org and archived along with the installation script for further distribution and installation.

Support policy

We aim to make new versions of Python available as soon as they are released. Both stable and prerelease versions are considered for building and releasing. Please open an issue in actions/setup-python if a version you're looking for isn't available.

When a new version of an operating system is released and made available for use with GitHub hosted runners, we will provide the latest existing patch versions of Python for all major versions that have not reached end-of-life. Any subsequent Python versions will be made available for the new OS as well.

Beginning approximately six months prior to the removal of a Python version from the versions-manifest.json file, a pinned issue will be created in the setup-python repository. This pinned issue will provide important details about the upcoming end of support, including the specific date, as well as any other notes, relevant updates or alternatives. We encourage users to regularly check pinned issues for updates on tool versions they are using for maximum transparency, security, performance and overall compatibility with their projects.

Contribution

Contributions are welcome! See Contributor's Guide for more details about contribution process and code structure