Repository: AnacondaRecipes/pyvinecopulib-feedstock
Pull request #2: pyvinecopulib 0.7.1 :snowflake:
Author: login: Andrii-Osipov
Created: 2025-04-09T14:30:17Z | Merged: 2025-04-17T16:55:36Z

pyvinecopulib 0.7.1 :snowflake:

**Destination channel:** Snowflake

### Links

- [PKG-7607]
- dev_url:        https://github.com/vinecopulib/pyvinecopulib/tree/v0.7.1
- conda_forge:    https://github.com/conda-forge/pyvinecopulib-feedstock
- pypi:           https://pypi.org/project/pyvinecopulib/0.7.1
- pypi inspector: https://inspector.pypi.io/project/pyvinecopulib/0.7.1


### Depends on

- https://github.com/AnacondaRecipes/nanobind-feedstock/pull/3

### Explanation of changes:

- new version number


[PKG-7607]: https://anaconda.atlassian.net/browse/PKG-7607?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ


Diff:
diff --git a/recipe/meta.yaml b/recipe/meta.yaml
index 5621645..3118082 100644
--- a/recipe/meta.yaml
+++ b/recipe/meta.yaml
@@ -1,5 +1,5 @@
 {% set name = "pyvinecopulib" %}
-{% set version = "0.6.5" %}
+{% set version = "0.7.1" %}
 
 package:
   name: {{ name|lower }}
@@ -7,50 +7,51 @@ package:
 
 source:
   url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz
-  sha256: 7c5ba2864947958b7ea23eca66efc9d927ab3d97b2fa7a168656a5e69411ce2b
+  sha256: be1ecca5a95e9eddc332938954f56706b4390d50a15ae22e020828665a0dc7a7
   patches:
-    - patches/0001-remove_host_deps_from_run.patch
-    - patches/0002-unvendor_boost_eigen_wdm_vinecopulib.patch
+    - patches/0001-unvendor-wdm-and-vinecopulib.patch
 
 build:
   number: 0
-  skip: true  # [py<38]
-  script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vv
-  missing_dso_whitelist:
-    - '$RPATH/ld64.so.1'  # [s390x]
+  script:
+    - set CMAKE_GENERATOR=Ninja  # [win]
+    - export CMAKE_GENERATOR=Ninja  # [not win]
+    - {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vv
+  skip: True  # [py<38]
 
 requirements:
   build:
     - {{ compiler('cxx') }}
-    - {{ compiler('c') }}
-    - patch       # [not win]
-    - m2-patch    # [win]
+    - cmake
+    - ninja
+    - patch  # [not win]
+    - m2-patch  # [win]
   host:
+    - pip
     - python
-    - setuptools >=64.0.0
-    - setuptools-scm >=8.0.0
-    - pybind11 >=2.10.0
     - wheel
-    - pip
-    - libboost {{ boost }}
+    - scikit-build-core >=0.4.3
+    - nanobind >=2.5.0
     - eigen 3.4.0
-    - wdm 0.2.4
-    - vinecopulib 0.6.3
+    - vinecopulib {{ version }}
   run:
     - python
     - numpy >=1.14
+    - matplotlib-base >=3.0
+    - networkx >=3.0
+    - pydot >=3.0
 
 test:
+  source_files:
+    - tests
   imports:
     - pyvinecopulib
   requires:
     - pip
     - pytest
-  source_files:
-    - tests/test_simulate.py
   commands:
     - pip check
-    - pytest -v tests/test_simulate.py
+    - pytest -v tests
 
 about:
   home: https://vinecopulib.github.io/pyvinecopulib
@@ -69,3 +70,4 @@ about:
 extra:
   recipe-maintainers:
     - lorepirri
+    - Andrii-Osipov
diff --git a/recipe/patches/0001-remove_host_deps_from_run.patch b/recipe/patches/0001-remove_host_deps_from_run.patch
deleted file mode 100644
index 5c7cc3c..0000000
--- a/recipe/patches/0001-remove_host_deps_from_run.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 3518f3741ef5202c894f69ca8472c644635e6277 Mon Sep 17 00:00:00 2001
-From: Lorenzo Pirritano <lpirritano@anaconda.com>
-Date: Thu, 6 Jun 2024 15:45:48 +0200
-Subject: [PATCH 1/2] remove_host_deps_from_run
-
----
- pyproject.toml | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/pyproject.toml b/pyproject.toml
-index e470755..93d2eb7 100644
---- a/pyproject.toml
-+++ b/pyproject.toml
-@@ -33,9 +33,6 @@ classifiers = [
-         'License :: OSI Approved :: MIT License'
- ]
- dependencies = [
--  'pybind11>=2.10.0',
--  'setuptools>=64.0.0',
--  'setuptools_scm>=8.0.0',
-   'numpy>=1.14'
- ]
- 
--- 
-2.39.1
-
diff --git a/recipe/patches/0001-unvendor-wdm-and-vinecopulib.patch b/recipe/patches/0001-unvendor-wdm-and-vinecopulib.patch
new file mode 100644
index 0000000..3ab2d29
--- /dev/null
+++ b/recipe/patches/0001-unvendor-wdm-and-vinecopulib.patch
@@ -0,0 +1,86 @@
+From 4666e135af15a50c3bcf759f8f8662b68348eeee Mon Sep 17 00:00:00 2001
+From: Andrii Osipov <aosipov@anaconda.com>
+Date: Wed, 16 Apr 2025 13:24:32 -0700
+Subject: [PATCH] unvendor wdm and vinecopulib
+
+---
+ CMakeLists.txt | 49 +++++++++++++++++++------------------------------
+ 1 file changed, 19 insertions(+), 30 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2162897..62c0c96 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -32,42 +32,27 @@ if (NOT SKBUILD)
+   after editing C++ files.")
+ endif()
+ 
+-include(lib/vinecopulib/cmake/options.cmake               REQUIRED)
+-
+-include(lib/vinecopulib/cmake/compilerDefOpt.cmake        REQUIRED)
+-
+-# wdm_INCLUDE_DIRS is lib/wdm/include
+-set(vinecopulib_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/lib/vinecopulib/include)
+-set(wdm_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/lib/wdm/include)
+-set(pyvinecopulib_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/src/include)
+-
+-# BUILD_TESTING is turned off
+ set(BUILD_TESTING OFF)
+ 
+-# Look for Eigen3 and Boost
+-if(DEFINED ENV{EIGEN3_INCLUDE_DIR})
+-  set(EIGEN3_INCLUDE_DIR $ENV{EIGEN3_INCLUDE_DIR})
+-endif()
++find_package(Eigen3 3.4.0 REQUIRED)
++find_package(vinecopulib 0.7.1 REQUIRED)
+ 
+-if(DEFINED ENV{Boost_INCLUDE_DIR})
+-  set(Boost_INCLUDE_DIRS $ENV{Boost_INCLUDE_DIR})
+-endif()
++set(PYVINECOPULIB_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/src/include)
++
++include_directories(
++  ${EIGEN3_INCLUDE_DIR}
++  ${PYVINECOPULIB_INCLUDE_DIRS}
++)
+ 
+-include(lib/vinecopulib/cmake/findDependencies.cmake      REQUIRED)
++message(STATUS "Eigen3: ${EIGEN3_INCLUDE_DIR}")
+ 
+-# Try to import all Python components potentially needed by nanobind
+-find_package(Python 3.8
++find_package(
++  Python 3.8
+   REQUIRED COMPONENTS Interpreter Development.Module
+-  OPTIONAL_COMPONENTS Development.SABIModule)
++  OPTIONAL_COMPONENTS Development.SABIModule
++)
+ message(STATUS "Python_EXECUTABLE= ${Python_EXECUTABLE}")
+-
+-# Import nanobind through CMake's find_package mechanism
+-find_package(nanobind CONFIG REQUIRED)
+-
+-include(lib/vinecopulib/cmake/printInfo.cmake             REQUIRED)
+-
+-include_directories(SYSTEM ${external_includes})
+-include_directories(${vinecopulib_INCLUDE_DIRS} ${pyvinecopulib_INCLUDE_DIRS})
++find_package(nanobind 2.5.0 CONFIG REQUIRED)
+ 
+ nanobind_add_module(
+   pyvinecopulib_ext
+@@ -93,7 +78,11 @@ nanobind_add_module(
+   src/pyvinecopulib_ext.cpp
+ )
+ 
+-target_compile_definitions(pyvinecopulib_ext PRIVATE VERSION_INFO=\"${PROJECT_VERSION}\")
++target_compile_definitions(pyvinecopulib_ext 
++  PRIVATE 
++  VERSION_INFO=\"${PROJECT_VERSION}\" 
++  BOOST_ALL_NO_LIB
++)
+ 
+ # Install directive for scikit-build-core
+ install(TARGETS pyvinecopulib_ext
+-- 
+2.39.3 (Apple Git-146)
+
diff --git a/recipe/patches/0002-unvendor_boost_eigen_wdm_vinecopulib.patch b/recipe/patches/0002-unvendor_boost_eigen_wdm_vinecopulib.patch
deleted file mode 100644
index decb5db..0000000
--- a/recipe/patches/0002-unvendor_boost_eigen_wdm_vinecopulib.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 4222f1a57a9a7a46811aeceaff07ef5cb7cc524f Mon Sep 17 00:00:00 2001
-From: Lorenzo Pirritano <lpirritano@anaconda.com>
-Date: Fri, 14 Jun 2024 11:44:01 +0200
-Subject: [PATCH 2/2] unvendor_boost_eigen_wdm_vinecopulib
-
-Also remove:
-  - lib/boost_1_84_0.tar.gz
-  - lib/boost
-  - lib/eigen
-  - lib/wdm
-  - lib/vinecopulib
-
----
- setup.py | 30 +++++++++++++++++++-----------
- 1 file changed, 19 insertions(+), 11 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index ce9de18..2be23d3 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1,17 +1,25 @@
- import os
--import tarfile
--from glob import glob
-+import shutil
- from pathlib import Path
- 
- from pybind11.setup_helpers import Pybind11Extension, build_ext
- from setuptools import setup
- 
--# Extract boost if not already done.
--if not os.path.isdir('lib/boost'):
--  boost_archive = glob(os.path.join('lib', 'boost*.tar.gz'))[0]
--  tar = tarfile.open(boost_archive)
--  tar.extractall(path='lib/boost')
--  tar.close()
-+# remove folder lib/ with vendored deps
-+# (eigen, boost_1_84_0.tar.gz, wdm, vinecopulib)
-+if not os.path.isdir("lib"):
-+    shutil.rmtree("lib")
-+
-+include_dir = os.environ.get("LIBRARY_INC", None)
-+# On Mac and Linux LIBRARY_INC is not defined
-+if include_dir is None:
-+    include_dir = os.path.join(os.environ.get("PREFIX"), 'include')
-+
-+boost_include_dir = os.path.join(include_dir, 'boost')
-+eigen_include_dir = os.path.join(include_dir, 'eigen3')
-+eigen_unsupported_include_dir = os.path.join(include_dir, 'eigen', 'unsupported')
-+wdm_include_dir = os.path.join(include_dir, 'wdm')
-+vinecopulib_include_dir = os.path.join(include_dir, 'vinecopulib')
- 
- setup(
-     name='pyvinecopulib',
-@@ -20,9 +28,9 @@ setup(
-     ext_modules=[
-         Pybind11Extension('pyvinecopulib', ['src/main.cpp'],
-                           include_dirs=[
--                              'lib/boost', 'lib/eigen',
--                              'lib/eigen/unsupported',
--                              'lib/vinecopulib/include', 'lib/wdm/include'
-+                              boost_include_dir, eigen_include_dir,
-+                              eigen_unsupported_include_dir,
-+                              vinecopulib_include_dir, wdm_include_dir
-                           ],
-                           language='c++',
-                           cxx_std=17)
--- 
-2.39.1
-


Reviews:
user: login: cbouss
state: COMMENTED
author_association: NONE
submitted_at: 2025-04-09T20:24:13Z
user: login: Andrii-Osipov
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-10T07:34:18Z
user: login: Andrii-Osipov
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-10T07:35:38Z
user: login: lorepirri
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-14T17:20:34Z
user: login: lorepirri
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-14T17:52:27Z
user: login: skupr-anaconda
body: LGTM but matplotlib-base
state: APPROVED
author_association: NONE
submitted_at: 2025-04-16T13:45:58Z
user: login: JeanChristopheMorinPerso
body: This PRs reverts the unvendoring we did for vinecopulib and wdm. `vinecopulib` should be updated to 0.7.1. Then, unvendoring should probably be done in https://github.com/vinecopulib/pyvinecopulib/blob/v0.7.1/CMakeLists.txt#L39-L70 or something like that.
state: CHANGES_REQUESTED
author_association: NONE
submitted_at: 2025-04-16T13:46:12Z
user: login: JeanChristopheMorinPerso
state: COMMENTED
author_association: NONE
submitted_at: 2025-04-17T14:05:21Z
user: login: Andrii-Osipov
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-17T14:35:48Z
user: login: Andrii-Osipov
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-17T14:56:53Z
user: login: JeanChristopheMorinPerso
state: APPROVED
author_association: NONE
submitted_at: 2025-04-17T15:17:32Z

Review comments:
diff_hunk: @@ -0,0 +1,39 @@
+From b97eced57b518f3a8de750e41f08ab294d8f017b Mon Sep 17 00:00:00 2001
+From: Andrii Osipov <aosipov@anaconda.com>
+Date: Wed, 9 Apr 2025 07:26:36 -0700
+Subject: [PATCH] fix osx linker for nanobind -U symbols in
+ darwin-ld-cpython.sym
+
+---
+ CMakeLists.txt | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2162897..686011d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -32,6 +32,10 @@ if (NOT SKBUILD)
+   after editing C++ files.")
+ endif()
+ 
++if(APPLE)
++  set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -undefined dynamic_lookup")
path: recipe/patches/0001-fix-osx-linker-for-nanobind-U-symbols-in-darwin-ld-c.patch
user: login: cbouss
body: Without this, I get:
`  ld: warning: ignoring file /Users/cbousseau/work/croots/pyvinecopulib-feedstock/pyvinecopulib_1744225471381/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.12/site-packages/nanobind/cmake/darwin-ld-cpython.sym, building for macOS-arm64 but attempting to link with file built for unknown-unsupported file format ( 0x2D 0x55 0x20 0x5F 0x50 0x79 0x41 0x49 0x74 0x65 0x72 0x5F 0x43 0x68 0x65 0x63 )
`

This look like there is an issue with nanobind. Could you double check?
created_at: 2025-04-09T20:24:13Z
author_association: NONE
diff_hunk: @@ -0,0 +1,39 @@
+From b97eced57b518f3a8de750e41f08ab294d8f017b Mon Sep 17 00:00:00 2001
+From: Andrii Osipov <aosipov@anaconda.com>
+Date: Wed, 9 Apr 2025 07:26:36 -0700
+Subject: [PATCH] fix osx linker for nanobind -U symbols in
+ darwin-ld-cpython.sym
+
+---
+ CMakeLists.txt | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2162897..686011d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -32,6 +32,10 @@ if (NOT SKBUILD)
+   after editing C++ files.")
+ endif()
+ 
++if(APPLE)
++  set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -undefined dynamic_lookup")
path: recipe/patches/0001-fix-osx-linker-for-nanobind-U-symbols-in-darwin-ld-c.patch
user: login: Andrii-Osipov
body: Nanobind added the **@** symbol for Mac, and the linker can’t find this file with -U symbols:
```
ld: file not found: @/Users/aosipo/miniconda3/conda-bld/pyvinecopulib_1742995248625/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.9/site-packages/nanobind/cmake/darwin-ld-cpython.sym
```
https://github.com/wjakob/nanobind/blob/master/cmake/nanobind-config.cmake#L105
So, I just deleted **@** and add **-undefined dynamic_lookup**:
https://github.com/AnacondaRecipes/nanobind-feedstock/blob/main/recipe/patches/0001-remove-%40-symbol-from-path.patch#L19

created_at: 2025-04-10T07:34:18Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,39 @@
+From b97eced57b518f3a8de750e41f08ab294d8f017b Mon Sep 17 00:00:00 2001
+From: Andrii Osipov <aosipov@anaconda.com>
+Date: Wed, 9 Apr 2025 07:26:36 -0700
+Subject: [PATCH] fix osx linker for nanobind -U symbols in
+ darwin-ld-cpython.sym
+
+---
+ CMakeLists.txt | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2162897..686011d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -32,6 +32,10 @@ if (NOT SKBUILD)
+   after editing C++ files.")
+ endif()
+ 
++if(APPLE)
++  set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -undefined dynamic_lookup")
path: recipe/patches/0001-fix-osx-linker-for-nanobind-U-symbols-in-darwin-ld-c.patch
user: login: Andrii-Osipov
body:  The tests pass success.
created_at: 2025-04-10T07:35:38Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,39 @@
+From b97eced57b518f3a8de750e41f08ab294d8f017b Mon Sep 17 00:00:00 2001
+From: Andrii Osipov <aosipov@anaconda.com>
+Date: Wed, 9 Apr 2025 07:26:36 -0700
+Subject: [PATCH] fix osx linker for nanobind -U symbols in
+ darwin-ld-cpython.sym
+
+---
+ CMakeLists.txt | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2162897..686011d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -32,6 +32,10 @@ if (NOT SKBUILD)
+   after editing C++ files.")
+ endif()
+ 
++if(APPLE)
++  set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -undefined dynamic_lookup")
path: recipe/patches/0001-fix-osx-linker-for-nanobind-U-symbols-in-darwin-ld-c.patch
user: login: lorepirri
body: We need to fix nanobind, see https://github.com/AnacondaRecipes/nanobind-feedstock/pull/3
created_at: 2025-04-14T17:20:34Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,39 @@
+From b97eced57b518f3a8de750e41f08ab294d8f017b Mon Sep 17 00:00:00 2001
+From: Andrii Osipov <aosipov@anaconda.com>
+Date: Wed, 9 Apr 2025 07:26:36 -0700
+Subject: [PATCH] fix osx linker for nanobind -U symbols in
+ darwin-ld-cpython.sym
+
+---
+ CMakeLists.txt | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2162897..686011d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -32,6 +32,10 @@ if (NOT SKBUILD)
+   after editing C++ files.")
+ endif()
+ 
++if(APPLE)
++  set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -undefined dynamic_lookup")
path: recipe/patches/0001-fix-osx-linker-for-nanobind-U-symbols-in-darwin-ld-c.patch
user: login: lorepirri
body: Done
created_at: 2025-04-14T17:52:27Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1,56 +1,51 @@
 {% set name = "pyvinecopulib" %}
-{% set version = "0.6.5" %}
+{% set version = "0.7.1" %}
 
 package:
   name: {{ name|lower }}
   version: {{ version }}
 
 source:
   url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz
-  sha256: 7c5ba2864947958b7ea23eca66efc9d927ab3d97b2fa7a168656a5e69411ce2b
-  patches:
-    - patches/0001-remove_host_deps_from_run.patch
-    - patches/0002-unvendor_boost_eigen_wdm_vinecopulib.patch
+  sha256: be1ecca5a95e9eddc332938954f56706b4390d50a15ae22e020828665a0dc7a7
 
 build:
   number: 0
-  skip: true  # [py<38]
-  script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vv
-  missing_dso_whitelist:
-    - '$RPATH/ld64.so.1'  # [s390x]
+  script: 
+    - set CMAKE_GENERATOR=Ninja  # [win]
+    - {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vv
+  skip: True  # [py<38]
 
 requirements:
   build:
     - {{ compiler('cxx') }}
-    - {{ compiler('c') }}
-    - patch       # [not win]
-    - m2-patch    # [win]
+    - cmake
+    - make  # [not win]
+    - eigen
+    - py-boost
   host:
-    - python
-    - setuptools >=64.0.0
-    - setuptools-scm >=8.0.0
-    - pybind11 >=2.10.0
-    - wheel
     - pip
-    - libboost {{ boost }}
-    - eigen 3.4.0
-    - wdm 0.2.4
-    - vinecopulib 0.6.3
+    - python
+    - scikit-build-core >=0.4.3
+    - nanobind >=2.5.0
   run:
     - python
     - numpy >=1.14
+    - matplotlib >=3.0
path: recipe/meta.yaml
user: login: skupr-anaconda
body: ```suggestion
    - matplotlib-base >=3.0
```
Lightweight variant
created_at: 2025-04-16T13:45:36Z
author_association: NONE
diff_hunk: @@ -0,0 +1,90 @@
+From 48d576d6f15a7575726d439ff8b5cfe2164c4155 Mon Sep 17 00:00:00 2001
+From: Andrii Osipov <aosipov@anaconda.com>
+Date: Wed, 16 Apr 2025 13:24:32 -0700
+Subject: [PATCH] unvendor wdm and vinecopulib
+
+---
+ CMakeLists.txt | 53 ++++++++++++++++++++++----------------------------
+ 1 file changed, 23 insertions(+), 30 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2162897..38f37b0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -32,42 +32,31 @@ if (NOT SKBUILD)
+   after editing C++ files.")
+ endif()
+ 
+-include(lib/vinecopulib/cmake/options.cmake               REQUIRED)
+-
+-include(lib/vinecopulib/cmake/compilerDefOpt.cmake        REQUIRED)
+-
+-# wdm_INCLUDE_DIRS is lib/wdm/include
+-set(vinecopulib_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/lib/vinecopulib/include)
+-set(wdm_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/lib/wdm/include)
+-set(pyvinecopulib_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/src/include)
+-
+-# BUILD_TESTING is turned off
+ set(BUILD_TESTING OFF)
+ 
+-# Look for Eigen3 and Boost
+-if(DEFINED ENV{EIGEN3_INCLUDE_DIR})
+-  set(EIGEN3_INCLUDE_DIR $ENV{EIGEN3_INCLUDE_DIR})
+-endif()
++find_package(Eigen3 3.4.0 REQUIRED)
++find_package(Boost 1.82 REQUIRED)
++find_package(wdm 0.2.6 REQUIRED)
path: recipe/patches/0001-unvendor-wdm-and-vinecopulib.patch
user: login: JeanChristopheMorinPerso
body: ```suggestion
```
I don't think these two are needed. Eigen is needed because of https://github.com/wjakob/nanobind/blob/master/include/nanobind/eigen/dense.h#L14, but boost and wdm are not used directly. THey are only needed for vinecopulib, which already has the proper dependencies set.
created_at: 2025-04-17T14:01:38Z
author_association: NONE
diff_hunk: @@ -1,56 +1,58 @@
 {% set name = "pyvinecopulib" %}
-{% set version = "0.6.5" %}
+{% set version = "0.7.1" %}
 
 package:
   name: {{ name|lower }}
   version: {{ version }}
 
 source:
   url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz
-  sha256: 7c5ba2864947958b7ea23eca66efc9d927ab3d97b2fa7a168656a5e69411ce2b
+  sha256: be1ecca5a95e9eddc332938954f56706b4390d50a15ae22e020828665a0dc7a7
   patches:
-    - patches/0001-remove_host_deps_from_run.patch
-    - patches/0002-unvendor_boost_eigen_wdm_vinecopulib.patch
+    - patches/0001-unvendor-wdm-and-vinecopulib.patch
 
 build:
   number: 0
-  skip: true  # [py<38]
-  script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vv
-  missing_dso_whitelist:
-    - '$RPATH/ld64.so.1'  # [s390x]
+  script:
+    - set CMAKE_GENERATOR=Ninja  # [win]
+    - {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vv
+  skip: True  # [py<38]
 
 requirements:
   build:
     - {{ compiler('cxx') }}
-    - {{ compiler('c') }}
-    - patch       # [not win]
-    - m2-patch    # [win]
+    - cmake
+    - make  # [not win]
+    - patch  # [not win]
+    - m2-patch  # [win]
   host:
+    - pip
     - python
-    - setuptools >=64.0.0
-    - setuptools-scm >=8.0.0
-    - pybind11 >=2.10.0
     - wheel
-    - pip
-    - libboost {{ boost }}
+    - scikit-build-core >=0.4.3
+    - nanobind >=2.5.0
+    - boost-cpp {{ boost }}
path: recipe/meta.yaml
user: login: JeanChristopheMorinPerso
body: ```suggestion
```
created_at: 2025-04-17T14:01:57Z
author_association: NONE
diff_hunk: @@ -1,56 +1,58 @@
 {% set name = "pyvinecopulib" %}
-{% set version = "0.6.5" %}
+{% set version = "0.7.1" %}
 
 package:
   name: {{ name|lower }}
   version: {{ version }}
 
 source:
   url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz
-  sha256: 7c5ba2864947958b7ea23eca66efc9d927ab3d97b2fa7a168656a5e69411ce2b
+  sha256: be1ecca5a95e9eddc332938954f56706b4390d50a15ae22e020828665a0dc7a7
   patches:
-    - patches/0001-remove_host_deps_from_run.patch
-    - patches/0002-unvendor_boost_eigen_wdm_vinecopulib.patch
+    - patches/0001-unvendor-wdm-and-vinecopulib.patch
 
 build:
   number: 0
-  skip: true  # [py<38]
-  script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vv
-  missing_dso_whitelist:
-    - '$RPATH/ld64.so.1'  # [s390x]
+  script:
+    - set CMAKE_GENERATOR=Ninja  # [win]
+    - {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vv
+  skip: True  # [py<38]
 
 requirements:
   build:
     - {{ compiler('cxx') }}
-    - {{ compiler('c') }}
-    - patch       # [not win]
-    - m2-patch    # [win]
+    - cmake
+    - make  # [not win]
+    - patch  # [not win]
+    - m2-patch  # [win]
   host:
+    - pip
     - python
-    - setuptools >=64.0.0
-    - setuptools-scm >=8.0.0
-    - pybind11 >=2.10.0
     - wheel
-    - pip
-    - libboost {{ boost }}
+    - scikit-build-core >=0.4.3
+    - nanobind >=2.5.0
+    - boost-cpp {{ boost }}
     - eigen 3.4.0
-    - wdm 0.2.4
-    - vinecopulib 0.6.3
+    - wdm 0.2.6
path: recipe/meta.yaml
user: login: JeanChristopheMorinPerso
body: ```suggestion
```
created_at: 2025-04-17T14:02:06Z
author_association: NONE
diff_hunk: @@ -1,56 +1,58 @@
 {% set name = "pyvinecopulib" %}
-{% set version = "0.6.5" %}
+{% set version = "0.7.1" %}
 
 package:
   name: {{ name|lower }}
   version: {{ version }}
 
 source:
   url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz
-  sha256: 7c5ba2864947958b7ea23eca66efc9d927ab3d97b2fa7a168656a5e69411ce2b
+  sha256: be1ecca5a95e9eddc332938954f56706b4390d50a15ae22e020828665a0dc7a7
   patches:
-    - patches/0001-remove_host_deps_from_run.patch
-    - patches/0002-unvendor_boost_eigen_wdm_vinecopulib.patch
+    - patches/0001-unvendor-wdm-and-vinecopulib.patch
 
 build:
   number: 0
-  skip: true  # [py<38]
-  script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vv
-  missing_dso_whitelist:
-    - '$RPATH/ld64.so.1'  # [s390x]
+  script:
+    - set CMAKE_GENERATOR=Ninja  # [win]
+    - {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vv
+  skip: True  # [py<38]
 
 requirements:
   build:
     - {{ compiler('cxx') }}
-    - {{ compiler('c') }}
-    - patch       # [not win]
-    - m2-patch    # [win]
+    - cmake
+    - make  # [not win]
path: recipe/meta.yaml
user: login: JeanChristopheMorinPerso
body: ```suggestion
    - ninja
```
created_at: 2025-04-17T14:03:57Z
author_association: NONE
diff_hunk: @@ -1,56 +1,58 @@
 {% set name = "pyvinecopulib" %}
-{% set version = "0.6.5" %}
+{% set version = "0.7.1" %}
 
 package:
   name: {{ name|lower }}
   version: {{ version }}
 
 source:
   url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz
-  sha256: 7c5ba2864947958b7ea23eca66efc9d927ab3d97b2fa7a168656a5e69411ce2b
+  sha256: be1ecca5a95e9eddc332938954f56706b4390d50a15ae22e020828665a0dc7a7
   patches:
-    - patches/0001-remove_host_deps_from_run.patch
-    - patches/0002-unvendor_boost_eigen_wdm_vinecopulib.patch
+    - patches/0001-unvendor-wdm-and-vinecopulib.patch
 
 build:
   number: 0
-  skip: true  # [py<38]
-  script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vv
-  missing_dso_whitelist:
-    - '$RPATH/ld64.so.1'  # [s390x]
+  script:
+    - set CMAKE_GENERATOR=Ninja  # [win]
path: recipe/meta.yaml
user: login: JeanChristopheMorinPerso
body: ```suggestion
    - set CMAKE_GENERATOR=Ninja
```
created_at: 2025-04-17T14:04:52Z
author_association: NONE
diff_hunk: @@ -0,0 +1,90 @@
+From 48d576d6f15a7575726d439ff8b5cfe2164c4155 Mon Sep 17 00:00:00 2001
+From: Andrii Osipov <aosipov@anaconda.com>
+Date: Wed, 16 Apr 2025 13:24:32 -0700
+Subject: [PATCH] unvendor wdm and vinecopulib
+
+---
+ CMakeLists.txt | 53 ++++++++++++++++++++++----------------------------
+ 1 file changed, 23 insertions(+), 30 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2162897..38f37b0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -32,42 +32,31 @@ if (NOT SKBUILD)
+   after editing C++ files.")
+ endif()
+ 
+-include(lib/vinecopulib/cmake/options.cmake               REQUIRED)
+-
+-include(lib/vinecopulib/cmake/compilerDefOpt.cmake        REQUIRED)
+-
+-# wdm_INCLUDE_DIRS is lib/wdm/include
+-set(vinecopulib_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/lib/vinecopulib/include)
+-set(wdm_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/lib/wdm/include)
+-set(pyvinecopulib_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/src/include)
+-
+-# BUILD_TESTING is turned off
+ set(BUILD_TESTING OFF)
+ 
+-# Look for Eigen3 and Boost
+-if(DEFINED ENV{EIGEN3_INCLUDE_DIR})
+-  set(EIGEN3_INCLUDE_DIR $ENV{EIGEN3_INCLUDE_DIR})
+-endif()
++find_package(Eigen3 3.4.0 REQUIRED)
++find_package(Boost 1.82 REQUIRED)
++find_package(wdm 0.2.6 REQUIRED)
path: recipe/patches/0001-unvendor-wdm-and-vinecopulib.patch
user: login: Andrii-Osipov
body: done
please check one more time
created_at: 2025-04-17T14:35:48Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1,56 +1,58 @@
 {% set name = "pyvinecopulib" %}
-{% set version = "0.6.5" %}
+{% set version = "0.7.1" %}
 
 package:
   name: {{ name|lower }}
   version: {{ version }}
 
 source:
   url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz
-  sha256: 7c5ba2864947958b7ea23eca66efc9d927ab3d97b2fa7a168656a5e69411ce2b
+  sha256: be1ecca5a95e9eddc332938954f56706b4390d50a15ae22e020828665a0dc7a7
   patches:
-    - patches/0001-remove_host_deps_from_run.patch
-    - patches/0002-unvendor_boost_eigen_wdm_vinecopulib.patch
+    - patches/0001-unvendor-wdm-and-vinecopulib.patch
 
 build:
   number: 0
-  skip: true  # [py<38]
-  script: {{ PYTHON }} -m pip install . --no-deps --no-build-isolation -vv
-  missing_dso_whitelist:
-    - '$RPATH/ld64.so.1'  # [s390x]
+  script:
+    - set CMAKE_GENERATOR=Ninja  # [win]
path: recipe/meta.yaml
user: login: Andrii-Osipov
body: added export
created_at: 2025-04-17T14:56:53Z
author_association: CONTRIBUTOR

PR comments:
user: login: anaconda-pkg-build
created_at: 2025-04-09T14:31:15Z
body: <details><summary>Linter check found the following problems:</summary>
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_d2uhbp330k/clone` failed. (See above for error)
The following problems have been found:

===== WARNINGS =====
- clone/recipe/meta.yaml:29: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found

</details>
author_association: NONE
user: login: anaconda-pkg-build
created_at: 2025-04-09T14:34:42Z
body: <details><summary>Linter check found the following problems:</summary>
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_6estiv1az4/clone` failed. (See above for error)
The following problems have been found:

===== WARNINGS =====
- clone/recipe/meta.yaml:30: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found

</details>
author_association: NONE
user: login: anaconda-pkg-build
created_at: 2025-04-09T14:38:33Z
body: <details><summary>Linter check found the following problems:</summary>
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_b5uo1v6sf1/clone` failed. (See above for error)
The following problems have been found:

===== WARNINGS =====
- clone/recipe/meta.yaml:31: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found

</details>
author_association: NONE
user: login: anaconda-pkg-build
created_at: 2025-04-09T14:49:10Z
body: <details><summary>Linter check found the following problems:</summary>
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_98fnf1jpq_/clone` failed. (See above for error)
The following problems have been found:

===== WARNINGS =====
- clone/recipe/meta.yaml:33: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found

</details>
author_association: NONE
user: login: anaconda-pkg-build
created_at: 2025-04-14T17:28:20Z
body: <details><summary>Linter check found the following problems:</summary>
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_5a_4qtsq37/clone` failed. (See above for error)
The following problems have been found:

===== WARNINGS =====
- clone/recipe/meta.yaml:31: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.

===== ERRORS =====
- clone/recipe/meta.yaml:17: patch_unnecessary: patch should not be in build when source/patches is not set
===== Final Report: =====
1 Error and 1 Warning were found

</details>
author_association: NONE
user: login: anaconda-pkg-build
created_at: 2025-04-14T17:30:48Z
body: <details><summary>Linter check found the following problems:</summary>
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_79ch7nolk_/clone` failed. (See above for error)
The following problems have been found:

===== WARNINGS =====
- clone/recipe/meta.yaml:30: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found

</details>
author_association: NONE
user: login: anaconda-pkg-build
created_at: 2025-04-15T10:21:58Z
body: <details><summary>Linter check found the following problems:</summary>
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_c0nwln5c56/clone` failed. (See above for error)
The following problems have been found:

===== WARNINGS =====
- clone/recipe/meta.yaml:30: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found

</details>
author_association: NONE
user: login: anaconda-pkg-build
created_at: 2025-04-15T10:54:52Z
body: <details><summary>Linter check found the following problems:</summary>
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_63rle07jni/clone` failed. (See above for error)
The following problems have been found:

===== WARNINGS =====
- clone/recipe/meta.yaml:30: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found

</details>
author_association: NONE
user: login: anaconda-pkg-build
created_at: 2025-04-16T20:53:54Z
body: <details><summary>Linter check found the following problems:</summary>
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_3fti_2c29k/clone` failed. (See above for error)
The following problems have been found:

===== WARNINGS =====
- clone/recipe/meta.yaml:34: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found

</details>
author_association: NONE
user: login: anaconda-pkg-build
created_at: 2025-04-16T20:55:56Z
body: <details><summary>Linter check found the following problems:</summary>
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_882w4t05xh/clone` failed. (See above for error)
The following problems have been found:

===== WARNINGS =====
- clone/recipe/meta.yaml:32: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found

</details>
author_association: NONE
user: login: anaconda-pkg-build
created_at: 2025-04-16T21:23:59Z
body: <details><summary>Linter check found the following problems:</summary>
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_14fzkgj8la/clone` failed. (See above for error)
The following problems have been found:

===== WARNINGS =====
- clone/recipe/meta.yaml:35: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found

</details>
author_association: NONE
user: login: anaconda-pkg-build
created_at: 2025-04-17T09:08:52Z
body: <details><summary>Linter check found the following problems:</summary>
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_707g1ukrfu/clone` failed. (See above for error)
The following problems have been found:

===== WARNINGS =====
- clone/recipe/meta.yaml:33: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found

</details>
author_association: NONE
user: login: anaconda-pkg-build
created_at: 2025-04-17T10:47:11Z
body: <details><summary>Linter check found the following problems:</summary>
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_445mskkewt/clone` failed. (See above for error)
The following problems have been found:

===== WARNINGS =====
- clone/recipe/meta.yaml:33: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found

</details>
author_association: NONE
user: login: anaconda-pkg-build
created_at: 2025-04-17T14:35:38Z
body: <details><summary>Linter check found the following problems:</summary>
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_0eazafgjol/clone` failed. (See above for error)
The following problems have been found:

===== WARNINGS =====
- clone/recipe/meta.yaml:33: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found

</details>
author_association: NONE
user: login: anaconda-pkg-build
created_at: 2025-04-17T14:48:33Z
body: <details><summary>Linter check found the following problems:</summary>
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_deqlmdwv09/clone` failed. (See above for error)
The following problems have been found:

===== WARNINGS =====
- clone/recipe/meta.yaml:34: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found

</details>
author_association: NONE
user: login: anaconda-pkg-build
created_at: 2025-04-17T16:56:18Z
body: <details><summary>Linter check found the following problems:</summary>
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_a5o6ounwlj/clone` failed. (See above for error)
The following problems have been found:

===== WARNINGS =====
- clone/recipe/meta.yaml:34: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found

</details>
author_association: NONE