From 2d9a224e6c3759f8f899490ee693523d1f40c496 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 5 Aug 2026 21:35:05 +0300 Subject: [PATCH 1/5] Add macos-26-intel to CI * Fix macos_build_bundled_dependencies in macos-26-intel It has a different set of preinstalled OpenSSL formulae --- .github/workflows/modified_scripts_build.yml | 32 +++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 1ce8594c..205b7e89 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -43,28 +43,32 @@ jobs: import packaging.version result=[] + def exclude_macos_intel(result, python_version): + result.append({'os':'macos-15-intel','python-version':python_version}) + result.append({'os':'macos-26-intel','python-version':python_version}) + for line in os.environ['versions'].splitlines(): - if m:=re.match(r'([^-]+)-(\d+\.\d+)-(\d+\.\d+.\d+)', line): - name, version = m.group(1), packaging.version.Version(m.group(3)) + if m:=re.match(r'miniconda3-\d+\.\d+-(\d+\.\d+.\d+)', line): + version = packaging.version.Version(m.group(1)) # Miniconda dropped MacOS x64 support - if (name == 'miniconda3' and version >= packaging.version.Version('25.9.1')): - result.append({'os':'macos-15-intel','python-version':line}) + if version >= packaging.version.Version('25.9.1'): + exclude_macos_intel(result, line) - if m:=re.match(r'([^-]+)-(\d+\.\d+)', line): - name, version = m.group(1), packaging.version.Version(m.group(2)) + if m:=re.match(r'anaconda3-(\d+\.\d+)', line): + version = packaging.version.Version(m.group(1)) # Anaconda dropped MacOS x64 support - if name == 'anaconda3' and version >= packaging.version.Version('2025.12'): - result.append({'os':'macos-15-intel','python-version':line}) + if version >= packaging.version.Version('2025.12'): + exclude_macos_intel(result, line) if m:=re.match(r'graalpy[^-]*-(community-)?(\d+\.\d+.\d+)', line): version = packaging.version.Version(m.group(2)) # GraalPy dropped MacOS x64 support if version >= packaging.version.Version('25.0.2'): - result.append({'os':'macos-15-intel','python-version':line}) + exclude_macos_intel(result, line) EOF = str(random.getrandbits(15*8)) @@ -91,6 +95,7 @@ jobs: - macos-15 - macos-15-intel - macos-26 + - macos-26-intel exclude: ${{fromJson(needs.discover_modified_scripts.outputs.versions_macos_build_exclude)}} runs-on: ${{ matrix.os }} steps: @@ -153,7 +158,12 @@ jobs: fail-fast: false matrix: python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions_cpython_only)}} - os: ["macos-14", "macos-15", "macos-15-intel"] + os: + - macos-14 + - macos-15 + - macos-15-intel + - macos-26 + - macos-26-intel runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v7 @@ -165,7 +175,7 @@ jobs: - run: | #prerequisites brew install sqlite3 xz tcl-tk@8 libb2 zstd - "$GITHUB_WORKSPACE/.github/workflows/scripts/brew-uninstall-cascade.sh" openssl@3 openssl@1.1 readline + "$GITHUB_WORKSPACE/.github/workflows/scripts/brew-uninstall-cascade.sh" $(brew list | grep -E '^openssl(@|$)') readline if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV From 340348d98d799cfb14330a53c156403034859f45 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 6 Aug 2026 19:19:46 +0300 Subject: [PATCH 2/5] - code irrelevant to CPython in CPython-specific scenarios --- .github/workflows/modified_scripts_build.yml | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 205b7e89..360b464c 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -176,11 +176,6 @@ jobs: #prerequisites brew install sqlite3 xz tcl-tk@8 libb2 zstd "$GITHUB_WORKSPACE/.github/workflows/scripts/brew-uninstall-cascade.sh" $(brew list | grep -E '^openssl(@|$)') readline - if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then - export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 - echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV - pyenv install $PYENV_BOOTSTRAP_VERSION - fi - run: | #build pyenv --debug install ${{ matrix.python-version }} && rc=$? || rc=$? @@ -289,13 +284,8 @@ jobs: #prerequisites sudo apt-get update -q; sudo apt-get install -yq make build-essential \ libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \ - curl llvm libncurses5-dev libncursesw5-dev \ + curl libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev - if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then - export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 - echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV - pyenv install $PYENV_BOOTSTRAP_VERSION - fi - run: | #build pyenv --debug install ${{ matrix.python-version }} && rc=$? || rc=$? From 0e2e214f560843b17633841d950512e820d8b2f2 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 6 Aug 2026 19:20:14 +0300 Subject: [PATCH 3/5] Fix ubuntu_build_tar_gz --- .github/workflows/modified_scripts_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 360b464c..4c69e8bb 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -279,7 +279,7 @@ jobs: export PYENV_ROOT="$GITHUB_WORKSPACE" echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - echo "_PYTHON_BUILD_FORCE_SKIP_XZ=1" >> $GITHUB_PATH + echo "_PYTHON_BUILD_FORCE_SKIP_XZ=1" >> $GITHUB_ENV - run: | #prerequisites sudo apt-get update -q; sudo apt-get install -yq make build-essential \ From 1cc9e770ae8dd212e5836a3da89de14f84ed07ea Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 6 Aug 2026 19:37:33 +0300 Subject: [PATCH 4/5] Fix regexes --- .github/workflows/modified_scripts_build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 4c69e8bb..988420e5 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -49,7 +49,7 @@ jobs: for line in os.environ['versions'].splitlines(): - if m:=re.match(r'miniconda3-\d+\.\d+-(\d+\.\d+.\d+)', line): + if m:=re.match(r'miniconda3-\d+\.\d+-(\d+\.\d+\.\d+)', line): version = packaging.version.Version(m.group(1)) # Miniconda dropped MacOS x64 support @@ -63,7 +63,7 @@ jobs: if version >= packaging.version.Version('2025.12'): exclude_macos_intel(result, line) - if m:=re.match(r'graalpy[^-]*-(community-)?(\d+\.\d+.\d+)', line): + if m:=re.match(r'graalpy[^-]*-(community-)?(\d+\.\d+\.\d+)', line): version = packaging.version.Version(m.group(2)) # GraalPy dropped MacOS x64 support From 9d6cf587b789d5b5ad9fa3072cfb60b7db273ca8 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 6 Aug 2026 23:38:47 +0300 Subject: [PATCH 5/5] Run the discover job on slim --- .github/workflows/modified_scripts_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 988420e5..900f927f 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -2,7 +2,7 @@ name: modified_scripts on: [pull_request] jobs: discover_modified_scripts: - runs-on: ubuntu-latest + runs-on: ubuntu-slim outputs: versions: ${{steps.modified-versions.outputs.versions}} versions_cpython_only: ${{steps.modified-versions.outputs.versions_cpython_only}}