Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add macos_brew_install_llvm to ci.yml #4326

Merged
merged 3 commits into from
Nov 12, 2022

Conversation

rwgk
Copy link
Collaborator

@rwgk rwgk commented Nov 10, 2022

Description

Previously tested under PRs #4324, #4319

Primary motivation: inform #4319

Note that test_cross_module_exception_translator fails for the new job (1569415). See also #4319 (comment).

Note that #4324 — but not this PR — includes this change:

--- a/include/pybind11/detail/common.h
+++ b/include/pybind11/detail/common.h
@@ -96,7 +96,7 @@
 #endif

 #if !defined(PYBIND11_EXPORT_EXCEPTION)
-#    if defined(__apple_build_version__)
+#    if defined(_LIBCPP_VERSION)
 #        define PYBIND11_EXPORT_EXCEPTION PYBIND11_EXPORT
 #    else
 #        define PYBIND11_EXPORT_EXCEPTION

That diff is not included here because it does not make a difference for the new job (test_cross_module_exception_translator fails with and without it). It is probably a good change to make in general, but left for a separate PR.

Suggested changelog entry:

@rwgk
Copy link
Collaborator Author

rwgk commented Nov 10, 2022

The 1 CI failure is another test_iostream flake (very common). Ignoring.

@rwgk
Copy link
Collaborator Author

rwgk commented Nov 10, 2022

This is the pytest summary. I'll try to add pip install numpy, although I don't think it adds a lot of value.

