diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 124ede5..1f0eda0 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -28,7 +28,6 @@ jobs: CONFIG: linux_64_python3.9.____cpython UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: condaforge/linux-anvil-comp7 - maxParallel: 8 timeoutInMinutes: 360 steps: diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index cb8dc23..d4c9ef2 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -23,7 +23,6 @@ jobs: osx_64_python3.9.____cpython: CONFIG: osx_64_python3.9.____cpython UPLOAD_PACKAGES: 'True' - maxParallel: 8 timeoutInMinutes: 360 steps: diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 8bd0414..5c854f7 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -20,7 +20,6 @@ jobs: win_64_python3.9.____cpython: CONFIG: win_64_python3.9.____cpython UPLOAD_PACKAGES: 'True' - maxParallel: 4 timeoutInMinutes: 360 variables: CONDA_BLD_PATH: D:\\bld\\ diff --git a/.ci_support/linux_64_python3.6.____73_pypy.yaml b/.ci_support/linux_64_python3.6.____73_pypy.yaml index cf6fae6..4a92b93 100644 --- a/.ci_support/linux_64_python3.6.____73_pypy.yaml +++ b/.ci_support/linux_64_python3.6.____73_pypy.yaml @@ -1,3 +1,5 @@ +cdt_name: +- cos6 channel_sources: - conda-forge,defaults channel_targets: diff --git a/.ci_support/linux_64_python3.6.____cpython.yaml b/.ci_support/linux_64_python3.6.____cpython.yaml index 91df078..0c920e5 100644 --- a/.ci_support/linux_64_python3.6.____cpython.yaml +++ b/.ci_support/linux_64_python3.6.____cpython.yaml @@ -1,3 +1,5 @@ +cdt_name: +- cos6 channel_sources: - conda-forge,defaults channel_targets: diff --git a/.ci_support/linux_64_python3.7.____cpython.yaml b/.ci_support/linux_64_python3.7.____cpython.yaml index c1c0e3b..21fa82e 100644 --- a/.ci_support/linux_64_python3.7.____cpython.yaml +++ b/.ci_support/linux_64_python3.7.____cpython.yaml @@ -1,3 +1,5 @@ +cdt_name: +- cos6 channel_sources: - conda-forge,defaults channel_targets: diff --git a/.ci_support/linux_64_python3.8.____cpython.yaml b/.ci_support/linux_64_python3.8.____cpython.yaml index 3e80f1a..082190d 100644 --- a/.ci_support/linux_64_python3.8.____cpython.yaml +++ b/.ci_support/linux_64_python3.8.____cpython.yaml @@ -1,3 +1,5 @@ +cdt_name: +- cos6 channel_sources: - conda-forge,defaults channel_targets: diff --git a/.ci_support/linux_64_python3.9.____cpython.yaml b/.ci_support/linux_64_python3.9.____cpython.yaml index d70ba32..d2441be 100644 --- a/.ci_support/linux_64_python3.9.____cpython.yaml +++ b/.ci_support/linux_64_python3.9.____cpython.yaml @@ -1,3 +1,5 @@ +cdt_name: +- cos6 channel_sources: - conda-forge,defaults channel_targets: diff --git a/.ci_support/linux_ppc64le_python3.6.____73_pypy.yaml b/.ci_support/linux_ppc64le_python3.6.____73_pypy.yaml index 6b2fa80..1579163 100644 --- a/.ci_support/linux_ppc64le_python3.6.____73_pypy.yaml +++ b/.ci_support/linux_ppc64le_python3.6.____73_pypy.yaml @@ -1,3 +1,5 @@ +cdt_name: +- cos7 channel_sources: - conda-forge,defaults channel_targets: diff --git a/.ci_support/linux_ppc64le_python3.6.____cpython.yaml b/.ci_support/linux_ppc64le_python3.6.____cpython.yaml index 23c3615..bfd8491 100644 --- a/.ci_support/linux_ppc64le_python3.6.____cpython.yaml +++ b/.ci_support/linux_ppc64le_python3.6.____cpython.yaml @@ -1,3 +1,5 @@ +cdt_name: +- cos7 channel_sources: - conda-forge,defaults channel_targets: diff --git a/.ci_support/linux_ppc64le_python3.7.____cpython.yaml b/.ci_support/linux_ppc64le_python3.7.____cpython.yaml index f2a19d7..e64e34c 100644 --- a/.ci_support/linux_ppc64le_python3.7.____cpython.yaml +++ b/.ci_support/linux_ppc64le_python3.7.____cpython.yaml @@ -1,3 +1,5 @@ +cdt_name: +- cos7 channel_sources: - conda-forge,defaults channel_targets: diff --git a/.ci_support/linux_ppc64le_python3.8.____cpython.yaml b/.ci_support/linux_ppc64le_python3.8.____cpython.yaml index 2be263c..0aff624 100644 --- a/.ci_support/linux_ppc64le_python3.8.____cpython.yaml +++ b/.ci_support/linux_ppc64le_python3.8.____cpython.yaml @@ -1,3 +1,5 @@ +cdt_name: +- cos7 channel_sources: - conda-forge,defaults channel_targets: diff --git a/.ci_support/linux_ppc64le_python3.9.____cpython.yaml b/.ci_support/linux_ppc64le_python3.9.____cpython.yaml index d8fbea1..65fc224 100644 --- a/.ci_support/linux_ppc64le_python3.9.____cpython.yaml +++ b/.ci_support/linux_ppc64le_python3.9.____cpython.yaml @@ -1,3 +1,5 @@ +cdt_name: +- cos7 channel_sources: - conda-forge,defaults channel_targets: diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index dca4dbd..df5116d 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1 @@ -* @SylvainCorlay @ax3l @wjakob \ No newline at end of file +* @SylvainCorlay @ax3l @henryiii @wjakob \ No newline at end of file diff --git a/README.md b/README.md index 0e12f40..ee42fa1 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,8 @@ Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/pybind11-feedst Summary: Seamless operability between C++11 and Python +Documentation: https://pybind11.readthedocs.io/ + Current build status ==================== @@ -310,5 +312,6 @@ Feedstock Maintainers * [@SylvainCorlay](https://github.com/SylvainCorlay/) * [@ax3l](https://github.com/ax3l/) +* [@henryiii](https://github.com/henryiii/) * [@wjakob](https://github.com/wjakob/) diff --git a/build-locally.py b/build-locally.py index d92f4ed..3453cfe 100755 --- a/build-locally.py +++ b/build-locally.py @@ -61,7 +61,7 @@ def main(args=None): help="Setup debug environment using `conda debug`", ) p.add_argument( - "--output-id", help="If running debug, specifiy the output to setup." + "--output-id", help="If running debug, specify the output to setup." ) ns = p.parse_args(args=args) diff --git a/recipe/bld.bat b/recipe/bld.bat deleted file mode 100644 index d48a6cc..0000000 --- a/recipe/bld.bat +++ /dev/null @@ -1,20 +0,0 @@ -REM Install headers with projectConfig.cmake files with cmake - -mkdir build -cd build -cmake -G "NMake Makefiles" ^ - -D CMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ - -D PYBIND11_TEST=OFF ^ - %SRC_DIR% -if errorlevel 1 exit 1 - -nmake -if errorlevel 1 exit 1 - -nmake install -if errorlevel 1 exit 1 - -REM Install Python package -set PYBIND11_USE_CMAKE=1 -cd %SRC_DIR% -python %SRC_DIR%\setup.py install --single-version-externally-managed --record record.txt diff --git a/recipe/build.sh b/recipe/build.sh deleted file mode 100644 index bc0cea0..0000000 --- a/recipe/build.sh +++ /dev/null @@ -1,17 +0,0 @@ -# Install headers with projectConfig.cmake files with cmake -mkdir build -cd build - -cmake \ - -DCMAKE_INSTALL_PREFIX=$PREFIX \ - -DPYTHON_EXECUTABLE=$PREFIX/bin/python \ - -DPYBIND11_TEST=OFF \ - $SRC_DIR - -make -make install - -# Install Python package -export PYBIND11_USE_CMAKE=1 -cd $SRC_DIR -python $SRC_DIR/setup.py install --single-version-externally-managed --record record.txt diff --git a/recipe/gh2146.diff b/recipe/gh2146.diff deleted file mode 100644 index a19645b..0000000 --- a/recipe/gh2146.diff +++ /dev/null @@ -1,187 +0,0 @@ -diff --git a/.travis.yml b/.travis.yml -index d81cd8c7b..959e602d0 100644 ---- a/.travis.yml -+++ b/.travis.yml -@@ -143,8 +143,19 @@ matrix: - # Test a PyPy 2.7 build - - os: linux - dist: trusty -- env: PYPY=5.8 PYTHON=2.7 CPP=11 GCC=4.8 -- name: PyPy 5.8, Python 2.7, c++11, gcc 4.8 -+ env: PYPY=5.8.0 PYTHON=2.7 CPP=11 GCC=4.8 -+ name: PyPy 5.8.0, Python 2.7, c++11, gcc 4.8 -+ addons: -+ apt: -+ packages: -+ - libblas-dev -+ - liblapack-dev -+ - gfortran -+ # Test a PyPy 3.6 build -+ - os: linux -+ dist: trusty -+ env: PYPY=7.3.0 PYTHON=3.6 CPP=11 GCC=4.8 -+ name: PyPy 7.3.0, Python 3.6, c++11, gcc 4.8 - addons: - apt: - packages: -@@ -211,10 +222,17 @@ before_install: - SCRIPT_RUN_PREFIX="docker exec --tty $containerid" - $SCRIPT_RUN_PREFIX sh -c 'for s in 0 15; do sleep $s; apt-get update && apt-get -qy dist-upgrade && break; done' - else -- if [ "$PYPY" = "5.8" ]; then -+ if [ "$PYPY" = "5.8.0" ]; then - curl -fSL https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.8.0-linux64.tar.bz2 | tar xj - PY_CMD=$(echo `pwd`/pypy2-v5.8.0-linux64/bin/pypy) - CMAKE_EXTRA_ARGS+=" -DPYTHON_EXECUTABLE:FILEPATH=$PY_CMD" -+ elif [ -n "$PYPY" ]; then -+ curl -fSL https://bitbucket.org/pypy/pypy/downloads/pypy${PYTHON:0:3}-v${PYPY}-linux64.tar.bz2 | tar xj -+ PY_CMD=$PWD/pypy${PYTHON:0:3}-v${PYPY}-linux64/bin/pypy -+ if [ "${PYTHON:0:1}" = "3" ]; then -+ PY_CMD="${PY_CMD}3" -+ fi -+ CMAKE_EXTRA_ARGS+=" -DPYTHON_EXECUTABLE:FILEPATH=$PY_CMD" - else - PY_CMD=python$PYTHON - if [ "$TRAVIS_OS_NAME" = "osx" ]; then -@@ -252,16 +270,14 @@ install: - export CXXFLAGS="-stdlib=libc++" - fi - -- export NPY_NUM_BUILD_JOBS=2 -- echo "Installing pytest, numpy, scipy..." - local PIP_CMD="" -- if [ -n $PYPY ]; then -- # For expediency, install only versions that are available on the extra index. -- travis_wait 30 \ -- $PY_CMD -m pip install --user --upgrade --extra-index-url https://imaginary.ca/trusty-pypi \ -- pytest numpy==1.15.4 scipy==1.2.0 -+ export NPY_NUM_BUILD_JOBS=2 -+ if [ -n "$PYPY" ]; then -+ echo Installing "pytest" -+ $PY_CMD -m pip install --user --upgrade pytest - else -- $PY_CMD -m pip install --user --upgrade pytest numpy scipy -+ echo "Installing pytest, numpy, scipy..." -+ $PY_CMD -m pip install --user --upgrade pytest numpy scipy - fi - echo "done." - -diff --git a/include/pybind11/detail/class.h b/include/pybind11/detail/class.h -index edfa7de68..6fc9862fa 100644 ---- a/include/pybind11/detail/class.h -+++ b/include/pybind11/detail/class.h -@@ -15,7 +15,7 @@ - NAMESPACE_BEGIN(PYBIND11_NAMESPACE) - NAMESPACE_BEGIN(detail) - --#if PY_VERSION_HEX >= 0x03030000 -+#if PY_VERSION_HEX >= 0x03030000 && !defined(PYPY_VERSION) - # define PYBIND11_BUILTIN_QUALNAME - # define PYBIND11_SET_OLDPY_QUALNAME(obj, nameobj) - #else -@@ -448,7 +448,7 @@ extern "C" inline int pybind11_clear(PyObject *self) { - /// Give instances of this type a `__dict__` and opt into garbage collection. - inline void enable_dynamic_attributes(PyHeapTypeObject *heap_type) { - auto type = &heap_type->ht_type; --#if defined(PYPY_VERSION) -+#if defined(PYPY_VERSION) && (PYPY_VERSION_NUM < 0x06000000) - pybind11_fail(std::string(type->tp_name) + ": dynamic attributes are " - "currently not supported in " - "conjunction with PyPy!"); -diff --git a/include/pybind11/eval.h b/include/pybind11/eval.h -index ea85ba1db..422e629f5 100644 ---- a/include/pybind11/eval.h -+++ b/include/pybind11/eval.h -@@ -66,6 +66,20 @@ void exec(const char (&s)[N], object global = globals(), object local = object() - eval(s, global, local); - } - -+#if defined(PYPY_VERSION) && PY_VERSION_HEX >= 0x3000000 -+template -+object eval_file(str, object, object) { -+ pybind11_fail("eval_file not supported in PyPy3. Use eval"); -+} -+template -+object eval_file(str, object) { -+ pybind11_fail("eval_file not supported in PyPy3. Use eval"); -+} -+template -+object eval_file(str) { -+ pybind11_fail("eval_file not supported in PyPy3. Use eval"); -+} -+#else - template - object eval_file(str fname, object global = globals(), object local = object()) { - if (!local) -@@ -113,5 +127,6 @@ object eval_file(str fname, object global = globals(), object local = object()) - throw error_already_set(); - return reinterpret_steal(result); - } -+#endif - - NAMESPACE_END(PYBIND11_NAMESPACE) -diff --git a/tests/conftest.py b/tests/conftest.py -index 57f681c66..82f9a0ed1 100644 ---- a/tests/conftest.py -+++ b/tests/conftest.py -@@ -215,6 +215,10 @@ def pytest_configure(): - pytest.requires_eigen_and_scipy = skipif( - not have_eigen or not scipy, reason="eigen and/or scipy are not installed") - pytest.unsupported_on_pypy = skipif(pypy, reason="unsupported on PyPy") -+ pytest.unsupported_on_pypy3 = skipif(pypy and sys.version_info.major >= 3, -+ reason="unsupported on PyPy3") -+ pytest.unsupported_on_pypy_lt_6 = skipif(pypy and sys.pypy_version_info[0] < 6, -+ reason="unsupported on PyPy<6") - pytest.unsupported_on_py2 = skipif(sys.version_info.major < 3, - reason="unsupported on Python 2.x") - pytest.gc_collect = gc_collect -diff --git a/tests/test_eval.py b/tests/test_eval.py -index bda4ef6bf..94228e7d2 100644 ---- a/tests/test_eval.py -+++ b/tests/test_eval.py -@@ -1,4 +1,5 @@ - import os -+import pytest - from pybind11_tests import eval_ as m - - -@@ -10,8 +11,12 @@ def test_evals(capture): - assert m.test_eval() - assert m.test_eval_single_statement() - -+ assert m.test_eval_failure() -+ -+ -+@pytest.unsupported_on_pypy3 -+def test_eval_file(): - filename = os.path.join(os.path.dirname(__file__), "test_eval_call.py") - assert m.test_eval_file(filename) - -- assert m.test_eval_failure() - assert m.test_eval_file_failure() -diff --git a/tests/test_multiple_inheritance.cpp b/tests/test_multiple_inheritance.cpp -index ba1674fb2..70e341785 100644 ---- a/tests/test_multiple_inheritance.cpp -+++ b/tests/test_multiple_inheritance.cpp -@@ -193,7 +193,7 @@ TEST_SUBMODULE(multiple_inheritance, m) { - .def_readwrite_static("static_value", &VanillaStaticMix2::static_value); - - --#if !defined(PYPY_VERSION) -+#if !(defined(PYPY_VERSION) && (PYPY_VERSION_NUM < 0x06000000)) - struct WithDict { }; - struct VanillaDictMix1 : Vanilla, WithDict { }; - struct VanillaDictMix2 : WithDict, Vanilla { }; -diff --git a/tests/test_multiple_inheritance.py b/tests/test_multiple_inheritance.py -index 475dd3b3d..1c493f397 100644 ---- a/tests/test_multiple_inheritance.py -+++ b/tests/test_multiple_inheritance.py -@@ -253,7 +253,7 @@ def test_mi_static_properties(): - assert d.static_value == 0 - - --@pytest.unsupported_on_pypy -+@pytest.unsupported_on_pypy_lt_6 - def test_mi_dynamic_attributes(): - """Mixing bases with and without dynamic attribute support""" - diff --git a/recipe/meta.yaml b/recipe/meta.yaml index ff44e5c..6eb38f3 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,5 +1,5 @@ -{% set version = "2.5.0" %} -{% set sha256 = "97504db65640570f32d3fdf701c25a340c8643037c3b69aec469c10c93dc8504" %} +{% set version = "2.6.0" %} +{% set sha256 = "90b705137b69ee3b5fc655eaca66d0dc9862ea1759226f7ccd3098425ae69571" %} package: name: pybind11 @@ -9,19 +9,26 @@ source: fn: pybind11-{{ version }}.tar.gz url: https://github.com/pybind/pybind11/archive/v{{ version }}.tar.gz sha256: {{ sha256 }} - patches: - - gh2146.diff build: - number: 1 + number: 0 + script: + # There are several required flags, like --no-deps, but conda-build nicely sets them for us + # https://github.com/conda/conda-build/blob/d75ef9c66dbcc832d8d96f33a2aecfe893266e8c/conda_build/build.py#L2517-L2527 + - {{ PYTHON }} -m pip install . -vvv + - export PYBIND11_GLOBAL_SDIST=1 # [unix] + - set PYBIND11_GLOBAL_SDIST=1 # [win] + - set PYBIND11_GLOBAL_PREFIX=Library # [win] + - {{ PYTHON }} -m pip install . -vvv requirements: build: - cmake - - make # [unix] + - make # [unix] - {{ compiler('cxx') }} host: - python + - pip - setuptools run: - python @@ -40,11 +47,14 @@ test: about: home: https://github.com/pybind/pybind11/ license: BSD-3-Clause - summary: Seamless operability between C++11 and Python + license_family: BSD license_file: LICENSE + summary: Seamless operability between C++11 and Python + doc_url: https://pybind11.readthedocs.io/ extra: recipe-maintainers: - ax3l - SylvainCorlay - wjakob + - henryiii