From d56e33325e064fc903105e7199aa590eef88cb00 Mon Sep 17 00:00:00 2001 From: "Ralf W. Grosse-Kunstleve" Date: Sun, 11 Dec 2022 16:58:28 -0800 Subject: [PATCH 1/3] Replace upstream.yml with new python312.yml --- .github/workflows/python312.yml | 140 ++++++++++++++++++++++++++++++++ .github/workflows/upstream.yml | 114 -------------------------- 2 files changed, 140 insertions(+), 114 deletions(-) create mode 100644 .github/workflows/python312.yml delete mode 100644 .github/workflows/upstream.yml diff --git a/.github/workflows/python312.yml b/.github/workflows/python312.yml new file mode 100644 index 0000000000..b296e9c632 --- /dev/null +++ b/.github/workflows/python312.yml @@ -0,0 +1,140 @@ +name: Python312 + +on: + workflow_dispatch: + pull_request: + +concurrency: + group: python312-${{ github.ref }} + cancel-in-progress: false + +env: + PYTEST_TIMEOUT: 300 + +jobs: + standard: + name: "🐍 3.12 latest • ubuntu-latest • x64" + runs-on: ubuntu-latest + if: "contains(github.event.pull_request.labels.*.name, 'python dev')" + + steps: + - name: Show env + run: env + + - uses: actions/checkout@v3 + + - name: Setup Python 3.12 + uses: actions/setup-python@v4 + with: + python-version: "3.12-dev" + + - name: Setup Boost + run: sudo apt-get install libboost-dev + + - name: Update CMake + uses: jwlawson/actions-setup-cmake@v1.13 + + - name: Run pip installs + run: | + python -m pip install --upgrade pip + python -m pip install --prefer-binary -r tests/requirements.txt + # python -m pip install --prefer-binary numpy # SLOW + # python -m pip install --prefer-binary scipy # FAILED ~Nov 2022 + + - name: Show platform info + run: python -m platform + + - name: Show CMake version + run: cmake --version + + # FIRST BUILD + - name: Configure C++11 + run: > + cmake -S . -B build11 + -DCMAKE_VERBOSE_MAKEFILE=ON + -DPYBIND11_WERROR=ON + -DDOWNLOAD_CATCH=ON + -DDOWNLOAD_EIGEN=ON + -DCMAKE_CXX_STANDARD=11 + -DCMAKE_BUILD_TYPE=Debug + + - name: Build C++11 + run: cmake --build build11 -j 2 + + - name: Python tests C++11 + run: cmake --build build11 --target pytest -j 2 + + # python-3.12.0-alpha.1-linux-22.04-x64.tar.gz PASSED + # python-3.12.0-alpha.2-linux-22.04-x64.tar.gz FAILED + # python-3.12.0-alpha.3-linux-22.04-x64.tar.gz FAILED + # free(): invalid pointer + # Custom PyConfig + # /home/runner/work/pybind11/pybind11/tests/test_embed/test_interpreter.cpp:175 + # /home/runner/work/pybind11/pybind11/tests/test_embed/test_interpreter.cpp:179: FAILED: + # gdb traceback points here: + # https://github.com/python/cpython/blame/54289f85b2af1ecf046089ddf535dda1bdf6af24/Python/import.c#L524 + # - name: C++ tests C++11 + # run: cmake --build build11 --target cpptest -j 2 + + - name: Interface test C++11 + run: cmake --build build11 --target test_cmake_build + + - name: Clean directory + run: git clean -fdx + + # SECOND BUILD + - name: Configure C++17 + run: > + cmake -S . -B build17 + -DCMAKE_VERBOSE_MAKEFILE=ON + -DPYBIND11_WERROR=ON + -DDOWNLOAD_CATCH=ON + -DDOWNLOAD_EIGEN=ON + -DCMAKE_CXX_STANDARD=17 + -DCMAKE_BUILD_TYPE=Debug + + - name: Build C++17 + run: cmake --build build17 -j 2 + + - name: Python tests C++17 + run: cmake --build build17 --target pytest + + # - name: C++ tests C++17 + # run: cmake --build build17 --target cpptest + + - name: Interface test C++17 + run: cmake --build build17 --target test_cmake_build + + - name: Clean directory + run: git clean -fdx + + # THIRD BUILD + - name: Configure C++17 max DPYBIND11_INTERNALS_VERSION + run: > + cmake -S . -B build17max + -DCMAKE_VERBOSE_MAKEFILE=ON + -DPYBIND11_WERROR=ON + -DDOWNLOAD_CATCH=ON + -DDOWNLOAD_EIGEN=ON + -DCMAKE_CXX_STANDARD=17 + -DCMAKE_BUILD_TYPE=Debug + -DPYBIND11_INTERNALS_VERSION=10000000 + + - name: Build C++17 max DPYBIND11_INTERNALS_VERSION + run: cmake --build build17max -j 2 + + - name: Python tests C++17 max DPYBIND11_INTERNALS_VERSION + run: cmake --build build17max --target pytest + + # - name: C++ tests C++17 max DPYBIND11_INTERNALS_VERSION + # run: cmake --build build17max --target cpptest + + - name: Interface test C++17 max DPYBIND11_INTERNALS_VERSION + run: cmake --build build17max --target test_cmake_build + + # Ensure the setup_helpers module can build packages using setuptools + - name: Setuptools helpers test + run: pytest tests/extra_setuptools + + - name: Clean directory + run: git clean -fdx diff --git a/.github/workflows/upstream.yml b/.github/workflows/upstream.yml deleted file mode 100644 index a15861ee47..0000000000 --- a/.github/workflows/upstream.yml +++ /dev/null @@ -1,114 +0,0 @@ - -name: Upstream - -on: - workflow_dispatch: - pull_request: - -concurrency: - group: upstream-${{ github.ref }} - cancel-in-progress: true - -env: - PIP_ONLY_BINARY: numpy - # For cmake: - VERBOSE: 1 - -jobs: - standard: - name: "🐍 3.11 latest internals • ubuntu-latest • x64" - runs-on: ubuntu-latest - if: "contains(github.event.pull_request.labels.*.name, 'python dev')" - - steps: - - uses: actions/checkout@v3 - - - name: Setup Python 3.11 - uses: actions/setup-python@v4 - with: - python-version: "3.11-dev" - - - name: Setup Boost (Linux) - if: runner.os == 'Linux' - run: sudo apt-get install libboost-dev - - - name: Update CMake - uses: jwlawson/actions-setup-cmake@v1.13 - - - name: Prepare env - run: | - python -m pip install -r tests/requirements.txt - - - name: Setup annotations on Linux - if: runner.os == 'Linux' - run: python -m pip install pytest-github-actions-annotate-failures - - # First build - C++11 mode and inplace - - name: Configure C++11 - run: > - cmake -S . -B . - -DPYBIND11_WERROR=ON - -DDOWNLOAD_CATCH=ON - -DDOWNLOAD_EIGEN=ON - -DCMAKE_CXX_STANDARD=11 - - - name: Build C++11 - run: cmake --build . -j 2 - - - name: Python tests C++11 - run: cmake --build . --target pytest -j 2 - - - name: C++11 tests - run: cmake --build . --target cpptest -j 2 - - - name: Interface test C++11 - run: cmake --build . --target test_cmake_build - - - name: Clean directory - run: git clean -fdx - - # Second build - C++17 mode and in a build directory - - name: Configure C++17 - run: > - cmake -S . -B build2 - -DPYBIND11_WERROR=ON - -DDOWNLOAD_CATCH=ON - -DDOWNLOAD_EIGEN=ON - -DCMAKE_CXX_STANDARD=17 - ${{ matrix.args }} - ${{ matrix.args2 }} - - - name: Build - run: cmake --build build2 -j 2 - - - name: Python tests - run: cmake --build build2 --target pytest - - - name: C++ tests - run: cmake --build build2 --target cpptest - - # Third build - C++17 mode with unstable ABI - - name: Configure (unstable ABI) - run: > - cmake -S . -B build3 - -DPYBIND11_WERROR=ON - -DDOWNLOAD_CATCH=ON - -DDOWNLOAD_EIGEN=ON - -DCMAKE_CXX_STANDARD=17 - -DPYBIND11_INTERNALS_VERSION=10000000 - "-DPYBIND11_TEST_OVERRIDE=test_call_policies.cpp;test_gil_scoped.cpp;test_thread.cpp" - ${{ matrix.args }} - - - name: Build (unstable ABI) - run: cmake --build build3 -j 2 - - - name: Python tests (unstable ABI) - run: cmake --build build3 --target pytest - - - name: Interface test - run: cmake --build build3 --target test_cmake_build - - # This makes sure the setup_helpers module can build packages using - # setuptools - - name: Setuptools helpers test - run: pytest tests/extra_setuptools From 0aac514b76bfde8668ce63a67546ac054037bc8d Mon Sep 17 00:00:00 2001 From: "Ralf W. Grosse-Kunstleve" Date: Thu, 15 Dec 2022 21:42:51 -0800 Subject: [PATCH 2/3] Revert "Replace upstream.yml with new python312.yml" This reverts commit 9a6b9b4e6fee7a4b9d88f09f666f7cba9773265a. --- .github/workflows/python312.yml | 140 -------------------------------- .github/workflows/upstream.yml | 112 +++++++++++++++++++++++++ 2 files changed, 112 insertions(+), 140 deletions(-) delete mode 100644 .github/workflows/python312.yml create mode 100644 .github/workflows/upstream.yml diff --git a/.github/workflows/python312.yml b/.github/workflows/python312.yml deleted file mode 100644 index b296e9c632..0000000000 --- a/.github/workflows/python312.yml +++ /dev/null @@ -1,140 +0,0 @@ -name: Python312 - -on: - workflow_dispatch: - pull_request: - -concurrency: - group: python312-${{ github.ref }} - cancel-in-progress: false - -env: - PYTEST_TIMEOUT: 300 - -jobs: - standard: - name: "🐍 3.12 latest • ubuntu-latest • x64" - runs-on: ubuntu-latest - if: "contains(github.event.pull_request.labels.*.name, 'python dev')" - - steps: - - name: Show env - run: env - - - uses: actions/checkout@v3 - - - name: Setup Python 3.12 - uses: actions/setup-python@v4 - with: - python-version: "3.12-dev" - - - name: Setup Boost - run: sudo apt-get install libboost-dev - - - name: Update CMake - uses: jwlawson/actions-setup-cmake@v1.13 - - - name: Run pip installs - run: | - python -m pip install --upgrade pip - python -m pip install --prefer-binary -r tests/requirements.txt - # python -m pip install --prefer-binary numpy # SLOW - # python -m pip install --prefer-binary scipy # FAILED ~Nov 2022 - - - name: Show platform info - run: python -m platform - - - name: Show CMake version - run: cmake --version - - # FIRST BUILD - - name: Configure C++11 - run: > - cmake -S . -B build11 - -DCMAKE_VERBOSE_MAKEFILE=ON - -DPYBIND11_WERROR=ON - -DDOWNLOAD_CATCH=ON - -DDOWNLOAD_EIGEN=ON - -DCMAKE_CXX_STANDARD=11 - -DCMAKE_BUILD_TYPE=Debug - - - name: Build C++11 - run: cmake --build build11 -j 2 - - - name: Python tests C++11 - run: cmake --build build11 --target pytest -j 2 - - # python-3.12.0-alpha.1-linux-22.04-x64.tar.gz PASSED - # python-3.12.0-alpha.2-linux-22.04-x64.tar.gz FAILED - # python-3.12.0-alpha.3-linux-22.04-x64.tar.gz FAILED - # free(): invalid pointer - # Custom PyConfig - # /home/runner/work/pybind11/pybind11/tests/test_embed/test_interpreter.cpp:175 - # /home/runner/work/pybind11/pybind11/tests/test_embed/test_interpreter.cpp:179: FAILED: - # gdb traceback points here: - # https://github.com/python/cpython/blame/54289f85b2af1ecf046089ddf535dda1bdf6af24/Python/import.c#L524 - # - name: C++ tests C++11 - # run: cmake --build build11 --target cpptest -j 2 - - - name: Interface test C++11 - run: cmake --build build11 --target test_cmake_build - - - name: Clean directory - run: git clean -fdx - - # SECOND BUILD - - name: Configure C++17 - run: > - cmake -S . -B build17 - -DCMAKE_VERBOSE_MAKEFILE=ON - -DPYBIND11_WERROR=ON - -DDOWNLOAD_CATCH=ON - -DDOWNLOAD_EIGEN=ON - -DCMAKE_CXX_STANDARD=17 - -DCMAKE_BUILD_TYPE=Debug - - - name: Build C++17 - run: cmake --build build17 -j 2 - - - name: Python tests C++17 - run: cmake --build build17 --target pytest - - # - name: C++ tests C++17 - # run: cmake --build build17 --target cpptest - - - name: Interface test C++17 - run: cmake --build build17 --target test_cmake_build - - - name: Clean directory - run: git clean -fdx - - # THIRD BUILD - - name: Configure C++17 max DPYBIND11_INTERNALS_VERSION - run: > - cmake -S . -B build17max - -DCMAKE_VERBOSE_MAKEFILE=ON - -DPYBIND11_WERROR=ON - -DDOWNLOAD_CATCH=ON - -DDOWNLOAD_EIGEN=ON - -DCMAKE_CXX_STANDARD=17 - -DCMAKE_BUILD_TYPE=Debug - -DPYBIND11_INTERNALS_VERSION=10000000 - - - name: Build C++17 max DPYBIND11_INTERNALS_VERSION - run: cmake --build build17max -j 2 - - - name: Python tests C++17 max DPYBIND11_INTERNALS_VERSION - run: cmake --build build17max --target pytest - - # - name: C++ tests C++17 max DPYBIND11_INTERNALS_VERSION - # run: cmake --build build17max --target cpptest - - - name: Interface test C++17 max DPYBIND11_INTERNALS_VERSION - run: cmake --build build17max --target test_cmake_build - - # Ensure the setup_helpers module can build packages using setuptools - - name: Setuptools helpers test - run: pytest tests/extra_setuptools - - - name: Clean directory - run: git clean -fdx diff --git a/.github/workflows/upstream.yml b/.github/workflows/upstream.yml new file mode 100644 index 0000000000..366284acf4 --- /dev/null +++ b/.github/workflows/upstream.yml @@ -0,0 +1,112 @@ + +name: Upstream + +on: + workflow_dispatch: + pull_request: + +concurrency: + group: upstream-${{ github.ref }} + cancel-in-progress: true + +env: + PIP_ONLY_BINARY: numpy + +jobs: + standard: + name: "🐍 3.11 latest internals • ubuntu-latest • x64" + runs-on: ubuntu-latest + if: "contains(github.event.pull_request.labels.*.name, 'python dev')" + + steps: + - uses: actions/checkout@v3 + + - name: Setup Python 3.11 + uses: actions/setup-python@v4 + with: + python-version: "3.11-dev" + + - name: Setup Boost (Linux) + if: runner.os == 'Linux' + run: sudo apt-get install libboost-dev + + - name: Update CMake + uses: jwlawson/actions-setup-cmake@v1.13 + + - name: Prepare env + run: | + python -m pip install -r tests/requirements.txt + + - name: Setup annotations on Linux + if: runner.os == 'Linux' + run: python -m pip install pytest-github-actions-annotate-failures + + # First build - C++11 mode and inplace + - name: Configure C++11 + run: > + cmake -S . -B . + -DPYBIND11_WERROR=ON + -DDOWNLOAD_CATCH=ON + -DDOWNLOAD_EIGEN=ON + -DCMAKE_CXX_STANDARD=11 + + - name: Build C++11 + run: cmake --build . -j 2 + + - name: Python tests C++11 + run: cmake --build . --target pytest -j 2 + + - name: C++11 tests + run: cmake --build . --target cpptest -j 2 + + - name: Interface test C++11 + run: cmake --build . --target test_cmake_build + + - name: Clean directory + run: git clean -fdx + + # Second build - C++17 mode and in a build directory + - name: Configure C++17 + run: > + cmake -S . -B build2 + -DPYBIND11_WERROR=ON + -DDOWNLOAD_CATCH=ON + -DDOWNLOAD_EIGEN=ON + -DCMAKE_CXX_STANDARD=17 + ${{ matrix.args }} + ${{ matrix.args2 }} + + - name: Build + run: cmake --build build2 -j 2 + + - name: Python tests + run: cmake --build build2 --target pytest + + - name: C++ tests + run: cmake --build build2 --target cpptest + + # Third build - C++17 mode with unstable ABI + - name: Configure (unstable ABI) + run: > + cmake -S . -B build3 + -DPYBIND11_WERROR=ON + -DDOWNLOAD_CATCH=ON + -DDOWNLOAD_EIGEN=ON + -DCMAKE_CXX_STANDARD=17 + -DPYBIND11_INTERNALS_VERSION=10000000 + "-DPYBIND11_TEST_OVERRIDE=test_call_policies.cpp;test_gil_scoped.cpp;test_thread.cpp" + ${{ matrix.args }} + + - name: Build (unstable ABI) + run: cmake --build build3 -j 2 + + - name: Python tests (unstable ABI) + run: cmake --build build3 --target pytest + + - name: Interface test + run: cmake --build build3 --target test_cmake_build + + # This makes sure the setup_helpers module can build packages using + # setuptools + - name: Setuptools helpers test + run: pytest tests/extra_setuptools From d1cc6325a32fddc10aa47f673147f175f928d833 Mon Sep 17 00:00:00 2001 From: "Ralf W. Grosse-Kunstleve" Date: Thu, 15 Dec 2022 21:52:19 -0800 Subject: [PATCH 3/3] Bring back python312.yml as upstream.yml --- .github/workflows/upstream.yml | 118 +++++++++++++++++++++------------ 1 file changed, 74 insertions(+), 44 deletions(-) diff --git a/.github/workflows/upstream.yml b/.github/workflows/upstream.yml index 366284acf4..721a920281 100644 --- a/.github/workflows/upstream.yml +++ b/.github/workflows/upstream.yml @@ -1,4 +1,3 @@ - name: Upstream on: @@ -7,106 +6,137 @@ on: concurrency: group: upstream-${{ github.ref }} - cancel-in-progress: true + cancel-in-progress: false env: - PIP_ONLY_BINARY: numpy + PYTEST_TIMEOUT: 300 jobs: standard: - name: "🐍 3.11 latest internals • ubuntu-latest • x64" + name: "🐍 3.12 latest • ubuntu-latest • x64" runs-on: ubuntu-latest + + # Hint: Select the 'python dev' label in the PR web view. if: "contains(github.event.pull_request.labels.*.name, 'python dev')" steps: + - name: Show env + run: env + - uses: actions/checkout@v3 - - name: Setup Python 3.11 + - name: Setup Python 3.12 uses: actions/setup-python@v4 with: - python-version: "3.11-dev" + python-version: "3.12-dev" - - name: Setup Boost (Linux) - if: runner.os == 'Linux' + - name: Setup Boost run: sudo apt-get install libboost-dev - name: Update CMake uses: jwlawson/actions-setup-cmake@v1.13 - - name: Prepare env + - name: Run pip installs run: | - python -m pip install -r tests/requirements.txt + python -m pip install --upgrade pip + python -m pip install --prefer-binary -r tests/requirements.txt + # python -m pip install --prefer-binary numpy # SLOW + # python -m pip install --prefer-binary scipy # FAILED ~Nov 2022 + + - name: Show platform info + run: python -m platform - - name: Setup annotations on Linux - if: runner.os == 'Linux' - run: python -m pip install pytest-github-actions-annotate-failures + - name: Show CMake version + run: cmake --version - # First build - C++11 mode and inplace + # FIRST BUILD - name: Configure C++11 run: > - cmake -S . -B . + cmake -S . -B build11 + -DCMAKE_VERBOSE_MAKEFILE=ON -DPYBIND11_WERROR=ON -DDOWNLOAD_CATCH=ON -DDOWNLOAD_EIGEN=ON -DCMAKE_CXX_STANDARD=11 + -DCMAKE_BUILD_TYPE=Debug - name: Build C++11 - run: cmake --build . -j 2 + run: cmake --build build11 -j 2 - name: Python tests C++11 - run: cmake --build . --target pytest -j 2 - - - name: C++11 tests - run: cmake --build . --target cpptest -j 2 + run: cmake --build build11 --target pytest -j 2 + + # python-3.12.0-alpha.1-linux-22.04-x64.tar.gz PASSED + # python-3.12.0-alpha.2-linux-22.04-x64.tar.gz FAILED + # python-3.12.0-alpha.3-linux-22.04-x64.tar.gz FAILED + # free(): invalid pointer + # Custom PyConfig + # /home/runner/work/pybind11/pybind11/tests/test_embed/test_interpreter.cpp:175 + # /home/runner/work/pybind11/pybind11/tests/test_embed/test_interpreter.cpp:179: FAILED: + # gdb traceback points here: + # https://github.com/python/cpython/blame/54289f85b2af1ecf046089ddf535dda1bdf6af24/Python/import.c#L524 + # - name: C++ tests C++11 + # run: cmake --build build11 --target cpptest -j 2 - name: Interface test C++11 - run: cmake --build . --target test_cmake_build + run: cmake --build build11 --target test_cmake_build - name: Clean directory run: git clean -fdx - # Second build - C++17 mode and in a build directory + # SECOND BUILD - name: Configure C++17 run: > - cmake -S . -B build2 + cmake -S . -B build17 + -DCMAKE_VERBOSE_MAKEFILE=ON -DPYBIND11_WERROR=ON -DDOWNLOAD_CATCH=ON -DDOWNLOAD_EIGEN=ON -DCMAKE_CXX_STANDARD=17 - ${{ matrix.args }} - ${{ matrix.args2 }} + -DCMAKE_BUILD_TYPE=Debug + + - name: Build C++17 + run: cmake --build build17 -j 2 - - name: Build - run: cmake --build build2 -j 2 + - name: Python tests C++17 + run: cmake --build build17 --target pytest - - name: Python tests - run: cmake --build build2 --target pytest + # - name: C++ tests C++17 + # run: cmake --build build17 --target cpptest - - name: C++ tests - run: cmake --build build2 --target cpptest + - name: Interface test C++17 + run: cmake --build build17 --target test_cmake_build - # Third build - C++17 mode with unstable ABI - - name: Configure (unstable ABI) + - name: Clean directory + run: git clean -fdx + + # THIRD BUILD + - name: Configure C++17 max DPYBIND11_INTERNALS_VERSION run: > - cmake -S . -B build3 + cmake -S . -B build17max + -DCMAKE_VERBOSE_MAKEFILE=ON -DPYBIND11_WERROR=ON -DDOWNLOAD_CATCH=ON -DDOWNLOAD_EIGEN=ON -DCMAKE_CXX_STANDARD=17 + -DCMAKE_BUILD_TYPE=Debug -DPYBIND11_INTERNALS_VERSION=10000000 - "-DPYBIND11_TEST_OVERRIDE=test_call_policies.cpp;test_gil_scoped.cpp;test_thread.cpp" - ${{ matrix.args }} - - name: Build (unstable ABI) - run: cmake --build build3 -j 2 + - name: Build C++17 max DPYBIND11_INTERNALS_VERSION + run: cmake --build build17max -j 2 + + - name: Python tests C++17 max DPYBIND11_INTERNALS_VERSION + run: cmake --build build17max --target pytest - - name: Python tests (unstable ABI) - run: cmake --build build3 --target pytest + # - name: C++ tests C++17 max DPYBIND11_INTERNALS_VERSION + # run: cmake --build build17max --target cpptest - - name: Interface test - run: cmake --build build3 --target test_cmake_build + - name: Interface test C++17 max DPYBIND11_INTERNALS_VERSION + run: cmake --build build17max --target test_cmake_build - # This makes sure the setup_helpers module can build packages using - # setuptools + # Ensure the setup_helpers module can build packages using setuptools - name: Setuptools helpers test run: pytest tests/extra_setuptools + + - name: Clean directory + run: git clean -fdx