=========================== short test summary info ============================
SKIPPED [1] test_buffers.py:11: could not import 'numpy': No module named 'numpy'
SKIPPED [1] test_eigen_matrix.py:5: could not import 'numpy': No module named 'numpy'
SKIPPED [1] test_eigen_tensor.py:5: could not import 'numpy': No module named 'numpy'
SKIPPED [1] test_numpy_array.py:6: could not import 'numpy': No module named 'numpy'
SKIPPED [1] test_numpy_dtypes.py:8: could not import 'numpy': No module named 'numpy'
SKIPPED [1] test_numpy_vectorize.py:5: could not import 'numpy': No module named 'numpy'
SKIPPED [1] test_builtin_casters.py:320: could not import 'numpy': No module named 'numpy'
SKIPPED [1] test_builtin_casters.py:486: could not import 'numpy': No module named 'numpy'
SKIPPED [1] test_callbacks.py:203: Current PYBIND11_INTERNALS_VERSION too low
SKIPPED [1] test_pytypes.py:397: Not defined: PYBIND11_HANDLE_REF_DEBUG
SKIPPED [1] test_stl.py:[143](https://github.com/pybind/pybind11/actions/runs/3438766122/jobs/5735262857#step:13:144): no <experimental/optional>
SKIPPED [1] test_stl.py:175: no <boost/optional>
SKIPPED [1] test_stl_binders.py:89: could not import 'numpy': No module named 'numpy'
XFAIL test_exceptions.py::test_cross_module_exception_translator
  See Issue #2847, PR #2999, PR #4324
================= 554 passed, 13 skipped, 1 xfailed in 33.63s ==================

@rwgk rwgk marked this pull request as draft November 10, 2022 17:30
@rwgk
Copy link
Collaborator Author

rwgk commented Nov 10, 2022

This is why numpy isn't installed via tests/requirements.txt:

2022-11-10T16:55:39.8160260Z Ignoring numpy: markers 'platform_python_implementation == "PyPy" and sys_platform == "linux" and python_version == "3.7"' don't match your environment
2022-11-10T16:55:39.8164270Z Ignoring numpy: markers 'platform_python_implementation != "PyPy" and python_version == "3.6"' don't match your environment
2022-11-10T16:55:39.8168100Z Ignoring numpy: markers 'platform_python_implementation != "PyPy" and python_version >= "3.7" and python_version < "3.10"' don't match your environment
2022-11-10T16:55:39.8172280Z Ignoring numpy: markers 'platform_python_implementation != "PyPy" and python_version >= "3.10" and python_version < "3.11"' don't match your environment
2022-11-10T16:55:39.8175720Z Ignoring scipy: markers 'platform_python_implementation != "PyPy" and python_version < "3.10"' don't match your environment
2022-11-10T16:55:39.8179450Z Ignoring scipy: markers 'platform_python_implementation != "PyPy" and python_version == "3.10"' don't match your environment

@rwgk rwgk marked this pull request as ready for review November 10, 2022 18:30
@rwgk
Copy link
Collaborator Author

rwgk commented Nov 10, 2022

This is the reduced pytest summary (copied from PR #4324 results):

=========================== short test summary info ============================
SKIPPED [1] test_callbacks.py:203: Current PYBIND11_INTERNALS_VERSION too low
SKIPPED [1] test_pytypes.py:397: Not defined: PYBIND11_HANDLE_REF_DEBUG
SKIPPED [1] test_stl.py:143: no <experimental/optional>
SKIPPED [1] test_stl.py:175: no <boost/optional>
XFAIL test_exceptions.py::test_cross_module_exception_translator
  See Issue #2847, PR #2999, PR #4324
================== 785 passed, 4 skipped, 1 xfailed in 57.60s ==================

In theory we could install boost, somehow, but I really don't think that's worth the trouble.

@rwgk
Copy link
Collaborator Author

rwgk commented Nov 12, 2022

Thanks @Skylion007!

@rwgk rwgk merged commit 296615a into pybind:master Nov 12, 2022
@rwgk rwgk deleted the macos_brew_install_llvm_integrated branch November 12, 2022 20:24
@github-actions github-actions bot added the needs changelog Possibly needs a changelog entry label Nov 12, 2022
@rwgk rwgk removed the needs changelog Possibly needs a changelog entry label Nov 12, 2022
rwgk pushed a commit that referenced this pull request Nov 18, 2022
* Add macos_brew_install_llvm to ci.yml

Added block transferred from PR #4324

* `test_cross_module_exception_translator` xfail 'Homebrew Clang'

* Add `pip install numpy scipy` (tested already under PR #4324).
rwgk pushed a commit to rwgk/pybind11 that referenced this pull request Mar 20, 2023
rwgk pushed a commit that referenced this pull request Apr 25, 2023
…erywhere **except when libc++ is in use** (#4319)

* Try using `std::hash<std::type_index>`, `std::equal_to<std::type_index>` everywhere.

From PR #4316 we know that types in the unnamed namespace in different translation units do not compare equal, as desired.

But do types in named namespaces compare equal, as desired?

* Revert "Try using `std::hash<std::type_index>`, `std::equal_to<std::type_index>` everywhere."

This reverts commit a06949a.

* Use "our own name-based hash and equality functions" for `std::type_index` only under macOS, based on results shown under #4316 (comment)

* Patch in PR #4313: Minimal reproducer for clash when binding types defined in the unnamed namespace.

* test_unnamed_namespace_b xfail for clang

* `PYBIND11_INTERNALS_VERSION 5`

* Add a note to docs/classes.rst

* For compatibility with Google-internal testing, test_unnamed_namespace_a & test_unnamed_namespace_b need to work when imported in any order.

* Trying "__GLIBCXX__ or Windows", based on observations from Google-internal testing.

* Try _LIBCPP_VERSION

* Account for libc++ behavior in tests and documentation.

* Adjust expectations for Windows Clang (and make code less redundant).

* Add WindowsClang to ci.yml

Added block transferred from PR #4321

* Add clang-latest to name that appears in the GitHub Actions web view.

* Tweak the note in classes.rst again.

* Add `pip install --upgrade pip`, Show env, cosmetic changes

Already tested under PR #4321

* Add macos_brew_install_llvm to ci.yml

Added block transferred from PR #4324

* `test_cross_module_exception_translator` xfail 'Homebrew Clang'

* Revert back to base version of .github/workflows/ci.yml (the ci.yml changes were merged under #4323 and #4326)

* Fixes for ruff

* Make updated condition in internals.h dependent on ABI version.

* Remove PYBIND11_TEST_OVERRIDE when testing with PYBIND11_INTERNALS_VERSION=10000000

* Selectively exercise cmake `-DPYBIND11_TEST_OVERRIDE`: ubuntu, macos, windows

Extra work added to quick jobs, based on timings below, to not increase the GHA start-to-last-job-finished time.

```
Duration
^              Number of pytest runs
^              ^ Job identifier
^              ^ ^
0:03:48.024227 1 1___3___Clang_3.6___C++11___x64.txt
0:03:58.992814 1 2___3___Clang_3.7___C++11___x64.txt
0:04:25.758942 1 1___3.7___Debian___x86____Install.txt
0:04:50.148276 1 4___3___Clang_7___C++11___x64.txt
0:04:55.784558 1 13___3___Clang_15___C++20___x64.txt
0:04:57.048754 1 6___3___Clang_dev___C++11___x64.txt
0:05:00.485181 1 7___3___Clang_5___C++14___x64.txt
0:05:03.744964 1 2___3___almalinux8___x64.txt
0:05:06.222752 1 5___3___Clang_9___C++11___x64.txt
0:05:11.767022 1 2___3___GCC_7___C++17__x64.txt
0:05:18.634930 1 2___3.11__deadsnakes____x64.txt
0:05:22.810995 1 1___3___GCC_7___C++11__x64.txt
0:05:25.275317 1 12___3___Clang_14___C++20___x64.txt
0:05:32.058174 1 5___3___GCC_10___C++17__x64.txt
0:05:39.381351 1 7___3___GCC_12___C++20__x64.txt
0:05:40.502252 1 8___3___Clang_10___C++17___x64.txt
0:05:59.344905 1 3___3___Clang_3.9___C++11___x64.txt
0:06:10.825147 1 6___3___GCC_11___C++20__x64.txt
0:06:20.655443 1 3___3___almalinux9___x64.txt
0:06:22.472061 1 3___3___GCC_8___C++14__x64.txt
0:06:42.647406 1 11___3___Clang_13___C++20___x64.txt
0:06:53.352720 1 1___3.10___CUDA_11.7___Ubuntu_22.04.txt
0:07:07.357801 1 2___3.7___MSVC_2019___x86_-DCMAKE_CXX_STANDARD=14.txt
0:07:09.057603 1 1___3___centos7___x64.txt
0:07:15.546282 1 1___3.8___MSVC_2019__Debug____x86_-DCMAKE_CXX_STANDARD=17.txt
0:07:22.566022 1 4___3___GCC_8___C++17__x64.txt
0:08:13.592674 1 2___3.9___MSVC_2019__Debug____x86_-DCMAKE_CXX_STANDARD=20.txt
0:08:16.422768 1 9___3___Clang_11___C++20___x64.txt
0:08:21.168457 1 3___3.8___MSVC_2019___x86_-DCMAKE_CXX_STANDARD=17.txt
0:08:27.129468 1 10___3___Clang_12___C++20___x64.txt
0:09:35.045470 1 1___3.10___windows-latest___clang-latest.txt
0:09:57.361843 1 1___3.9___MSVC_2022_C++20___x64.txt
0:10:35.187767 1 1___3.6___MSVC_2019___x86.txt
0:11:14.691200 4 2___3.9___ubuntu-20.04___x64.txt
0:11:37.701167 1 1_macos-latest___brew_install_llvm.txt
0:11:38.688299 4 4___3.11___ubuntu-20.04___x64.txt
0:11:52.720216 1 4___3.9___MSVC_2019___x86_-DCMAKE_CXX_STANDARD=20.txt
0:13:23.456591 4 6___pypy-3.8___ubuntu-20.04___x64_-DPYBIND11_FINDPYTHON=ON.txt
0:13:25.863592 2 1___3___ICC_latest___x64.txt
0:13:32.411758 3 9___3.9___windows-2022___x64.txt
0:13:45.473377 4 3___3.10___ubuntu-20.04___x64.txt
0:13:55.366447 4 5___pypy-3.7___ubuntu-20.04___x64.txt
0:13:57.969502 3 10___3.10___windows-2022___x64.txt
0:14:19.837475 3 11___3.11___windows-2022___x64.txt
0:14:33.316770 4 1___3.6___ubuntu-20.04___x64_-DPYBIND11_FINDPYTHON=ON_-DCMA.txt
0:15:34.449278 4 22___3.6___windows-2019___x64_-DPYBIND11_FINDPYTHON=ON.txt
0:16:25.189055 2 1___3.9-dbg__deadsnakes____Valgrind___x64.txt
0:17:20.956667 4 15___3.6___macos-latest___x64.txt
0:17:27.513891 4 23___3.9___windows-2019___x64.txt
0:17:58.783286 3 8___3.6___windows-2022___x64.txt
0:18:25.917828 4 7___pypy-3.9___ubuntu-20.04___x64.txt
0:19:17.399820 3 13___pypy-3.8___windows-2022___x64.txt
0:19:45.002122 3 12___pypy-3.7___windows-2022___x64.txt
0:20:03.201926 4 16___3.9___macos-latest___x64.txt
0:20:15.415178 4 17___3.10___macos-latest___x64.txt
0:20:20.263216 4 20___pypy-3.8___macos-latest___x64.txt
0:20:31.998226 3 1___3___windows-latest___mingw64.txt
0:20:40.812286 4 18___3.11___macos-latest___x64.txt
0:22:47.714749 4 19___pypy-3.7___macos-latest___x64.txt
0:23:04.435859 3 2___3___windows-latest___mingw32.txt
0:25:48.719597 3 14___pypy-3.9___windows-2022___x64.txt
0:26:01.211688 4 21___pypy-3.9___macos-latest___x64.txt
0:28:19.971015 1 1___3___CentOS7__PGI_22.9___x64.txt
```

* Update skipif for Python 3.12a7 (the WIP needs to be handled in a separate PR).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants