From 9a6b9b4e6fee7a4b9d88f09f666f7cba9773265a Mon Sep 17 00:00:00 2001 From: "Ralf W. Grosse-Kunstleve" Date: Sun, 11 Dec 2022 16:58:28 -0800 Subject: [PATCH] Replace upstream.yml with new python312.yml --- .github/workflows/python312.yml | 140 ++++++++++++++++++++++++++++++++ .github/workflows/upstream.yml | 112 ------------------------- 2 files changed, 140 insertions(+), 112 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 00000000000..b296e9c632d --- /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 366284acf46..00000000000 --- a/.github/workflows/upstream.yml +++ /dev/null @@ -1,112 +0,0 @@ - -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