mirror of
https://github.com/actions/python-versions.git
synced 2025-12-15 15:32:11 +00:00
Compare commits
29 Commits
3.7.3-4112
...
3.13.0-alp
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e642abaef8 | ||
|
|
381057ce36 | ||
|
|
5da3a44cc2 | ||
|
|
3880dd814a | ||
|
|
ba0b46a6a1 | ||
|
|
b81fc1cff7 | ||
|
|
f4b33352f0 | ||
|
|
8e2e28992d | ||
|
|
38c560b52f | ||
|
|
3dca5896d3 | ||
|
|
1d88a8f21b | ||
|
|
c4456b9062 | ||
|
|
9d3aa48b3c | ||
|
|
c1cf5de988 | ||
|
|
5a451d6492 | ||
|
|
87d20c715f | ||
|
|
225ba42747 | ||
|
|
ab4e944c0f | ||
|
|
7693cef346 | ||
|
|
c7573bf15e | ||
|
|
80893f523f | ||
|
|
6d04944fbd | ||
|
|
256e6ddd57 | ||
|
|
c6bbc68f56 | ||
|
|
b539ede4c3 | ||
|
|
e952c806a5 | ||
|
|
ed7a676026 | ||
|
|
b8accc4e9f | ||
|
|
6f472a7a9e |
22
.github/workflows/build-python-packages.yml
vendored
22
.github/workflows/build-python-packages.yml
vendored
@@ -15,7 +15,7 @@ on:
|
||||
PLATFORMS:
|
||||
description: 'Platforms for execution in "os" or "os_arch" format (arch is "x64" by default)'
|
||||
required: true
|
||||
default: 'ubuntu-18.04,ubuntu-20.04,ubuntu-22.04,macos-11,windows-2019_x64,windows-2019_x86'
|
||||
default: 'ubuntu-20.04,ubuntu-22.04,macos-11_x64,macos-11_arm64,windows-2019_x64,windows-2019_x86'
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- 'versions-manifest.json'
|
||||
@@ -39,7 +39,7 @@ jobs:
|
||||
- name: Generate execution matrix
|
||||
id: generate-matrix
|
||||
run: |
|
||||
[String[]]$configurations = "${{ inputs.platforms || 'ubuntu-18.04,ubuntu-20.04,ubuntu-22.04,macos-11,windows-2019_x64,windows-2019_x86' }}".Split(",").Trim()
|
||||
[String[]]$configurations = "${{ inputs.platforms || 'ubuntu-20.04,ubuntu-22.04,macos-11,macos-11_arm64,windows-2019_x64,windows-2019_x86' }}".Split(",").Trim()
|
||||
$matrix = @()
|
||||
|
||||
foreach ($configuration in $configurations) {
|
||||
@@ -155,6 +155,7 @@ jobs:
|
||||
$pesterContainer = New-PesterContainer -Path './python-tests.ps1' -Data @{
|
||||
Version="${{ env.VERSION }}";
|
||||
Platform="${{ matrix.platform }}";
|
||||
Architecture="${{ matrix.arch }}";
|
||||
}
|
||||
$Result = Invoke-Pester -Container $pesterContainer -PassThru
|
||||
if ($Result.FailedCount -gt 0) {
|
||||
@@ -182,6 +183,18 @@ jobs:
|
||||
body: |
|
||||
Python ${{ env.VERSION }}
|
||||
|
||||
- name: Generate hash for packages
|
||||
run: |
|
||||
$childItems = Get-Childitem -Path '.'
|
||||
$childItems | Foreach-Object {
|
||||
$packageObj = Get-Childitem -Path $_.FullName | Select-Object -First 1
|
||||
Write-Host "Package: $($packageObj.Name)"
|
||||
$actualHash = (Get-FileHash -Path $packageObj.FullName -Algorithm sha256).Hash
|
||||
$hashString = "$actualHash $($packageObj.Name)"
|
||||
Write-Host "$hashString"
|
||||
Add-Content -Path ./hashes.sha256 -Value "$hashString"
|
||||
}
|
||||
|
||||
- name: Upload release assets
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
@@ -189,14 +202,15 @@ jobs:
|
||||
script: |
|
||||
const fs = require('fs');
|
||||
for (let artifactDir of fs.readdirSync('.')) {
|
||||
let artifactName = fs.readdirSync(`${artifactDir}`)[0];
|
||||
let artifactName = fs.lstatSync(artifactDir).isDirectory() ? fs.readdirSync(`${artifactDir}`)[0] : artifactDir;
|
||||
|
||||
console.log(`Upload ${artifactName} asset`);
|
||||
github.rest.repos.uploadReleaseAsset({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
release_id: ${{ steps.create_release.outputs.id }},
|
||||
name: artifactName,
|
||||
data: fs.readFileSync(`./${artifactDir}/${artifactName}`)
|
||||
data: fs.lstatSync(artifactDir).isDirectory() ? fs.readFileSync(`./${artifactDir}/${artifactName}`) : fs.readFileSync(`./${artifactName}`).toString()
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
4
.github/workflows/releases-validation.yml
vendored
4
.github/workflows/releases-validation.yml
vendored
@@ -14,8 +14,8 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [macos-latest, windows-latest, ubuntu-18.04, ubuntu-20.04]
|
||||
python: [3.5.4, 3.6.7, 3.7.5, 3.8.1]
|
||||
os: [macos-latest, windows-latest, ubuntu-20.04, ubuntu-22.04]
|
||||
python: [3.9.12, 3.10.8, 3.11.10]
|
||||
steps:
|
||||
- name: setup-python ${{ matrix.python }}
|
||||
uses: actions/setup-python@v4
|
||||
|
||||
2
.github/workflows/test-python-version.yml
vendored
2
.github/workflows/test-python-version.yml
vendored
@@ -17,7 +17,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [macos-latest, windows-latest, ubuntu-18.04, ubuntu-20.04]
|
||||
os: [macos-latest, windows-latest, ubuntu-20.04, ubuntu-22.04]
|
||||
steps:
|
||||
- name: Setup Python ${{ github.event.inputs.version }}
|
||||
uses: actions/setup-python@main
|
||||
|
||||
@@ -21,5 +21,7 @@ We aim to make new versions of Python available as soon as they are released. Bo
|
||||
|
||||
When a new version of an operating system is released and made available for use with [GitHub hosted runners](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources), we will provide the **latest existing patch versions of Python for all major versions that have not reached [end-of-life](https://devguide.python.org/versions/)**. 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](https://github.com/actions/python-versions/blob/main/versions-manifest.json) file, a pinned issue will be created in the [setup-python](https://github.com/actions/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](./CONTRIBUTING.md) for more details about contribution process and code structure
|
||||
|
||||
@@ -7,7 +7,7 @@ class macOSPythonBuilder : NixPythonBuilder {
|
||||
|
||||
.DESCRIPTION
|
||||
Contains methods that required to build macOS Python artifact from sources. Inherited from base NixPythonBuilder.
|
||||
|
||||
|
||||
While python.org provides precompiled binaries for macOS, switching to them risks breaking existing customers.
|
||||
If we wanted to start using the official binaries instead of building from source, we should avoid changing previous versions
|
||||
so we remain backwards compatible.
|
||||
@@ -31,6 +31,14 @@ class macOSPythonBuilder : NixPythonBuilder {
|
||||
.SYNOPSIS
|
||||
Prepare system environment by installing dependencies and required packages.
|
||||
#>
|
||||
|
||||
if ($this.Version -eq "3.7.17") {
|
||||
# We have preinstalled ncurses and readLine on the hoster runners. But we need to install bzip2 for
|
||||
# setting up an environemnt
|
||||
# If we get any issues realted to ncurses or readline we can try to run this command
|
||||
# brew install ncurses readline
|
||||
Execute-Command -Command "brew install bzip2"
|
||||
}
|
||||
}
|
||||
|
||||
[void] Configure() {
|
||||
@@ -67,14 +75,19 @@ class macOSPythonBuilder : NixPythonBuilder {
|
||||
|
||||
# For Python 3.7.2 and 3.7.3 we need to provide PATH for zlib to pack it properly. Otherwise the build will fail
|
||||
# with the error: zipimport.ZipImportError: can't decompress data; zlib not available
|
||||
if ($this.Version -eq "3.7.2" -or $this.Version -eq "3.7.3") {
|
||||
if ($this.Version -eq "3.7.2" -or $this.Version -eq "3.7.3" -or $this.Version -eq "3.7.17") {
|
||||
$env:LDFLAGS = "-L/usr/local/opt/zlib/lib"
|
||||
$env:CFLAGS = "-I/usr/local/opt/zlib/include"
|
||||
}
|
||||
|
||||
if ($this.Version -gt "3.7.12") {
|
||||
$configureString += " --with-tcltk-includes='-I /usr/local/opt/tcl-tk/include' --with-tcltk-libs='-L/usr/local/opt/tcl-tk/lib -ltcl8.6 -ltk8.6'"
|
||||
}
|
||||
}
|
||||
|
||||
if ($this.Version -eq "3.7.17") {
|
||||
$env:LDFLAGS += " -L$(brew --prefix bzip2)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix ncurses)/lib"
|
||||
$env:CFLAGS += " -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(brew --prefix ncurses)/include"
|
||||
}
|
||||
}
|
||||
|
||||
### Compile with support of loadable sqlite extensions. Unavailable for Python 2.*
|
||||
@@ -151,6 +164,7 @@ class macOSPythonBuilder : NixPythonBuilder {
|
||||
$variablesToReplace = @{
|
||||
"{{__VERSION_FULL__}}" = $this.Version;
|
||||
"{{__PKG_NAME__}}" = $this.GetPkgName();
|
||||
"{{__ARCH__}}" = $this.Architecture;
|
||||
}
|
||||
|
||||
$variablesToReplace.keys | ForEach-Object { $installationTemplateContent = $installationTemplateContent.Replace($_, $variablesToReplace[$_]) }
|
||||
@@ -166,7 +180,7 @@ class macOSPythonBuilder : NixPythonBuilder {
|
||||
|
||||
$PkgVersion = [semver]"3.11.0-beta.1"
|
||||
|
||||
if ($this.Version -ge $PkgVersion) {
|
||||
if (($this.Version -ge $PkgVersion) -or ($this.Architecture -eq "arm64")) {
|
||||
Write-Host "Download Python $($this.Version) [$($this.Architecture)] package..."
|
||||
$this.DownloadPkg()
|
||||
|
||||
|
||||
@@ -72,6 +72,7 @@ class UbuntuPythonBuilder : NixPythonBuilder {
|
||||
$tkinterInstallString = "sudo apt install -y python-tk tk-dev"
|
||||
}
|
||||
|
||||
Execute-Command -Command "sudo apt-get update"
|
||||
Execute-Command -Command $tkinterInstallString
|
||||
|
||||
### Install dependent packages
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"regex": "python-\\d+\\.\\d+\\.\\d+-(\\w+\\.\\d+)?-?(\\w+)-(\\d+\\.\\d+)?-?(x\\d+)",
|
||||
"regex": "python-\\d+\\.\\d+\\.\\d+-(\\w+\\.\\d+)?-?(\\w+)-(\\d+\\.\\d+)?-?((x|arm)\\d+)",
|
||||
"groups": {
|
||||
"arch": 4,
|
||||
"platform": 2,
|
||||
|
||||
2
helpers
2
helpers
Submodule helpers updated: 896369fc7d...6fbb1f0f20
@@ -2,6 +2,7 @@ set -e
|
||||
|
||||
PYTHON_FULL_VERSION="{{__VERSION_FULL__}}"
|
||||
PYTHON_PKG_NAME="{{__PKG_NAME__}}"
|
||||
ARCH="{{__ARCH__}}"
|
||||
MAJOR_VERSION=$(echo $PYTHON_FULL_VERSION | cut -d '.' -f 1)
|
||||
MINOR_VERSION=$(echo $PYTHON_FULL_VERSION | cut -d '.' -f 2)
|
||||
|
||||
@@ -18,7 +19,7 @@ fi
|
||||
|
||||
PYTHON_TOOLCACHE_PATH=$TOOLCACHE_ROOT/Python
|
||||
PYTHON_TOOLCACHE_VERSION_PATH=$PYTHON_TOOLCACHE_PATH/$PYTHON_FULL_VERSION
|
||||
PYTHON_TOOLCACHE_VERSION_ARCH_PATH=$PYTHON_TOOLCACHE_VERSION_PATH/x64
|
||||
PYTHON_TOOLCACHE_VERSION_ARCH_PATH=$PYTHON_TOOLCACHE_VERSION_PATH/$ARCH
|
||||
PYTHON_FRAMEWORK_PATH="/Library/Frameworks/Python.framework/Versions/${MAJOR_VERSION}.${MINOR_VERSION}"
|
||||
PYTHON_APPLICATION_PATH="/Applications/Python ${MAJOR_VERSION}.${MINOR_VERSION}"
|
||||
|
||||
@@ -29,10 +30,10 @@ if [ ! -d $PYTHON_TOOLCACHE_PATH ]; then
|
||||
else
|
||||
# remove ALL other directories for same major.minor python versions
|
||||
find $PYTHON_TOOLCACHE_PATH -name "${MAJOR_VERSION}.${MINOR_VERSION}.*"|while read python_version;do
|
||||
python_version_x64="$python_version/x64"
|
||||
if [ -e "$python_version_x64" ];then
|
||||
echo "Deleting Python $python_version_x64"
|
||||
rm -rf "$python_version_x64"
|
||||
python_version_arch="$python_version/$ARCH"
|
||||
if [ -e "$python_version_arch" ];then
|
||||
echo "Deleting Python $python_version_arch"
|
||||
rm -rf "$python_version_arch"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
@@ -55,7 +56,7 @@ ln -s ./bin/$PYTHON_MAJOR_DOT_MINOR python
|
||||
|
||||
cd bin/
|
||||
|
||||
# This symlink already exists if Python version with the same major.minor version is installed,
|
||||
# This symlink already exists if Python version with the same major.minor version is installed,
|
||||
# since we do not remove the framework folder
|
||||
if [ ! -f $PYTHON_MAJOR_MINOR ]; then
|
||||
ln -s $PYTHON_MAJOR_DOT_MINOR $PYTHON_MAJOR_MINOR
|
||||
@@ -69,10 +70,10 @@ chmod +x ../python $PYTHON_MAJOR $PYTHON_MAJOR_DOT_MINOR $PYTHON_MAJOR_MINOR pyt
|
||||
|
||||
echo "Upgrading pip..."
|
||||
./python -m ensurepip
|
||||
./python -m pip install --ignore-installed pip --disable-pip-version-check --no-warn-script-location
|
||||
./python -m pip install --ignore-installed pip --disable-pip-version-check --no-warn-script-location --root-user-action=ignore
|
||||
|
||||
echo "Install OpenSSL certificates"
|
||||
sh -e "${PYTHON_APPLICATION_PATH}/Install Certificates.command"
|
||||
|
||||
echo "Create complete file"
|
||||
touch $PYTHON_TOOLCACHE_VERSION_PATH/x64.complete
|
||||
touch $PYTHON_TOOLCACHE_VERSION_PATH/${ARCH}.complete
|
||||
|
||||
@@ -50,7 +50,7 @@ chmod +x ../python $PYTHON_MAJOR $PYTHON_MAJOR_DOT_MINOR $PYTHON_MAJORMINOR pyth
|
||||
|
||||
echo "Upgrading pip..."
|
||||
./python -m ensurepip
|
||||
./python -m pip install --ignore-installed pip --disable-pip-version-check --no-warn-script-location
|
||||
./python -m pip install --ignore-installed pip --disable-pip-version-check --no-warn-script-location --root-user-action=ignore
|
||||
|
||||
echo "Create complete file"
|
||||
touch $PYTHON_TOOLCACHE_VERSION_PATH/x64.complete
|
||||
|
||||
@@ -101,7 +101,9 @@ if ($null -ne $InstalledVersions) {
|
||||
if (Test-Path -Path $InstalledVersion) {
|
||||
Write-Host "Deleting $InstalledVersion..."
|
||||
Remove-Item -Path $InstalledVersion -Recurse -Force
|
||||
Remove-Item -Path "$($InstalledVersion.Parent.FullName)/${Architecture}.complete" -Force -Verbose
|
||||
if (Test-Path -Path "$($InstalledVersion.Parent.FullName)/${Architecture}.complete") {
|
||||
Remove-Item -Path "$($InstalledVersion.Parent.FullName)/${Architecture}.complete" -Force -Verbose
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -132,7 +134,7 @@ if ($MajorVersion -ne "2") {
|
||||
|
||||
Write-Host "Install and upgrade Pip"
|
||||
$PythonExePath = Join-Path -Path $PythonArchPath -ChildPath "python.exe"
|
||||
cmd.exe /c "$PythonExePath -m ensurepip && $PythonExePath -m pip install --upgrade pip --no-warn-script-location"
|
||||
cmd.exe /c "$PythonExePath -m ensurepip && $PythonExePath -m pip install --upgrade pip --no-warn-script-location --root-user-action=ignore"
|
||||
|
||||
Write-Host "Create complete file"
|
||||
New-Item -ItemType File -Path $PythonVersionPath -Name "$Architecture.complete" | Out-Null
|
||||
|
||||
@@ -5,16 +5,16 @@ $Configuration = Read-ConfigurationFile -Filepath $ConfigurationFile
|
||||
|
||||
$stableTestCases = @(
|
||||
@{ ReleaseName = "python-3.8.3-darwin-x64.tar.gz"; ExpectedResult = @{ platform = "darwin"; platform_version = $null; arch = "x64"} },
|
||||
@{ ReleaseName = "python-3.8.3-linux-18.04-x64.tar.gz"; ExpectedResult = @{ platform = "linux"; platform_version = "18.04"; arch = "x64"} },
|
||||
@{ ReleaseName = "python-3.8.3-linux-20.04-x64.tar.gz"; ExpectedResult = @{ platform = "linux"; platform_version = "20.04"; arch = "x64"} },
|
||||
@{ ReleaseName = "python-3.8.3-linux-22.04-x64.tar.gz"; ExpectedResult = @{ platform = "linux"; platform_version = "22.04"; arch = "x64"} },
|
||||
@{ ReleaseName = "python-3.8.3-win32-x64.zip"; ExpectedResult = @{ platform = "win32"; platform_version = $null; arch = "x64"} },
|
||||
@{ ReleaseName = "python-3.8.3-win32-x86.zip"; ExpectedResult = @{ platform = "win32"; platform_version = $null; arch = "x86"} }
|
||||
) | ForEach-Object { $_.Configuration = $Configuration; $_ }
|
||||
|
||||
$unstableTestCases = @(
|
||||
@{ ReleaseName = "python-3.9.0-alpha.2-darwin-x64.tar.gz"; ExpectedResult = @{ platform = "darwin"; platform_version = $null; arch = "x64"} },
|
||||
@{ ReleaseName = "python-3.9.0-rc.4-linux-18.04-x64.tar.gz"; ExpectedResult = @{ platform = "linux"; platform_version = "18.04"; arch = "x64"} },
|
||||
@{ ReleaseName = "python-3.9.0-beta.2-linux-20.04-x64.tar.gz"; ExpectedResult = @{ platform = "linux"; platform_version = "20.04"; arch = "x64"} },
|
||||
@{ ReleaseName = "python-3.9.0-rc.4-linux-22.04-x64.tar.gz"; ExpectedResult = @{ platform = "linux"; platform_version = "22.04"; arch = "x64"} },
|
||||
@{ ReleaseName = "python-3.9.0-beta.2-win32-x64.zip"; ExpectedResult = @{ platform = "win32"; platform_version = $null; arch = "x64"} },
|
||||
@{ ReleaseName = "python-3.9.0-beta.2-win32-x86.zip"; ExpectedResult = @{ platform = "win32"; platform_version = $null; arch = "x86"} }
|
||||
) | ForEach-Object { $_.Configuration = $Configuration; $_ }
|
||||
|
||||
@@ -2,7 +2,9 @@ param (
|
||||
[semver] [Parameter (Mandatory = $true)] [ValidateNotNullOrEmpty()]
|
||||
$Version,
|
||||
[string] [Parameter (Mandatory = $true)] [ValidateNotNullOrEmpty()]
|
||||
$Platform
|
||||
$Platform,
|
||||
[string] [Parameter (Mandatory = $true)] [ValidateNotNullOrEmpty()]
|
||||
$Architecture
|
||||
)
|
||||
|
||||
Import-Module (Join-Path $PSScriptRoot "../helpers/pester-extensions.psm1")
|
||||
@@ -56,7 +58,7 @@ Describe "Tests" {
|
||||
# }
|
||||
# }
|
||||
|
||||
if (($Version -ge "3.2.0") -and ($Version -lt "3.11.0")) {
|
||||
if (($Version -ge "3.2.0") -and ($Version -lt "3.11.0") -and (($Platform -ne "darwin") -or ($Architecture -ne "arm64"))) {
|
||||
It "Check if sqlite3 module is installed" {
|
||||
"python ./sources/python-sqlite3.py" | Should -ReturnZeroExitCode
|
||||
}
|
||||
@@ -80,7 +82,7 @@ Describe "Tests" {
|
||||
|
||||
It "Check if python configuration is correct" {
|
||||
$nativeVersion = Convert-Version -version $Version
|
||||
"python ./sources/python-config-test.py $Version $nativeVersion" | Should -ReturnZeroExitCode
|
||||
"python ./sources/python-config-test.py $Version $nativeVersion $Architecture" | Should -ReturnZeroExitCode
|
||||
}
|
||||
|
||||
It "Check if shared libraries are linked correctly" {
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
import distutils.sysconfig
|
||||
import sysconfig
|
||||
|
||||
from pprint import pprint
|
||||
pprint(sysconfig.get_config_vars())
|
||||
pprint(distutils.sysconfig.get_config_vars())
|
||||
@@ -1,5 +1,3 @@
|
||||
import distutils.sysconfig
|
||||
from distutils.version import LooseVersion
|
||||
import sysconfig
|
||||
import sys
|
||||
import platform
|
||||
@@ -9,12 +7,13 @@ import os
|
||||
os_type = platform.system()
|
||||
version = sys.argv[1]
|
||||
nativeVersion = sys.argv[2]
|
||||
architecture = sys.argv[3]
|
||||
|
||||
versions=version.split(".")
|
||||
version_major=int(versions[0])
|
||||
version_minor=int(versions[1])
|
||||
|
||||
pkg_installer = os_type == 'Darwin' and (version_major == 3 and version_minor >= 11)
|
||||
pkg_installer = os_type == 'Darwin' and ((version_major == 3 and version_minor >= 11) or (architecture == "arm64"))
|
||||
|
||||
lib_dir_path = sysconfig.get_config_var('LIBDIR')
|
||||
ld_library_name = sysconfig.get_config_var('LDLIBRARY')
|
||||
@@ -40,7 +39,7 @@ if lib_dir_path != expected_lib_dir_path:
|
||||
### Validate shared libraries
|
||||
if is_shared:
|
||||
print('%s was built with shared extensions' % ld_library_name)
|
||||
|
||||
|
||||
### Validate libpython extension
|
||||
ld_library_extension = ld_library_name.split('.')[-1]
|
||||
if ld_library_extension != expected_ld_library_extension:
|
||||
@@ -54,7 +53,7 @@ else:
|
||||
### Validate macOS
|
||||
if os_type == 'Darwin':
|
||||
### Validate openssl links
|
||||
if LooseVersion(nativeVersion) < LooseVersion("3.7.0"):
|
||||
if version_major == 3 and version_minor < 7:
|
||||
expected_ldflags = '-L/usr/local/opt/openssl@1.1/lib'
|
||||
ldflags = sysconfig.get_config_var('LDFLAGS')
|
||||
|
||||
@@ -64,7 +63,7 @@ if os_type == 'Darwin':
|
||||
else:
|
||||
expected_openssl_includes = '-I/usr/local/opt/openssl@1.1/include'
|
||||
expected_openssl_ldflags ='-L/usr/local/opt/openssl@1.1/lib'
|
||||
|
||||
|
||||
openssl_includes = sysconfig.get_config_var('OPENSSL_INCLUDES')
|
||||
openssl_ldflags = sysconfig.get_config_var('OPENSSL_LDFLAGS')
|
||||
|
||||
@@ -81,4 +80,4 @@ if os_type == 'Darwin':
|
||||
if sys.version_info < (3, 12):
|
||||
if not have_libreadline:
|
||||
print('Missing libreadline')
|
||||
exit(1)
|
||||
exit(1)
|
||||
|
||||
@@ -7,7 +7,6 @@ from __future__ import print_function
|
||||
|
||||
import importlib
|
||||
import sys
|
||||
import platform
|
||||
|
||||
# The Python standard library as of Python 3.0
|
||||
standard_library = [
|
||||
@@ -266,17 +265,36 @@ if sys.version_info >= (3, 10):
|
||||
if sys.version_info >= (3, 11):
|
||||
standard_library.remove('binhex')
|
||||
|
||||
# Exclude tkinter and turtle for Python 3.11 alpha temporarily
|
||||
if sys.version_info >= (3, 11) and platform.system() == 'Linux' and '18.04' in platform.version():
|
||||
standard_library.remove('tkinter')
|
||||
standard_library.remove('turtle')
|
||||
|
||||
# 'smtpd', 'asyncore' and 'asynchat' modules have been removed from Python 3.12
|
||||
# https://docs.python.org/dev/whatsnew/3.12.html
|
||||
if sys.version_info >= (3, 12):
|
||||
standard_library.remove('distutils')
|
||||
standard_library.remove('imp')
|
||||
standard_library.remove('smtpd')
|
||||
standard_library.remove('asyncore')
|
||||
standard_library.remove('asynchat')
|
||||
|
||||
# 'aifc', 'cgi', 'cgitb', 'chunk', 'crypt', 'imghdr', 'lib2to3', 'mailcap', 'nntplib',
|
||||
# 'pipes', 'sndhdr', 'sunau', 'telnetlib', 'uu' and 'xdrlib' modules have been removed
|
||||
# from Python 3.13
|
||||
# https://docs.python.org/dev/whatsnew/3.13.html
|
||||
if sys.version_info >= (3, 13):
|
||||
standard_library.remove('aifc')
|
||||
standard_library.remove('cgi')
|
||||
standard_library.remove('cgitb')
|
||||
standard_library.remove('chunk')
|
||||
standard_library.remove('crypt')
|
||||
standard_library.remove('imghdr')
|
||||
standard_library.remove('lib2to3')
|
||||
standard_library.remove('mailcap')
|
||||
standard_library.remove('nntplib')
|
||||
standard_library.remove('pipes')
|
||||
standard_library.remove('sndhdr')
|
||||
standard_library.remove('sunau')
|
||||
standard_library.remove('telnetlib')
|
||||
standard_library.remove('uu')
|
||||
standard_library.remove('xdrlib')
|
||||
|
||||
# Remove tkinter and Easter eggs
|
||||
excluded_modules = [
|
||||
'antigravity',
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user