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

Zagor hotfix #10

Open
wants to merge 78 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
6de6191
Use `std::hash<std::type_index>`, `std::equal_to<std::type_index>` ev…
Apr 25, 2023
3f366ff
Remove stray comment. (Oversight in PR #4631. Noticed by chance.) (#4…
Apr 27, 2023
5e946c2
chore(deps): update pre-commit hooks (#4605)
pre-commit-ci[bot] Apr 28, 2023
956390a
fix(cmake): only define lto if CMAKE's IPO setting is unset (#4643)
henryiii Apr 29, 2023
da91926
fix: remove -stdlib=libc++ from setup helpers, not needed on modern P…
biergaizi May 1, 2023
dff75a6
chore(deps): bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 (#4…
dependabot[bot] May 3, 2023
b3e88ec
chore(deps): update pre-commit hooks (#4648)
pre-commit-ci[bot] May 3, 2023
f701654
Introduce recursive_container_traits (#4623)
franzpoeschel May 5, 2023
90312a6
Add `type_caster<PyObject>` (#4601)
May 7, 2023
e9b961d
Elide to-python conversion of setter return values (#4621)
May 8, 2023
cca4c51
Update errors in string "Explicit conversions" docs (#4658)
tjstum May 9, 2023
d72ffb4
ci: set minimal permissions to github workflows (#4665)
joycebrum May 15, 2023
19816f0
chore: update changelog, with target date for v2.11.0 release (#4677)
May 22, 2023
ce9bbc0
Python 3.11+: Add `__notes__` to `error_already_set::what()` output. …
May 23, 2023
6e6bcca
Create s Security Policy (#4671)
joycebrum May 23, 2023
8e1f9d5
Add `format_descriptor<>` & `npy_format_descriptor<>` `PyObject *` sp…
May 23, 2023
d0232b1
Use annotated for array (#4679)
cielavenir May 25, 2023
29487de
Disable 🐍 3 • CentOS7 / PGI 22.9 • x64 (#4691)
Jun 7, 2023
3617f35
chore(deps): update pre-commit hooks (#4689)
pre-commit-ci[bot] Jun 7, 2023
c679a92
chore(deps): bump deadsnakes/action from 3.0.0 to 3.0.1 (#4687)
dependabot[bot] Jun 7, 2023
0e43fcc
Python 3.12b2 testing (#4695)
Jun 10, 2023
86f60a0
pre-commit markdown-it-py<3 (for Python 3.7 compatibility) (#4704)
Jun 16, 2023
8493228
Systematically add `PIP_BREAK_SYSTEM_PACKAGES` to all .yml files from…
Jun 17, 2023
bc1bcf7
chore: 3.12 + cleanup (#4713)
henryiii Jun 21, 2023
e10da79
Undo ci.yml gcc10 workaround after docker-library/gcc#95 was resolved…
Jun 24, 2023
2fb3d7c
Trivial refactoring to make the capsule API more user friendly. (#4720)
Jun 27, 2023
5ccb9e4
chore: ruff moved to astral-sh (#4726)
henryiii Jul 4, 2023
782b628
Drop PyPy 3.7 from GitHub Actions (ci.yml) (#4728)
Jul 9, 2023
d462dd9
chore(deps): bump scipy from 1.8.0 to 1.10.0 in /tests (#4731)
dependabot[bot] Jul 10, 2023
47dc0c4
chore(deps): update pre-commit hooks (#4727)
pre-commit-ci[bot] Jul 11, 2023
b2732c6
chore(deps): bump pypa/gh-action-pypi-publish from 1.8.6 to 1.8.7 (#4…
dependabot[bot] Jul 12, 2023
6d22dba
Warning on comparing wrapper enums with is (#4732)
lucmans Jul 12, 2023
2e5f5c4
fix: support CMake 3.27, drop 3.4 (#4719)
henryiii Jul 12, 2023
b33d06f
bugfix: fixes a test suite bug in the __new__ example (#4698)
Skylion007 Jul 12, 2023
1a917f1
docs: preparation for v2.11.0 release (#4744)
Jul 14, 2023
e85696e
Post release version bump (#4747)
Jul 14, 2023
0620d71
Update README.rst - Add missing comma in the list of acknowlegements …
bzaar Jul 15, 2023
ec1b57c
Disable `PYBIND11_ASSERT_GIL_HELD_INCREF_DECREF` generally for PyPy (…
Jul 15, 2023
99131a8
Provide `PYBIND11_NO_ASSERT_GIL_HELD_INCREF_DECREF` as an option (#4753)
EthanSteinberg Jul 17, 2023
8d08dc6
Copy v2.11.1 changelog section as released. (#4755)
Jul 17, 2023
f3e0602
Add command to check for vX.Y.Z tag vs pybind11/_version.py consisten…
Jul 23, 2023
17b6143
clang 17 compatibility fixes (#4767)
Aug 3, 2023
413e632
chore(deps): update pre-commit hooks (#4770)
pre-commit-ci[bot] Aug 4, 2023
9ad7e82
docs: Remove upper bound on pybind11 in example pyproject.toml for se…
ketozhang Aug 4, 2023
f870315
Provide better type hints for a variety of generic types (#4259)
virtuald Aug 4, 2023
824dc27
CI: Reenable an NVHPC Test (#4764)
ax3l Aug 4, 2023
690a115
Add `py::set_error()`, use in updated `py::exception<>` documentation…
Aug 8, 2023
4bf60c6
Disable strip when build type is unset (#4454) (#4780)
tttapa Aug 8, 2023
9039e6a
chore: use 2x faster black mirror (#4784)
henryiii Aug 10, 2023
add281a
Migrate to readthedocs configuration file v2¶ (#4789)
Aug 15, 2023
80bcd21
[ci skip] Adopt nanobind config. (#4792)
Aug 15, 2023
f47ff32
Fix grammar in functions.rst (#4791)
kenjitoyama Aug 15, 2023
b9359ce
Remove newlines from docstring signature (#4735)
JeanElsner Aug 15, 2023
76b8858
fix: Different MSVC versions may be ABI incompatible, guard with _MSC…
pwuertz Aug 23, 2023
1adac5a
`PYBIND11_INTERNALS_VERSION` bump for MSVC, piggy-backed on PR #4779.…
Aug 30, 2023
e705fb5
Fix enum's `__str__` docstring (#4827)
sizmailov Aug 30, 2023
db412e6
fix: Render `py::function` as `Callable` (#4829)
sizmailov Aug 31, 2023
c9638a1
Help Coverty avoid generating a false positive. (#4817)
Sep 1, 2023
467fe27
chore(deps): update pre-commit hooks (#4838)
pre-commit-ci[bot] Sep 6, 2023
4a2f7e4
chore(deps): bump actions/checkout from 1 to 4 (#4836)
dependabot[bot] Sep 6, 2023
c836059
feature: Support move-only iterators in `py::make_*iterator` (#4834)
sizmailov Sep 7, 2023
c9149d9
fix: Use lowercase builtin collection names (#4833)
sizmailov Sep 12, 2023
b457367
Update render for buffer sequence and handle (#4831)
sizmailov Sep 12, 2023
8c7b8dd
fix: Missing typed variants of `iterator` and `iterable` (#4832)
sizmailov Sep 12, 2023
d06d536
Fix small bug introduced with PR #4735 (#4845)
Sep 14, 2023
4fb111b
fix(cmake): correctly detect FindPython policy and better warning (#4…
henryiii Sep 15, 2023
5891867
fix(cmake): support DEBUG_POSTFIX correctly (#4761)
lpapp-foundry Sep 15, 2023
7e5edbc
Avoid copy in iteration by using const auto & (#4861)
oleksandr-pavlyk Sep 25, 2023
f468b07
Add 2 missing `throw error_already_set();` (#4863)
Sep 27, 2023
0a756c0
MAINT: Include `numpy._core` imports (#4857)
mtsokol Sep 27, 2023
dd64df7
MAINT: Remove np.int_ (#4867)
mtsokol Oct 3, 2023
2b2e4ca
chore(deps): update pre-commit hooks (#4868)
pre-commit-ci[bot] Oct 3, 2023
6c77208
chore(deps): bump seanmiddleditch/gha-setup-ninja from 3 to 4 (#4875)
dependabot[bot] Oct 6, 2023
0e2c3e5
Add pybind11/gil_safe_call_once.h (to fix deadlocks in pybind11/numpy…
Oct 12, 2023
0cbd92b
Update pytest to version 7.2.0 (which removes their dependency on py)…
pablospe Oct 16, 2023
74439a6
feature: Use typed iterators in `make_*iterator` (#4876)
sizmailov Oct 17, 2023
7969049
Comment out failing job, with link to #4889 (#4890)
Oct 20, 2023
2fa7423
Temporary fix for the return value cast problem.
zagor Oct 19, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ The valid options are:
* Use `-G` and the name of a generator to use something different. `cmake
--help` lists the generators available.
- On Unix, setting `CMAKE_GENERATER=Ninja` in your environment will give
you automatic mulithreading on all your CMake projects!
you automatic multithreading on all your CMake projects!
* Open the `CMakeLists.txt` with QtCreator to generate for that IDE.
* You can use `-DCMAKE_EXPORT_COMPILE_COMMANDS=ON` to generate the `.json` file
that some tools expect.
Expand Down
124 changes: 71 additions & 53 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,14 @@ on:
- stable
- v*

permissions: read-all

concurrency:
group: test-${{ github.ref }}
cancel-in-progress: true

env:
PIP_BREAK_SYSTEM_PACKAGES: 1
PIP_ONLY_BINARY: numpy
FORCE_COLOR: 3
PYTEST_TIMEOUT: 300
Expand All @@ -33,9 +36,10 @@ jobs:
- '3.9'
- '3.10'
- '3.11'
- 'pypy-3.7'
- '3.12'
- 'pypy-3.8'
- 'pypy-3.9'
- 'pypy-3.10'

# Items in here will either be added to the build matrix (if not
# present), or add new keys to an existing matrix element if all the
Expand Down Expand Up @@ -65,12 +69,13 @@ jobs:
runs-on: ${{ matrix.runs-on }}

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Setup Python ${{ matrix.python }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
allow-prereleases: true

- name: Setup Boost (Linux)
# Can't use boost + define _
Expand Down Expand Up @@ -178,7 +183,9 @@ jobs:
# This makes sure the setup_helpers module can build packages using
# setuptools
- name: Setuptools helpers test
run: pytest tests/extra_setuptools
run: |
pip install setuptools
pytest tests/extra_setuptools
if: "!(matrix.runs-on == 'windows-2022')"


Expand All @@ -188,20 +195,21 @@ jobs:
matrix:
include:
# TODO: Fails on 3.10, investigate
- python-version: "3.9"
python-debug: true
valgrind: true
# JOB DISABLED (NEEDS WORK): https://github.com/pybind/pybind11/issues/4889
# - python-version: "3.9"
# python-debug: true
# valgrind: true
- python-version: "3.11"
python-debug: false

name: "🐍 ${{ matrix.python-version }}${{ matrix.python-debug && '-dbg' || '' }} (deadsnakes)${{ matrix.valgrind && ' • Valgrind' || '' }} • x64"
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Setup Python ${{ matrix.python-version }} (deadsnakes)
uses: deadsnakes/[email protected].0
uses: deadsnakes/[email protected].1
with:
python-version: ${{ matrix.python-version }}
debug: ${{ matrix.python-debug }}
Expand Down Expand Up @@ -240,8 +248,6 @@ jobs:
python -m pip install -r tests/requirements.txt

- name: Configure
env:
SETUPTOOLS_USE_DISTUTILS: stdlib
run: >
cmake -S . -B build
-DCMAKE_BUILD_TYPE=Debug
Expand Down Expand Up @@ -297,12 +303,15 @@ jobs:
- clang: 15
std: 20
container_suffix: "-bullseye"
- clang: 16
std: 20
container_suffix: "-bullseye"

name: "🐍 3 • Clang ${{ matrix.clang }} • C++${{ matrix.std }} • x64"
container: "silkeh/clang:${{ matrix.clang }}${{ matrix.container_suffix }}"

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Add wget and python3
run: apt-get update && apt-get install -y python3-dev python3-numpy python3-pytest libeigen3-dev
Expand Down Expand Up @@ -332,11 +341,11 @@ jobs:
# Testing NVCC; forces sources to behave like .cu files
cuda:
runs-on: ubuntu-latest
name: "🐍 3.10 • CUDA 11.7 • Ubuntu 22.04"
container: nvidia/cuda:11.7.0-devel-ubuntu22.04
name: "🐍 3.10 • CUDA 12.2 • Ubuntu 22.04"
container: nvidia/cuda:12.2.0-devel-ubuntu22.04

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

# tzdata will try to ask for the timezone, so set the DEBIAN_FRONTEND
- name: Install 🐍 3
Expand All @@ -360,7 +369,7 @@ jobs:
# container: centos:8
#
# steps:
# - uses: actions/checkout@v3
# - uses: actions/checkout@v4
#
# - name: Add Python 3 and a few requirements
# run: yum update -y && yum install -y git python3-devel python3-numpy python3-pytest make environment-modules
Expand Down Expand Up @@ -396,53 +405,55 @@ jobs:
# run: cmake --build build --target test_cmake_build


# Testing on CentOS 7 + PGI compilers, which seems to require more workarounds
centos-nvhpc7:
runs-on: ubuntu-latest
name: "🐍 3 • CentOS7 / PGI 22.9 • x64"
container: centos:7
# Testing on Ubuntu + NVHPC (previous PGI) compilers, which seems to require more workarounds
ubuntu-nvhpc7:
runs-on: ubuntu-20.04
name: "🐍 3 • NVHPC 23.5 • C++17 • x64"

env:
# tzdata will try to ask for the timezone, so set the DEBIAN_FRONTEND
DEBIAN_FRONTEND: 'noninteractive'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Add Python 3 and a few requirements
run: yum update -y && yum install -y epel-release && yum install -y git python3-devel make environment-modules cmake3 yum-utils
- name: Add NVHPC Repo
run: |
echo 'deb [trusted=yes] https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64 /' | \
sudo tee /etc/apt/sources.list.d/nvhpc.list

- name: Install NVidia HPC SDK
run: yum-config-manager --add-repo https://developer.download.nvidia.com/hpc-sdk/rhel/nvhpc.repo && yum -y install nvhpc-22.9
- name: Install 🐍 3 & NVHPC
run: |
sudo apt-get update -y && \
sudo apt-get install -y cmake environment-modules git python3-dev python3-pip python3-numpy && \
sudo apt-get install -y --no-install-recommends nvhpc-23-5 && \
sudo rm -rf /var/lib/apt/lists/*
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade pytest

# On CentOS 7, we have to filter a few tests (compiler internal error)
# and allow deeper template recursion (not needed on CentOS 8 with a newer
# standard library). On some systems, you many need further workarounds:
# On some systems, you many need further workarounds:
# https://github.com/pybind/pybind11/pull/2475
- name: Configure
shell: bash
run: |
source /etc/profile.d/modules.sh
module load /opt/nvidia/hpc_sdk/modulefiles/nvhpc/22.9
cmake3 -S . -B build -DDOWNLOAD_CATCH=ON \
-DCMAKE_CXX_STANDARD=11 \
module load /opt/nvidia/hpc_sdk/modulefiles/nvhpc/23.5
cmake -S . -B build -DDOWNLOAD_CATCH=ON \
-DCMAKE_CXX_STANDARD=17 \
-DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)") \
-DCMAKE_CXX_FLAGS="-Wc,--pending_instantiations=0" \
-DPYBIND11_TEST_FILTER="test_smart_ptr.cpp"

# Building before installing Pip should produce a warning but not an error
- name: Build
run: cmake3 --build build -j 2 --verbose

- name: Install CMake with pip
run: |
python3 -m pip install --upgrade pip
python3 -m pip install pytest
run: cmake --build build -j 2 --verbose

- name: Python tests
run: cmake3 --build build --target pytest
run: cmake --build build --target pytest

- name: C++ tests
run: cmake3 --build build --target cpptest
run: cmake --build build --target cpptest

- name: Interface test
run: cmake3 --build build --target test_cmake_build
run: cmake --build build --target test_cmake_build


# Testing on GCC using the GCC docker images (only recent images supported)
Expand All @@ -459,12 +470,13 @@ jobs:
- { gcc: 10, std: 17 }
- { gcc: 11, std: 20 }
- { gcc: 12, std: 20 }
- { gcc: 13, std: 20 }

name: "🐍 3 • GCC ${{ matrix.gcc }} • C++${{ matrix.std }}• x64"
container: "gcc:${{ matrix.gcc }}"

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Add Python 3
run: apt-get update; apt-get install -y python3-dev python3-numpy python3-pytest python3-pip libeigen3-dev
Expand Down Expand Up @@ -524,7 +536,7 @@ jobs:
name: "🐍 3 • ICC latest • x64"

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Add apt repo
run: |
Expand Down Expand Up @@ -628,7 +640,13 @@ jobs:
container: "${{ matrix.container }}"

steps:
- uses: actions/checkout@v3
- name: Latest actions/checkout
uses: actions/checkout@v4
if: matrix.container != 'centos:7'

- name: Pin actions/checkout as required for centos:7
uses: actions/checkout@v3
if: matrix.container == 'centos:7'

- name: Add Python 3 (RHEL 7)
if: matrix.container == 'centos:7'
Expand Down Expand Up @@ -676,7 +694,7 @@ jobs:
container: i386/debian:buster

steps:
- uses: actions/checkout@v1 # Required to run inside docker
- uses: actions/checkout@v1 # v1 is required to run inside docker

- name: Install requirements
run: |
Expand Down Expand Up @@ -719,7 +737,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- uses: actions/setup-python@v4
with:
Expand Down Expand Up @@ -771,7 +789,7 @@ jobs:
runs-on: windows-2019

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Setup Python ${{ matrix.python }}
uses: actions/setup-python@v4
Expand Down Expand Up @@ -824,7 +842,7 @@ jobs:
runs-on: windows-2019

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Setup Python ${{ matrix.python }}
uses: actions/setup-python@v4
Expand Down Expand Up @@ -872,7 +890,7 @@ jobs:
runs-on: windows-2022

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Setup Python ${{ matrix.python }}
uses: actions/setup-python@v4
Expand Down Expand Up @@ -950,7 +968,7 @@ jobs:
mingw-w64-${{matrix.env}}-boost
mingw-w64-${{matrix.env}}-catch

- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Configure C++11
# LTO leads to many undefined reference like
Expand Down Expand Up @@ -1021,7 +1039,7 @@ jobs:
run: env

- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Set up Clang
uses: egor-tensin/setup-clang@v1
Expand All @@ -1035,7 +1053,7 @@ jobs:
uses: jwlawson/[email protected]

- name: Install ninja-build tool
uses: seanmiddleditch/gha-setup-ninja@v3
uses: seanmiddleditch/gha-setup-ninja@v4

- name: Run pip installs
run: |
Expand Down Expand Up @@ -1090,7 +1108,7 @@ jobs:
run: env

- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Show Clang++ version before brew install llvm
run: clang++ --version
Expand Down
18 changes: 13 additions & 5 deletions .github/workflows/configure.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@ on:
- stable
- v*

permissions:
contents: read

env:
PIP_BREAK_SYSTEM_PACKAGES: 1
# For cmake:
VERBOSE: 1

Expand All @@ -22,26 +26,30 @@ jobs:
matrix:
runs-on: [ubuntu-20.04, macos-latest, windows-latest]
arch: [x64]
cmake: ["3.23"]
cmake: ["3.26"]

include:
- runs-on: ubuntu-20.04
arch: x64
cmake: 3.4
cmake: "3.5"

- runs-on: ubuntu-20.04
arch: x64
cmake: "3.27"

- runs-on: macos-latest
arch: x64
cmake: 3.7
cmake: "3.7"

- runs-on: windows-2019
arch: x64 # x86 compilers seem to be missing on 2019 image
cmake: 3.18
cmake: "3.18"

name: 🐍 3.7 • CMake ${{ matrix.cmake }} • ${{ matrix.runs-on }}
runs-on: ${{ matrix.runs-on }}

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Setup Python 3.7
uses: actions/setup-python@v4
Expand Down
Loading