mirror of
https://github.com/actions/python-versions.git
synced 2025-12-15 15:32:11 +00:00
Compare commits
36 Commits
3.10.11-46
...
3.8.10-883
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
29394d0042 | ||
|
|
3545308dfe | ||
|
|
fa96e2aca9 | ||
|
|
1dbece3419 | ||
|
|
627cd1691f | ||
|
|
c685daccab | ||
|
|
eaf1258a7f | ||
|
|
9903e2d963 | ||
|
|
310d6e4aea | ||
|
|
af22c2b8e4 | ||
|
|
e605eda13a | ||
|
|
96dae786ca | ||
|
|
e642abaef8 | ||
|
|
381057ce36 | ||
|
|
5da3a44cc2 | ||
|
|
3880dd814a | ||
|
|
ba0b46a6a1 | ||
|
|
b81fc1cff7 | ||
|
|
f4b33352f0 | ||
|
|
8e2e28992d | ||
|
|
38c560b52f | ||
|
|
3dca5896d3 | ||
|
|
1d88a8f21b | ||
|
|
c4456b9062 | ||
|
|
9d3aa48b3c | ||
|
|
c1cf5de988 | ||
|
|
5a451d6492 | ||
|
|
87d20c715f | ||
|
|
225ba42747 | ||
|
|
ab4e944c0f | ||
|
|
7693cef346 | ||
|
|
c7573bf15e | ||
|
|
80893f523f | ||
|
|
6d04944fbd | ||
|
|
256e6ddd57 | ||
|
|
c6bbc68f56 |
22
.github/workflows/build-python-packages.yml
vendored
22
.github/workflows/build-python-packages.yml
vendored
@@ -15,7 +15,7 @@ on:
|
|||||||
PLATFORMS:
|
PLATFORMS:
|
||||||
description: 'Platforms for execution in "os" or "os_arch" format (arch is "x64" by default)'
|
description: 'Platforms for execution in "os" or "os_arch" format (arch is "x64" by default)'
|
||||||
required: true
|
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:
|
pull_request:
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- 'versions-manifest.json'
|
- 'versions-manifest.json'
|
||||||
@@ -39,7 +39,7 @@ jobs:
|
|||||||
- name: Generate execution matrix
|
- name: Generate execution matrix
|
||||||
id: generate-matrix
|
id: generate-matrix
|
||||||
run: |
|
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 = @()
|
$matrix = @()
|
||||||
|
|
||||||
foreach ($configuration in $configurations) {
|
foreach ($configuration in $configurations) {
|
||||||
@@ -155,6 +155,7 @@ jobs:
|
|||||||
$pesterContainer = New-PesterContainer -Path './python-tests.ps1' -Data @{
|
$pesterContainer = New-PesterContainer -Path './python-tests.ps1' -Data @{
|
||||||
Version="${{ env.VERSION }}";
|
Version="${{ env.VERSION }}";
|
||||||
Platform="${{ matrix.platform }}";
|
Platform="${{ matrix.platform }}";
|
||||||
|
Architecture="${{ matrix.arch }}";
|
||||||
}
|
}
|
||||||
$Result = Invoke-Pester -Container $pesterContainer -PassThru
|
$Result = Invoke-Pester -Container $pesterContainer -PassThru
|
||||||
if ($Result.FailedCount -gt 0) {
|
if ($Result.FailedCount -gt 0) {
|
||||||
@@ -182,6 +183,18 @@ jobs:
|
|||||||
body: |
|
body: |
|
||||||
Python ${{ env.VERSION }}
|
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
|
- name: Upload release assets
|
||||||
uses: actions/github-script@v6
|
uses: actions/github-script@v6
|
||||||
with:
|
with:
|
||||||
@@ -189,14 +202,15 @@ jobs:
|
|||||||
script: |
|
script: |
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
for (let artifactDir of fs.readdirSync('.')) {
|
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`);
|
console.log(`Upload ${artifactName} asset`);
|
||||||
github.rest.repos.uploadReleaseAsset({
|
github.rest.repos.uploadReleaseAsset({
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
release_id: ${{ steps.create_release.outputs.id }},
|
release_id: ${{ steps.create_release.outputs.id }},
|
||||||
name: artifactName,
|
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:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: [macos-latest, windows-latest, ubuntu-18.04, ubuntu-20.04]
|
os: [macos-latest, windows-latest, ubuntu-20.04, ubuntu-22.04]
|
||||||
python: [3.5.4, 3.6.7, 3.7.5, 3.8.1]
|
python: [3.9.12, 3.10.8, 3.11.8]
|
||||||
steps:
|
steps:
|
||||||
- name: setup-python ${{ matrix.python }}
|
- name: setup-python ${{ matrix.python }}
|
||||||
uses: actions/setup-python@v4
|
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:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: [macos-latest, windows-latest, ubuntu-18.04, ubuntu-20.04]
|
os: [macos-latest, windows-latest, ubuntu-20.04, ubuntu-22.04]
|
||||||
steps:
|
steps:
|
||||||
- name: Setup Python ${{ github.event.inputs.version }}
|
- name: Setup Python ${{ github.event.inputs.version }}
|
||||||
uses: actions/setup-python@main
|
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.
|
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
|
## Contribution
|
||||||
Contributions are welcome! See [Contributor's Guide](./CONTRIBUTING.md) for more details about contribution process and code structure
|
Contributions are welcome! See [Contributor's Guide](./CONTRIBUTING.md) for more details about contribution process and code structure
|
||||||
|
|||||||
@@ -31,6 +31,14 @@ class macOSPythonBuilder : NixPythonBuilder {
|
|||||||
.SYNOPSIS
|
.SYNOPSIS
|
||||||
Prepare system environment by installing dependencies and required packages.
|
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() {
|
[void] Configure() {
|
||||||
@@ -67,7 +75,7 @@ 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
|
# 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
|
# 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:LDFLAGS = "-L/usr/local/opt/zlib/lib"
|
||||||
$env:CFLAGS = "-I/usr/local/opt/zlib/include"
|
$env:CFLAGS = "-I/usr/local/opt/zlib/include"
|
||||||
}
|
}
|
||||||
@@ -75,6 +83,11 @@ class macOSPythonBuilder : NixPythonBuilder {
|
|||||||
if ($this.Version -gt "3.7.12") {
|
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'"
|
$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.*
|
### Compile with support of loadable sqlite extensions. Unavailable for Python 2.*
|
||||||
@@ -151,6 +164,7 @@ class macOSPythonBuilder : NixPythonBuilder {
|
|||||||
$variablesToReplace = @{
|
$variablesToReplace = @{
|
||||||
"{{__VERSION_FULL__}}" = $this.Version;
|
"{{__VERSION_FULL__}}" = $this.Version;
|
||||||
"{{__PKG_NAME__}}" = $this.GetPkgName();
|
"{{__PKG_NAME__}}" = $this.GetPkgName();
|
||||||
|
"{{__ARCH__}}" = $this.Architecture;
|
||||||
}
|
}
|
||||||
|
|
||||||
$variablesToReplace.keys | ForEach-Object { $installationTemplateContent = $installationTemplateContent.Replace($_, $variablesToReplace[$_]) }
|
$variablesToReplace.keys | ForEach-Object { $installationTemplateContent = $installationTemplateContent.Replace($_, $variablesToReplace[$_]) }
|
||||||
@@ -166,7 +180,7 @@ class macOSPythonBuilder : NixPythonBuilder {
|
|||||||
|
|
||||||
$PkgVersion = [semver]"3.11.0-beta.1"
|
$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..."
|
Write-Host "Download Python $($this.Version) [$($this.Architecture)] package..."
|
||||||
$this.DownloadPkg()
|
$this.DownloadPkg()
|
||||||
|
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ class UbuntuPythonBuilder : NixPythonBuilder {
|
|||||||
$tkinterInstallString = "sudo apt install -y python-tk tk-dev"
|
$tkinterInstallString = "sudo apt install -y python-tk tk-dev"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Execute-Command -Command "sudo apt-get update"
|
||||||
Execute-Command -Command $tkinterInstallString
|
Execute-Command -Command $tkinterInstallString
|
||||||
|
|
||||||
### Install dependent packages
|
### 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": {
|
"groups": {
|
||||||
"arch": 4,
|
"arch": 4,
|
||||||
"platform": 2,
|
"platform": 2,
|
||||||
|
|||||||
2
helpers
2
helpers
Submodule helpers updated: 896369fc7d...6fbb1f0f20
@@ -2,6 +2,7 @@ set -e
|
|||||||
|
|
||||||
PYTHON_FULL_VERSION="{{__VERSION_FULL__}}"
|
PYTHON_FULL_VERSION="{{__VERSION_FULL__}}"
|
||||||
PYTHON_PKG_NAME="{{__PKG_NAME__}}"
|
PYTHON_PKG_NAME="{{__PKG_NAME__}}"
|
||||||
|
ARCH="{{__ARCH__}}"
|
||||||
MAJOR_VERSION=$(echo $PYTHON_FULL_VERSION | cut -d '.' -f 1)
|
MAJOR_VERSION=$(echo $PYTHON_FULL_VERSION | cut -d '.' -f 1)
|
||||||
MINOR_VERSION=$(echo $PYTHON_FULL_VERSION | cut -d '.' -f 2)
|
MINOR_VERSION=$(echo $PYTHON_FULL_VERSION | cut -d '.' -f 2)
|
||||||
|
|
||||||
@@ -18,7 +19,7 @@ fi
|
|||||||
|
|
||||||
PYTHON_TOOLCACHE_PATH=$TOOLCACHE_ROOT/Python
|
PYTHON_TOOLCACHE_PATH=$TOOLCACHE_ROOT/Python
|
||||||
PYTHON_TOOLCACHE_VERSION_PATH=$PYTHON_TOOLCACHE_PATH/$PYTHON_FULL_VERSION
|
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_FRAMEWORK_PATH="/Library/Frameworks/Python.framework/Versions/${MAJOR_VERSION}.${MINOR_VERSION}"
|
||||||
PYTHON_APPLICATION_PATH="/Applications/Python ${MAJOR_VERSION}.${MINOR_VERSION}"
|
PYTHON_APPLICATION_PATH="/Applications/Python ${MAJOR_VERSION}.${MINOR_VERSION}"
|
||||||
|
|
||||||
@@ -29,10 +30,10 @@ if [ ! -d $PYTHON_TOOLCACHE_PATH ]; then
|
|||||||
else
|
else
|
||||||
# remove ALL other directories for same major.minor python versions
|
# remove ALL other directories for same major.minor python versions
|
||||||
find $PYTHON_TOOLCACHE_PATH -name "${MAJOR_VERSION}.${MINOR_VERSION}.*"|while read python_version;do
|
find $PYTHON_TOOLCACHE_PATH -name "${MAJOR_VERSION}.${MINOR_VERSION}.*"|while read python_version;do
|
||||||
python_version_x64="$python_version/x64"
|
python_version_arch="$python_version/$ARCH"
|
||||||
if [ -e "$python_version_x64" ];then
|
if [ -e "$python_version_arch" ];then
|
||||||
echo "Deleting Python $python_version_x64"
|
echo "Deleting Python $python_version_arch"
|
||||||
rm -rf "$python_version_x64"
|
rm -rf "$python_version_arch"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
@@ -68,11 +69,12 @@ fi
|
|||||||
chmod +x ../python $PYTHON_MAJOR $PYTHON_MAJOR_DOT_MINOR $PYTHON_MAJOR_MINOR python
|
chmod +x ../python $PYTHON_MAJOR $PYTHON_MAJOR_DOT_MINOR $PYTHON_MAJOR_MINOR python
|
||||||
|
|
||||||
echo "Upgrading pip..."
|
echo "Upgrading pip..."
|
||||||
|
export PIP_ROOT_USER_ACTION=ignore
|
||||||
./python -m ensurepip
|
./python -m ensurepip
|
||||||
./python -m pip install --ignore-installed pip --disable-pip-version-check --no-warn-script-location --root-user-action=ignore
|
./python -m pip install --ignore-installed pip --disable-pip-version-check --no-warn-script-location
|
||||||
|
|
||||||
echo "Install OpenSSL certificates"
|
echo "Install OpenSSL certificates"
|
||||||
sh -e "${PYTHON_APPLICATION_PATH}/Install Certificates.command"
|
sh -e "${PYTHON_APPLICATION_PATH}/Install Certificates.command"
|
||||||
|
|
||||||
echo "Create complete file"
|
echo "Create complete file"
|
||||||
touch $PYTHON_TOOLCACHE_VERSION_PATH/x64.complete
|
touch $PYTHON_TOOLCACHE_VERSION_PATH/${ARCH}.complete
|
||||||
|
|||||||
@@ -5,16 +5,16 @@ $Configuration = Read-ConfigurationFile -Filepath $ConfigurationFile
|
|||||||
|
|
||||||
$stableTestCases = @(
|
$stableTestCases = @(
|
||||||
@{ ReleaseName = "python-3.8.3-darwin-x64.tar.gz"; ExpectedResult = @{ platform = "darwin"; platform_version = $null; arch = "x64"} },
|
@{ 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-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-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"} }
|
@{ ReleaseName = "python-3.8.3-win32-x86.zip"; ExpectedResult = @{ platform = "win32"; platform_version = $null; arch = "x86"} }
|
||||||
) | ForEach-Object { $_.Configuration = $Configuration; $_ }
|
) | ForEach-Object { $_.Configuration = $Configuration; $_ }
|
||||||
|
|
||||||
$unstableTestCases = @(
|
$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-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-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-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"} }
|
@{ ReleaseName = "python-3.9.0-beta.2-win32-x86.zip"; ExpectedResult = @{ platform = "win32"; platform_version = $null; arch = "x86"} }
|
||||||
) | ForEach-Object { $_.Configuration = $Configuration; $_ }
|
) | ForEach-Object { $_.Configuration = $Configuration; $_ }
|
||||||
|
|||||||
@@ -2,7 +2,9 @@ param (
|
|||||||
[semver] [Parameter (Mandatory = $true)] [ValidateNotNullOrEmpty()]
|
[semver] [Parameter (Mandatory = $true)] [ValidateNotNullOrEmpty()]
|
||||||
$Version,
|
$Version,
|
||||||
[string] [Parameter (Mandatory = $true)] [ValidateNotNullOrEmpty()]
|
[string] [Parameter (Mandatory = $true)] [ValidateNotNullOrEmpty()]
|
||||||
$Platform
|
$Platform,
|
||||||
|
[string] [Parameter (Mandatory = $true)] [ValidateNotNullOrEmpty()]
|
||||||
|
$Architecture
|
||||||
)
|
)
|
||||||
|
|
||||||
Import-Module (Join-Path $PSScriptRoot "../helpers/pester-extensions.psm1")
|
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" {
|
It "Check if sqlite3 module is installed" {
|
||||||
"python ./sources/python-sqlite3.py" | Should -ReturnZeroExitCode
|
"python ./sources/python-sqlite3.py" | Should -ReturnZeroExitCode
|
||||||
}
|
}
|
||||||
@@ -80,7 +82,7 @@ Describe "Tests" {
|
|||||||
|
|
||||||
It "Check if python configuration is correct" {
|
It "Check if python configuration is correct" {
|
||||||
$nativeVersion = Convert-Version -version $Version
|
$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" {
|
It "Check if shared libraries are linked correctly" {
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
import distutils.sysconfig
|
|
||||||
import sysconfig
|
import sysconfig
|
||||||
|
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
pprint(sysconfig.get_config_vars())
|
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 sysconfig
|
||||||
import sys
|
import sys
|
||||||
import platform
|
import platform
|
||||||
@@ -9,12 +7,13 @@ import os
|
|||||||
os_type = platform.system()
|
os_type = platform.system()
|
||||||
version = sys.argv[1]
|
version = sys.argv[1]
|
||||||
nativeVersion = sys.argv[2]
|
nativeVersion = sys.argv[2]
|
||||||
|
architecture = sys.argv[3]
|
||||||
|
|
||||||
versions=version.split(".")
|
versions=version.split(".")
|
||||||
version_major=int(versions[0])
|
version_major=int(versions[0])
|
||||||
version_minor=int(versions[1])
|
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')
|
lib_dir_path = sysconfig.get_config_var('LIBDIR')
|
||||||
ld_library_name = sysconfig.get_config_var('LDLIBRARY')
|
ld_library_name = sysconfig.get_config_var('LDLIBRARY')
|
||||||
@@ -54,7 +53,7 @@ else:
|
|||||||
### Validate macOS
|
### Validate macOS
|
||||||
if os_type == 'Darwin':
|
if os_type == 'Darwin':
|
||||||
### Validate openssl links
|
### 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'
|
expected_ldflags = '-L/usr/local/opt/openssl@1.1/lib'
|
||||||
ldflags = sysconfig.get_config_var('LDFLAGS')
|
ldflags = sysconfig.get_config_var('LDFLAGS')
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ from __future__ import print_function
|
|||||||
|
|
||||||
import importlib
|
import importlib
|
||||||
import sys
|
import sys
|
||||||
import platform
|
|
||||||
|
|
||||||
# The Python standard library as of Python 3.0
|
# The Python standard library as of Python 3.0
|
||||||
standard_library = [
|
standard_library = [
|
||||||
@@ -266,17 +265,36 @@ if sys.version_info >= (3, 10):
|
|||||||
if sys.version_info >= (3, 11):
|
if sys.version_info >= (3, 11):
|
||||||
standard_library.remove('binhex')
|
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
|
# '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):
|
if sys.version_info >= (3, 12):
|
||||||
|
standard_library.remove('distutils')
|
||||||
|
standard_library.remove('imp')
|
||||||
standard_library.remove('smtpd')
|
standard_library.remove('smtpd')
|
||||||
standard_library.remove('asyncore')
|
standard_library.remove('asyncore')
|
||||||
standard_library.remove('asynchat')
|
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
|
# Remove tkinter and Easter eggs
|
||||||
excluded_modules = [
|
excluded_modules = [
|
||||||
'antigravity',
|
'antigravity',
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user