diff --git a/.github/actions/spelling/allow.txt b/.github/actions/spelling/allow.txt index 846c7874f1..9de0b63b83 100644 --- a/.github/actions/spelling/allow.txt +++ b/.github/actions/spelling/allow.txt @@ -2261,3 +2261,4 @@ TESTQUAD WAITALL xcodebuild ICX +sw_vers diff --git a/.github/workflows/build_python.yml b/.github/workflows/build_python.yml index a0ecce12f9..819b3c2cf7 100644 --- a/.github/workflows/build_python.yml +++ b/.github/workflows/build_python.yml @@ -26,7 +26,11 @@ jobs: fail-fast: false matrix: # As of 20240501, macos-11/12/13 are AMD64, and macOS-14 is ARM64. - os: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04, windows-2019, windows-2022, macos-11, macos-12, macos-13, macos-14] + # As of 20240616, ubuntu 24.04 is failing to copy files into the quay.io/pypa/manylinux2014_i686:2024-05-13-0983f6f container + # It fails with "tar: ./todo: Cannot utime: Function not implemented" for every file in the repo. + # This is strange since it worked for the quay.io/pypa/manylinux2014_x86_64:2024-05-13-0983f6f container. + # I suggest trying ubuntu-24.04 again in a month. + os: [ubuntu-20.04, ubuntu-22.04, windows-2019, windows-2022, macos-11, macos-12, macos-13, macos-14] steps: - name: Clone Repository (Latest) @@ -46,11 +50,27 @@ jobs: - name: Checkout pybind11 submodule run: git submodule update --init python/pybind11 + # sw_vers on macos 11 and 12 takes -productVersion instead of --productVersion :( + - name: Set the MACOSX_DEPLOYMENT_TARGET + if: ${{ matrix.os == 'macos-11' || matrix.os == 'macos-12' }} + run: | + MACOSX_DEPLOYMENT_TARGET=$(sw_vers -productVersion | cut -d'.' -f 1) + echo "MACOSX_DEPLOYMENT_TARGET is $MACOSX_DEPLOYMENT_TARGET" + echo "MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET" >> $GITHUB_ENV + + - name: Set the MACOSX_DEPLOYMENT_TARGET + if: ${{ matrix.os == 'macos-13' || matrix.os == 'macos-14' }} + run: | + MACOSX_DEPLOYMENT_TARGET=$(sw_vers --productVersion | cut -d'.' -f 1) + echo "MACOSX_DEPLOYMENT_TARGET is $MACOSX_DEPLOYMENT_TARGET" + echo "MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET" >> $GITHUB_ENV + - name: Set up Fortran uses: fortran-lang/setup-fortran@main if: ${{ runner.os == 'macOS' }} with: compiler: gcc + version: 12 # Copied from https://github.com/scipy/scipy/blob/main/.github/workflows/wheels.yml # For rtools, see https://github.com/r-windows/rtools-installer/releases, which has been diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 96c7a59a4c..278e21214d 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -42,7 +42,8 @@ jobs: toolchain: - {compiler: gcc, version: 11, cflags: '-Wall -Wextra -Wpedantic -Werror', fflags: '-Wall -Wextra -Wpedantic -Werror -fimplicit-none -fcheck=all -fstack-check -Wno-function-elimination'} - {compiler: gcc, version: 12, cflags: '-Wall -Wextra -Wpedantic -Werror', fflags: '-Wall -Wextra -Wpedantic -Werror -fimplicit-none -fcheck=all -fstack-check -Wno-function-elimination'} - - {compiler: gcc, version: 13, cflags: '-Wall -Wextra -Wpedantic -Werror', fflags: '-Wall -Wextra -Wpedantic -Werror -fimplicit-none -fcheck=all -fstack-check -Wno-function-elimination'} + # As of 20240616 gcc13 has issues importing math.h on macOS. + # - {compiler: gcc, version: 13, cflags: '-Wall -Wextra -Wpedantic -Werror', fflags: '-Wall -Wextra -Wpedantic -Werror -fimplicit-none -fcheck=all -fstack-check -Wno-function-elimination'} - {compiler: intel-classic, version: '2021.8', cflags: '-diag-disable=10441 -Wall -w3 -Werror-all', fflags: '-warn all -debug extended -fimplicit-none -standard-semantics'} - {compiler: intel-classic, version: '2021.9', cflags: '-diag-disable=10441 -Wall -w3 -Werror-all', fflags: '-warn all -debug extended -fimplicit-none -standard-semantics'} - {compiler: intel-classic, version: '2021.10', cflags: '-diag-disable=10441 -Wall -w3 -Werror-all', fflags: '-warn all -debug extended -fimplicit-none -standard-semantics'} diff --git a/python/pybind11 b/python/pybind11 index 8a099e44b3..3e9dfa2866 160000 --- a/python/pybind11 +++ b/python/pybind11 @@ -1 +1 @@ -Subproject commit 8a099e44b3d5f85b20f05828d919d2332a8de841 +Subproject commit 3e9dfa2866941655c56877882565e7577de6fc7b diff --git a/python/tests/test_compatibility_pdfo.py b/python/tests/test_compatibility_pdfo.py index 6eaaaf6cd5..9ecfc90c06 100644 --- a/python/tests/test_compatibility_pdfo.py +++ b/python/tests/test_compatibility_pdfo.py @@ -20,6 +20,9 @@ def test_pdfo(): scipy = pytest.importorskip("scipy") if version.parse(scipy.__version__) < version.parse("1.11.0"): pytest.skip("scipy version too old for this test (its version of COBYLA does not accept bounds)") + numpy = pytest.importorskip("numpy") + if version.parse(numpy.__version__) >= version.parse("2.0.0"): + pytest.skip("numpy version too new for this test (pdfo does not yet support numpy v2)") from pdfo import pdfo from scipy.optimize import NonlinearConstraint as NLC, LinearConstraint as LC, Bounds