├── .github └── CODEOWNERS ├── .ci_support ├── migrations │ ├── libboost188.yaml │ └── python314.yaml ├── README ├── win_64_python3.13.____cp313.yaml ├── win_64_python3.10.____cpython.yaml ├── win_64_python3.11.____cpython.yaml ├── win_64_python3.12.____cpython.yaml ├── win_64_python3.14.____cp314.yaml ├── linux_64_python3.13.____cp313.yaml ├── linux_64_python3.10.____cpython.yaml ├── linux_64_python3.11.____cpython.yaml ├── linux_64_python3.12.____cpython.yaml ├── linux_aarch64_python3.13.____cp313.yaml ├── linux_ppc64le_python3.13.____cp313.yaml ├── linux_aarch64_python3.10.____cpython.yaml ├── linux_aarch64_python3.11.____cpython.yaml ├── linux_aarch64_python3.12.____cpython.yaml ├── linux_ppc64le_python3.10.____cpython.yaml ├── linux_ppc64le_python3.11.____cpython.yaml ├── linux_ppc64le_python3.12.____cpython.yaml ├── linux_64_python3.14.____cp314.yaml ├── linux_aarch64_python3.14.____cp314.yaml ├── linux_ppc64le_python3.14.____cp314.yaml ├── osx_64_python3.13.____cp313.yaml ├── osx_64_python3.10.____cpython.yaml ├── osx_64_python3.11.____cpython.yaml ├── osx_64_python3.12.____cpython.yaml ├── osx_arm64_python3.10.____cpython.yaml ├── osx_arm64_python3.11.____cpython.yaml ├── osx_arm64_python3.12.____cpython.yaml ├── osx_arm64_python3.13.____cp313.yaml ├── osx_64_python3.14.____cp314.yaml └── osx_arm64_python3.14.____cp314.yaml ├── conda-forge.yml ├── .circleci └── config.yml ├── recipe ├── build_pinocchio_cpp.sh ├── build_pinocchio_cpp.bat ├── build_pinocchio_python.bat ├── build_pinocchio_python.sh └── meta.yaml ├── .gitattributes ├── .gitignore ├── .scripts ├── logging_utils.sh ├── create_conda_build_artifacts.bat ├── build_steps.sh ├── run_docker_build.sh ├── run_osx_build.sh ├── create_conda_build_artifacts.sh └── run_win_build.bat ├── azure-pipelines.yml ├── LICENSE.txt ├── .azure-pipelines ├── azure-pipelines-win.yml ├── azure-pipelines-osx.yml └── azure-pipelines-linux.yml └── README.md /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @fabinsch @jcarpent @jorisv @nim65s @wolfv @ymontmarin -------------------------------------------------------------------------------- /.ci_support/migrations/libboost188.yaml: -------------------------------------------------------------------------------- 1 | __migrator: 2 | build_number: 1 3 | kind: version 4 | commit_message: "Rebuild for libboost 1.88" 5 | migration_number: 1 6 | libboost_devel: 7 | - "1.88" 8 | libboost_headers: 9 | - "1.88" 10 | libboost_python_devel: 11 | - "1.88" 12 | migrator_ts: 1753251695.3315456 13 | -------------------------------------------------------------------------------- /.ci_support/README: -------------------------------------------------------------------------------- 1 | This file is automatically generated by conda-smithy. If any 2 | particular build configuration is expected, but it is not found, 3 | please make sure all dependencies are satisfiable. To add/modify any 4 | matrix elements, you should create/change conda-smithy's input 5 | recipe/conda_build_config.yaml and re-render the recipe, rather than 6 | editing these files directly. 7 | -------------------------------------------------------------------------------- /conda-forge.yml: -------------------------------------------------------------------------------- 1 | azure: 2 | store_build_artifacts: true 3 | bot: 4 | automerge: true 5 | build_platform: 6 | linux_aarch64: linux_64 7 | linux_ppc64le: linux_64 8 | osx_arm64: osx_64 9 | conda_build: 10 | pkg_format: '2' 11 | conda_forge_output_validation: true 12 | github: 13 | branch_name: main 14 | tooling_branch_name: main 15 | provider: 16 | linux_aarch64: default 17 | linux_ppc64le: default 18 | test: native_and_emulated 19 | -------------------------------------------------------------------------------- /.ci_support/win_64_python3.13.____cp313.yaml: -------------------------------------------------------------------------------- 1 | c_stdlib: 2 | - vs 3 | channel_sources: 4 | - conda-forge 5 | channel_targets: 6 | - conda-forge main 7 | console_bridge: 8 | - '1.0' 9 | cxx_compiler: 10 | - vs2022 11 | libboost_devel: 12 | - '1.88' 13 | libboost_python_devel: 14 | - '1.88' 15 | pin_run_as_build: 16 | python: 17 | min_pin: x.x 18 | max_pin: x.x 19 | python: 20 | - 3.13.* *_cp313 21 | qhull: 22 | - '2020.2' 23 | target_platform: 24 | - win-64 25 | urdfdom: 26 | - '4.0' 27 | zip_keys: 28 | - - python 29 | - channel_sources 30 | -------------------------------------------------------------------------------- /.ci_support/win_64_python3.10.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_stdlib: 2 | - vs 3 | channel_sources: 4 | - conda-forge 5 | channel_targets: 6 | - conda-forge main 7 | console_bridge: 8 | - '1.0' 9 | cxx_compiler: 10 | - vs2022 11 | libboost_devel: 12 | - '1.88' 13 | libboost_python_devel: 14 | - '1.88' 15 | pin_run_as_build: 16 | python: 17 | min_pin: x.x 18 | max_pin: x.x 19 | python: 20 | - 3.10.* *_cpython 21 | qhull: 22 | - '2020.2' 23 | target_platform: 24 | - win-64 25 | urdfdom: 26 | - '4.0' 27 | zip_keys: 28 | - - python 29 | - channel_sources 30 | -------------------------------------------------------------------------------- /.ci_support/win_64_python3.11.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_stdlib: 2 | - vs 3 | channel_sources: 4 | - conda-forge 5 | channel_targets: 6 | - conda-forge main 7 | console_bridge: 8 | - '1.0' 9 | cxx_compiler: 10 | - vs2022 11 | libboost_devel: 12 | - '1.88' 13 | libboost_python_devel: 14 | - '1.88' 15 | pin_run_as_build: 16 | python: 17 | min_pin: x.x 18 | max_pin: x.x 19 | python: 20 | - 3.11.* *_cpython 21 | qhull: 22 | - '2020.2' 23 | target_platform: 24 | - win-64 25 | urdfdom: 26 | - '4.0' 27 | zip_keys: 28 | - - python 29 | - channel_sources 30 | -------------------------------------------------------------------------------- /.ci_support/win_64_python3.12.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_stdlib: 2 | - vs 3 | channel_sources: 4 | - conda-forge 5 | channel_targets: 6 | - conda-forge main 7 | console_bridge: 8 | - '1.0' 9 | cxx_compiler: 10 | - vs2022 11 | libboost_devel: 12 | - '1.88' 13 | libboost_python_devel: 14 | - '1.88' 15 | pin_run_as_build: 16 | python: 17 | min_pin: x.x 18 | max_pin: x.x 19 | python: 20 | - 3.12.* *_cpython 21 | qhull: 22 | - '2020.2' 23 | target_platform: 24 | - win-64 25 | urdfdom: 26 | - '4.0' 27 | zip_keys: 28 | - - python 29 | - channel_sources 30 | -------------------------------------------------------------------------------- /.ci_support/win_64_python3.14.____cp314.yaml: -------------------------------------------------------------------------------- 1 | c_stdlib: 2 | - vs 3 | channel_sources: 4 | - conda-forge,conda-forge/label/python_rc 5 | channel_targets: 6 | - conda-forge main 7 | console_bridge: 8 | - '1.0' 9 | cxx_compiler: 10 | - vs2022 11 | libboost_devel: 12 | - '1.88' 13 | libboost_python_devel: 14 | - '1.88' 15 | pin_run_as_build: 16 | python: 17 | min_pin: x.x 18 | max_pin: x.x 19 | python: 20 | - 3.14.* *_cp314 21 | qhull: 22 | - '2020.2' 23 | target_platform: 24 | - win-64 25 | urdfdom: 26 | - '4.0' 27 | zip_keys: 28 | - - python 29 | - channel_sources 30 | -------------------------------------------------------------------------------- /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | # This file was generated automatically from conda-smithy. To update this configuration, 2 | # update the conda-forge.yml and/or the recipe/meta.yaml. 3 | # -*- mode: jinja-yaml -*- 4 | 5 | version: 2 6 | 7 | jobs: 8 | build: 9 | working_directory: ~/test 10 | machine: 11 | image: ubuntu-2004:current 12 | steps: 13 | - run: 14 | # The Circle-CI build should not be active, but if this is not true for some reason, do a fast finish. 15 | command: exit 0 16 | 17 | workflows: 18 | version: 2 19 | build_and_test: 20 | jobs: 21 | - build: 22 | filters: 23 | branches: 24 | ignore: 25 | - /.*/ 26 | -------------------------------------------------------------------------------- /.ci_support/linux_64_python3.13.____cp313.yaml: -------------------------------------------------------------------------------- 1 | c_stdlib: 2 | - sysroot 3 | c_stdlib_version: 4 | - '2.17' 5 | cdt_name: 6 | - conda 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | console_bridge: 12 | - '1.0' 13 | cxx_compiler: 14 | - gxx 15 | cxx_compiler_version: 16 | - '14' 17 | docker_image: 18 | - quay.io/condaforge/linux-anvil-x86_64:alma9 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | numpy: 24 | - '2' 25 | pin_run_as_build: 26 | python: 27 | min_pin: x.x 28 | max_pin: x.x 29 | python: 30 | - 3.13.* *_cp313 31 | qhull: 32 | - '2020.2' 33 | target_platform: 34 | - linux-64 35 | urdfdom: 36 | - '4.0' 37 | zip_keys: 38 | - - python 39 | - channel_sources 40 | -------------------------------------------------------------------------------- /.ci_support/linux_64_python3.10.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_stdlib: 2 | - sysroot 3 | c_stdlib_version: 4 | - '2.17' 5 | cdt_name: 6 | - conda 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | console_bridge: 12 | - '1.0' 13 | cxx_compiler: 14 | - gxx 15 | cxx_compiler_version: 16 | - '14' 17 | docker_image: 18 | - quay.io/condaforge/linux-anvil-x86_64:alma9 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | numpy: 24 | - '2' 25 | pin_run_as_build: 26 | python: 27 | min_pin: x.x 28 | max_pin: x.x 29 | python: 30 | - 3.10.* *_cpython 31 | qhull: 32 | - '2020.2' 33 | target_platform: 34 | - linux-64 35 | urdfdom: 36 | - '4.0' 37 | zip_keys: 38 | - - python 39 | - channel_sources 40 | -------------------------------------------------------------------------------- /.ci_support/linux_64_python3.11.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_stdlib: 2 | - sysroot 3 | c_stdlib_version: 4 | - '2.17' 5 | cdt_name: 6 | - conda 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | console_bridge: 12 | - '1.0' 13 | cxx_compiler: 14 | - gxx 15 | cxx_compiler_version: 16 | - '14' 17 | docker_image: 18 | - quay.io/condaforge/linux-anvil-x86_64:alma9 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | numpy: 24 | - '2' 25 | pin_run_as_build: 26 | python: 27 | min_pin: x.x 28 | max_pin: x.x 29 | python: 30 | - 3.11.* *_cpython 31 | qhull: 32 | - '2020.2' 33 | target_platform: 34 | - linux-64 35 | urdfdom: 36 | - '4.0' 37 | zip_keys: 38 | - - python 39 | - channel_sources 40 | -------------------------------------------------------------------------------- /.ci_support/linux_64_python3.12.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_stdlib: 2 | - sysroot 3 | c_stdlib_version: 4 | - '2.17' 5 | cdt_name: 6 | - conda 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | console_bridge: 12 | - '1.0' 13 | cxx_compiler: 14 | - gxx 15 | cxx_compiler_version: 16 | - '14' 17 | docker_image: 18 | - quay.io/condaforge/linux-anvil-x86_64:alma9 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | numpy: 24 | - '2' 25 | pin_run_as_build: 26 | python: 27 | min_pin: x.x 28 | max_pin: x.x 29 | python: 30 | - 3.12.* *_cpython 31 | qhull: 32 | - '2020.2' 33 | target_platform: 34 | - linux-64 35 | urdfdom: 36 | - '4.0' 37 | zip_keys: 38 | - - python 39 | - channel_sources 40 | -------------------------------------------------------------------------------- /.ci_support/linux_aarch64_python3.13.____cp313.yaml: -------------------------------------------------------------------------------- 1 | c_stdlib: 2 | - sysroot 3 | c_stdlib_version: 4 | - '2.17' 5 | cdt_name: 6 | - conda 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | console_bridge: 12 | - '1.0' 13 | cxx_compiler: 14 | - gxx 15 | cxx_compiler_version: 16 | - '14' 17 | docker_image: 18 | - quay.io/condaforge/linux-anvil-x86_64:alma9 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | numpy: 24 | - '2' 25 | pin_run_as_build: 26 | python: 27 | min_pin: x.x 28 | max_pin: x.x 29 | python: 30 | - 3.13.* *_cp313 31 | qhull: 32 | - '2020.2' 33 | target_platform: 34 | - linux-aarch64 35 | urdfdom: 36 | - '4.0' 37 | zip_keys: 38 | - - python 39 | - channel_sources 40 | -------------------------------------------------------------------------------- /.ci_support/linux_ppc64le_python3.13.____cp313.yaml: -------------------------------------------------------------------------------- 1 | c_stdlib: 2 | - sysroot 3 | c_stdlib_version: 4 | - '2.17' 5 | cdt_name: 6 | - conda 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | console_bridge: 12 | - '1.0' 13 | cxx_compiler: 14 | - gxx 15 | cxx_compiler_version: 16 | - '14' 17 | docker_image: 18 | - quay.io/condaforge/linux-anvil-x86_64:alma9 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | numpy: 24 | - '2' 25 | pin_run_as_build: 26 | python: 27 | min_pin: x.x 28 | max_pin: x.x 29 | python: 30 | - 3.13.* *_cp313 31 | qhull: 32 | - '2020.2' 33 | target_platform: 34 | - linux-ppc64le 35 | urdfdom: 36 | - '4.0' 37 | zip_keys: 38 | - - python 39 | - channel_sources 40 | -------------------------------------------------------------------------------- /.ci_support/linux_aarch64_python3.10.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_stdlib: 2 | - sysroot 3 | c_stdlib_version: 4 | - '2.17' 5 | cdt_name: 6 | - conda 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | console_bridge: 12 | - '1.0' 13 | cxx_compiler: 14 | - gxx 15 | cxx_compiler_version: 16 | - '14' 17 | docker_image: 18 | - quay.io/condaforge/linux-anvil-x86_64:alma9 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | numpy: 24 | - '2' 25 | pin_run_as_build: 26 | python: 27 | min_pin: x.x 28 | max_pin: x.x 29 | python: 30 | - 3.10.* *_cpython 31 | qhull: 32 | - '2020.2' 33 | target_platform: 34 | - linux-aarch64 35 | urdfdom: 36 | - '4.0' 37 | zip_keys: 38 | - - python 39 | - channel_sources 40 | -------------------------------------------------------------------------------- /.ci_support/linux_aarch64_python3.11.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_stdlib: 2 | - sysroot 3 | c_stdlib_version: 4 | - '2.17' 5 | cdt_name: 6 | - conda 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | console_bridge: 12 | - '1.0' 13 | cxx_compiler: 14 | - gxx 15 | cxx_compiler_version: 16 | - '14' 17 | docker_image: 18 | - quay.io/condaforge/linux-anvil-x86_64:alma9 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | numpy: 24 | - '2' 25 | pin_run_as_build: 26 | python: 27 | min_pin: x.x 28 | max_pin: x.x 29 | python: 30 | - 3.11.* *_cpython 31 | qhull: 32 | - '2020.2' 33 | target_platform: 34 | - linux-aarch64 35 | urdfdom: 36 | - '4.0' 37 | zip_keys: 38 | - - python 39 | - channel_sources 40 | -------------------------------------------------------------------------------- /.ci_support/linux_aarch64_python3.12.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_stdlib: 2 | - sysroot 3 | c_stdlib_version: 4 | - '2.17' 5 | cdt_name: 6 | - conda 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | console_bridge: 12 | - '1.0' 13 | cxx_compiler: 14 | - gxx 15 | cxx_compiler_version: 16 | - '14' 17 | docker_image: 18 | - quay.io/condaforge/linux-anvil-x86_64:alma9 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | numpy: 24 | - '2' 25 | pin_run_as_build: 26 | python: 27 | min_pin: x.x 28 | max_pin: x.x 29 | python: 30 | - 3.12.* *_cpython 31 | qhull: 32 | - '2020.2' 33 | target_platform: 34 | - linux-aarch64 35 | urdfdom: 36 | - '4.0' 37 | zip_keys: 38 | - - python 39 | - channel_sources 40 | -------------------------------------------------------------------------------- /.ci_support/linux_ppc64le_python3.10.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_stdlib: 2 | - sysroot 3 | c_stdlib_version: 4 | - '2.17' 5 | cdt_name: 6 | - conda 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | console_bridge: 12 | - '1.0' 13 | cxx_compiler: 14 | - gxx 15 | cxx_compiler_version: 16 | - '14' 17 | docker_image: 18 | - quay.io/condaforge/linux-anvil-x86_64:alma9 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | numpy: 24 | - '2' 25 | pin_run_as_build: 26 | python: 27 | min_pin: x.x 28 | max_pin: x.x 29 | python: 30 | - 3.10.* *_cpython 31 | qhull: 32 | - '2020.2' 33 | target_platform: 34 | - linux-ppc64le 35 | urdfdom: 36 | - '4.0' 37 | zip_keys: 38 | - - python 39 | - channel_sources 40 | -------------------------------------------------------------------------------- /.ci_support/linux_ppc64le_python3.11.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_stdlib: 2 | - sysroot 3 | c_stdlib_version: 4 | - '2.17' 5 | cdt_name: 6 | - conda 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | console_bridge: 12 | - '1.0' 13 | cxx_compiler: 14 | - gxx 15 | cxx_compiler_version: 16 | - '14' 17 | docker_image: 18 | - quay.io/condaforge/linux-anvil-x86_64:alma9 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | numpy: 24 | - '2' 25 | pin_run_as_build: 26 | python: 27 | min_pin: x.x 28 | max_pin: x.x 29 | python: 30 | - 3.11.* *_cpython 31 | qhull: 32 | - '2020.2' 33 | target_platform: 34 | - linux-ppc64le 35 | urdfdom: 36 | - '4.0' 37 | zip_keys: 38 | - - python 39 | - channel_sources 40 | -------------------------------------------------------------------------------- /.ci_support/linux_ppc64le_python3.12.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_stdlib: 2 | - sysroot 3 | c_stdlib_version: 4 | - '2.17' 5 | cdt_name: 6 | - conda 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | console_bridge: 12 | - '1.0' 13 | cxx_compiler: 14 | - gxx 15 | cxx_compiler_version: 16 | - '14' 17 | docker_image: 18 | - quay.io/condaforge/linux-anvil-x86_64:alma9 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | numpy: 24 | - '2' 25 | pin_run_as_build: 26 | python: 27 | min_pin: x.x 28 | max_pin: x.x 29 | python: 30 | - 3.12.* *_cpython 31 | qhull: 32 | - '2020.2' 33 | target_platform: 34 | - linux-ppc64le 35 | urdfdom: 36 | - '4.0' 37 | zip_keys: 38 | - - python 39 | - channel_sources 40 | -------------------------------------------------------------------------------- /.ci_support/linux_64_python3.14.____cp314.yaml: -------------------------------------------------------------------------------- 1 | c_stdlib: 2 | - sysroot 3 | c_stdlib_version: 4 | - '2.17' 5 | cdt_name: 6 | - conda 7 | channel_sources: 8 | - conda-forge,conda-forge/label/python_rc 9 | channel_targets: 10 | - conda-forge main 11 | console_bridge: 12 | - '1.0' 13 | cxx_compiler: 14 | - gxx 15 | cxx_compiler_version: 16 | - '14' 17 | docker_image: 18 | - quay.io/condaforge/linux-anvil-x86_64:alma9 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | numpy: 24 | - '2' 25 | pin_run_as_build: 26 | python: 27 | min_pin: x.x 28 | max_pin: x.x 29 | python: 30 | - 3.14.* *_cp314 31 | qhull: 32 | - '2020.2' 33 | target_platform: 34 | - linux-64 35 | urdfdom: 36 | - '4.0' 37 | zip_keys: 38 | - - python 39 | - channel_sources 40 | -------------------------------------------------------------------------------- /.ci_support/linux_aarch64_python3.14.____cp314.yaml: -------------------------------------------------------------------------------- 1 | c_stdlib: 2 | - sysroot 3 | c_stdlib_version: 4 | - '2.17' 5 | cdt_name: 6 | - conda 7 | channel_sources: 8 | - conda-forge,conda-forge/label/python_rc 9 | channel_targets: 10 | - conda-forge main 11 | console_bridge: 12 | - '1.0' 13 | cxx_compiler: 14 | - gxx 15 | cxx_compiler_version: 16 | - '14' 17 | docker_image: 18 | - quay.io/condaforge/linux-anvil-x86_64:alma9 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | numpy: 24 | - '2' 25 | pin_run_as_build: 26 | python: 27 | min_pin: x.x 28 | max_pin: x.x 29 | python: 30 | - 3.14.* *_cp314 31 | qhull: 32 | - '2020.2' 33 | target_platform: 34 | - linux-aarch64 35 | urdfdom: 36 | - '4.0' 37 | zip_keys: 38 | - - python 39 | - channel_sources 40 | -------------------------------------------------------------------------------- /.ci_support/linux_ppc64le_python3.14.____cp314.yaml: -------------------------------------------------------------------------------- 1 | c_stdlib: 2 | - sysroot 3 | c_stdlib_version: 4 | - '2.17' 5 | cdt_name: 6 | - conda 7 | channel_sources: 8 | - conda-forge,conda-forge/label/python_rc 9 | channel_targets: 10 | - conda-forge main 11 | console_bridge: 12 | - '1.0' 13 | cxx_compiler: 14 | - gxx 15 | cxx_compiler_version: 16 | - '14' 17 | docker_image: 18 | - quay.io/condaforge/linux-anvil-x86_64:alma9 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | numpy: 24 | - '2' 25 | pin_run_as_build: 26 | python: 27 | min_pin: x.x 28 | max_pin: x.x 29 | python: 30 | - 3.14.* *_cp314 31 | qhull: 32 | - '2020.2' 33 | target_platform: 34 | - linux-ppc64le 35 | urdfdom: 36 | - '4.0' 37 | zip_keys: 38 | - - python 39 | - channel_sources 40 | -------------------------------------------------------------------------------- /.ci_support/osx_64_python3.13.____cp313.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '10.13' 3 | MACOSX_SDK_VERSION: 4 | - '10.13' 5 | c_stdlib: 6 | - macosx_deployment_target 7 | c_stdlib_version: 8 | - '10.13' 9 | channel_sources: 10 | - conda-forge 11 | channel_targets: 12 | - conda-forge main 13 | console_bridge: 14 | - '1.0' 15 | cxx_compiler: 16 | - clangxx 17 | cxx_compiler_version: 18 | - '19' 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | llvm_openmp: 24 | - '19' 25 | macos_machine: 26 | - x86_64-apple-darwin13.4.0 27 | numpy: 28 | - '2' 29 | pin_run_as_build: 30 | python: 31 | min_pin: x.x 32 | max_pin: x.x 33 | python: 34 | - 3.13.* *_cp313 35 | qhull: 36 | - '2020.2' 37 | target_platform: 38 | - osx-64 39 | urdfdom: 40 | - '4.0' 41 | zip_keys: 42 | - - python 43 | - channel_sources 44 | -------------------------------------------------------------------------------- /.ci_support/osx_64_python3.10.____cpython.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '10.13' 3 | MACOSX_SDK_VERSION: 4 | - '10.13' 5 | c_stdlib: 6 | - macosx_deployment_target 7 | c_stdlib_version: 8 | - '10.13' 9 | channel_sources: 10 | - conda-forge 11 | channel_targets: 12 | - conda-forge main 13 | console_bridge: 14 | - '1.0' 15 | cxx_compiler: 16 | - clangxx 17 | cxx_compiler_version: 18 | - '19' 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | llvm_openmp: 24 | - '19' 25 | macos_machine: 26 | - x86_64-apple-darwin13.4.0 27 | numpy: 28 | - '2' 29 | pin_run_as_build: 30 | python: 31 | min_pin: x.x 32 | max_pin: x.x 33 | python: 34 | - 3.10.* *_cpython 35 | qhull: 36 | - '2020.2' 37 | target_platform: 38 | - osx-64 39 | urdfdom: 40 | - '4.0' 41 | zip_keys: 42 | - - python 43 | - channel_sources 44 | -------------------------------------------------------------------------------- /.ci_support/osx_64_python3.11.____cpython.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '10.13' 3 | MACOSX_SDK_VERSION: 4 | - '10.13' 5 | c_stdlib: 6 | - macosx_deployment_target 7 | c_stdlib_version: 8 | - '10.13' 9 | channel_sources: 10 | - conda-forge 11 | channel_targets: 12 | - conda-forge main 13 | console_bridge: 14 | - '1.0' 15 | cxx_compiler: 16 | - clangxx 17 | cxx_compiler_version: 18 | - '19' 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | llvm_openmp: 24 | - '19' 25 | macos_machine: 26 | - x86_64-apple-darwin13.4.0 27 | numpy: 28 | - '2' 29 | pin_run_as_build: 30 | python: 31 | min_pin: x.x 32 | max_pin: x.x 33 | python: 34 | - 3.11.* *_cpython 35 | qhull: 36 | - '2020.2' 37 | target_platform: 38 | - osx-64 39 | urdfdom: 40 | - '4.0' 41 | zip_keys: 42 | - - python 43 | - channel_sources 44 | -------------------------------------------------------------------------------- /.ci_support/osx_64_python3.12.____cpython.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '10.13' 3 | MACOSX_SDK_VERSION: 4 | - '10.13' 5 | c_stdlib: 6 | - macosx_deployment_target 7 | c_stdlib_version: 8 | - '10.13' 9 | channel_sources: 10 | - conda-forge 11 | channel_targets: 12 | - conda-forge main 13 | console_bridge: 14 | - '1.0' 15 | cxx_compiler: 16 | - clangxx 17 | cxx_compiler_version: 18 | - '19' 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | llvm_openmp: 24 | - '19' 25 | macos_machine: 26 | - x86_64-apple-darwin13.4.0 27 | numpy: 28 | - '2' 29 | pin_run_as_build: 30 | python: 31 | min_pin: x.x 32 | max_pin: x.x 33 | python: 34 | - 3.12.* *_cpython 35 | qhull: 36 | - '2020.2' 37 | target_platform: 38 | - osx-64 39 | urdfdom: 40 | - '4.0' 41 | zip_keys: 42 | - - python 43 | - channel_sources 44 | -------------------------------------------------------------------------------- /.ci_support/osx_arm64_python3.10.____cpython.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '11.0' 3 | MACOSX_SDK_VERSION: 4 | - '11.0' 5 | c_stdlib: 6 | - macosx_deployment_target 7 | c_stdlib_version: 8 | - '11.0' 9 | channel_sources: 10 | - conda-forge 11 | channel_targets: 12 | - conda-forge main 13 | console_bridge: 14 | - '1.0' 15 | cxx_compiler: 16 | - clangxx 17 | cxx_compiler_version: 18 | - '19' 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | llvm_openmp: 24 | - '19' 25 | macos_machine: 26 | - arm64-apple-darwin20.0.0 27 | numpy: 28 | - '2' 29 | pin_run_as_build: 30 | python: 31 | min_pin: x.x 32 | max_pin: x.x 33 | python: 34 | - 3.10.* *_cpython 35 | qhull: 36 | - '2020.2' 37 | target_platform: 38 | - osx-arm64 39 | urdfdom: 40 | - '4.0' 41 | zip_keys: 42 | - - python 43 | - channel_sources 44 | -------------------------------------------------------------------------------- /.ci_support/osx_arm64_python3.11.____cpython.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '11.0' 3 | MACOSX_SDK_VERSION: 4 | - '11.0' 5 | c_stdlib: 6 | - macosx_deployment_target 7 | c_stdlib_version: 8 | - '11.0' 9 | channel_sources: 10 | - conda-forge 11 | channel_targets: 12 | - conda-forge main 13 | console_bridge: 14 | - '1.0' 15 | cxx_compiler: 16 | - clangxx 17 | cxx_compiler_version: 18 | - '19' 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | llvm_openmp: 24 | - '19' 25 | macos_machine: 26 | - arm64-apple-darwin20.0.0 27 | numpy: 28 | - '2' 29 | pin_run_as_build: 30 | python: 31 | min_pin: x.x 32 | max_pin: x.x 33 | python: 34 | - 3.11.* *_cpython 35 | qhull: 36 | - '2020.2' 37 | target_platform: 38 | - osx-arm64 39 | urdfdom: 40 | - '4.0' 41 | zip_keys: 42 | - - python 43 | - channel_sources 44 | -------------------------------------------------------------------------------- /.ci_support/osx_arm64_python3.12.____cpython.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '11.0' 3 | MACOSX_SDK_VERSION: 4 | - '11.0' 5 | c_stdlib: 6 | - macosx_deployment_target 7 | c_stdlib_version: 8 | - '11.0' 9 | channel_sources: 10 | - conda-forge 11 | channel_targets: 12 | - conda-forge main 13 | console_bridge: 14 | - '1.0' 15 | cxx_compiler: 16 | - clangxx 17 | cxx_compiler_version: 18 | - '19' 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | llvm_openmp: 24 | - '19' 25 | macos_machine: 26 | - arm64-apple-darwin20.0.0 27 | numpy: 28 | - '2' 29 | pin_run_as_build: 30 | python: 31 | min_pin: x.x 32 | max_pin: x.x 33 | python: 34 | - 3.12.* *_cpython 35 | qhull: 36 | - '2020.2' 37 | target_platform: 38 | - osx-arm64 39 | urdfdom: 40 | - '4.0' 41 | zip_keys: 42 | - - python 43 | - channel_sources 44 | -------------------------------------------------------------------------------- /.ci_support/osx_arm64_python3.13.____cp313.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '11.0' 3 | MACOSX_SDK_VERSION: 4 | - '11.0' 5 | c_stdlib: 6 | - macosx_deployment_target 7 | c_stdlib_version: 8 | - '11.0' 9 | channel_sources: 10 | - conda-forge 11 | channel_targets: 12 | - conda-forge main 13 | console_bridge: 14 | - '1.0' 15 | cxx_compiler: 16 | - clangxx 17 | cxx_compiler_version: 18 | - '19' 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | llvm_openmp: 24 | - '19' 25 | macos_machine: 26 | - arm64-apple-darwin20.0.0 27 | numpy: 28 | - '2' 29 | pin_run_as_build: 30 | python: 31 | min_pin: x.x 32 | max_pin: x.x 33 | python: 34 | - 3.13.* *_cp313 35 | qhull: 36 | - '2020.2' 37 | target_platform: 38 | - osx-arm64 39 | urdfdom: 40 | - '4.0' 41 | zip_keys: 42 | - - python 43 | - channel_sources 44 | -------------------------------------------------------------------------------- /.ci_support/osx_64_python3.14.____cp314.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '10.13' 3 | MACOSX_SDK_VERSION: 4 | - '10.13' 5 | c_stdlib: 6 | - macosx_deployment_target 7 | c_stdlib_version: 8 | - '10.13' 9 | channel_sources: 10 | - conda-forge,conda-forge/label/python_rc 11 | channel_targets: 12 | - conda-forge main 13 | console_bridge: 14 | - '1.0' 15 | cxx_compiler: 16 | - clangxx 17 | cxx_compiler_version: 18 | - '19' 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | llvm_openmp: 24 | - '19' 25 | macos_machine: 26 | - x86_64-apple-darwin13.4.0 27 | numpy: 28 | - '2' 29 | pin_run_as_build: 30 | python: 31 | min_pin: x.x 32 | max_pin: x.x 33 | python: 34 | - 3.14.* *_cp314 35 | qhull: 36 | - '2020.2' 37 | target_platform: 38 | - osx-64 39 | urdfdom: 40 | - '4.0' 41 | zip_keys: 42 | - - python 43 | - channel_sources 44 | -------------------------------------------------------------------------------- /.ci_support/osx_arm64_python3.14.____cp314.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '11.0' 3 | MACOSX_SDK_VERSION: 4 | - '11.0' 5 | c_stdlib: 6 | - macosx_deployment_target 7 | c_stdlib_version: 8 | - '11.0' 9 | channel_sources: 10 | - conda-forge,conda-forge/label/python_rc 11 | channel_targets: 12 | - conda-forge main 13 | console_bridge: 14 | - '1.0' 15 | cxx_compiler: 16 | - clangxx 17 | cxx_compiler_version: 18 | - '19' 19 | libboost_devel: 20 | - '1.88' 21 | libboost_python_devel: 22 | - '1.88' 23 | llvm_openmp: 24 | - '19' 25 | macos_machine: 26 | - arm64-apple-darwin20.0.0 27 | numpy: 28 | - '2' 29 | pin_run_as_build: 30 | python: 31 | min_pin: x.x 32 | max_pin: x.x 33 | python: 34 | - 3.14.* *_cp314 35 | qhull: 36 | - '2020.2' 37 | target_platform: 38 | - osx-arm64 39 | urdfdom: 40 | - '4.0' 41 | zip_keys: 42 | - - python 43 | - channel_sources 44 | -------------------------------------------------------------------------------- /recipe/build_pinocchio_cpp.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | mkdir build 4 | cd build 5 | 6 | cmake ${CMAKE_ARGS} .. \ 7 | -GNinja \ 8 | -DCMAKE_BUILD_TYPE=Release \ 9 | -DBUILD_PYTHON_INTERFACE=OFF \ 10 | -DBUILD_WITH_COLLISION_SUPPORT=ON \ 11 | -DBUILD_WITH_CASADI_SUPPORT=ON \ 12 | -DBUILD_WITH_AUTODIFF_SUPPORT=OFF \ 13 | -DBUILD_WITH_CODEGEN_SUPPORT=OFF \ 14 | -DBUILD_WITH_EXTRA_SUPPORT=ON \ 15 | -DBUILD_WITH_OPENMP_SUPPORT=ON \ 16 | -DBUILD_WITH_SDF_SUPPORT=ON \ 17 | -DBUILD_TESTING=OFF 18 | 19 | ninja -j$CPU_COUNT 20 | ninja install 21 | 22 | if [[ $CONDA_BUILD_CROSS_COMPILATION == 1 ]]; then 23 | echo $BUILD_PREFIX 24 | echo $PREFIX 25 | sed -i.back 's|'"$BUILD_PREFIX"'|'"$PREFIX"'|g' $PREFIX/lib/cmake/pinocchio/pinocchioTargets.cmake 26 | rm $PREFIX/lib/cmake/pinocchio/pinocchioTargets.cmake.back 27 | fi 28 | 29 | -------------------------------------------------------------------------------- /recipe/build_pinocchio_cpp.bat: -------------------------------------------------------------------------------- 1 | mkdir build 2 | cd build 3 | 4 | set "CC=clang-cl.exe" 5 | set "CXX=clang-cl.exe" 6 | 7 | :: Configure 8 | :: Turn OpenMP OFF because of https://github.com/stack-of-tasks/pinocchio/issues/2440 9 | cmake ^ 10 | -G Ninja ^ 11 | -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ 12 | -DCMAKE_BUILD_TYPE=Release ^ 13 | -DBUILD_PYTHON_INTERFACE=OFF ^ 14 | -DBUILD_WITH_COLLISION_SUPPORT=ON ^ 15 | -DBUILD_WITH_CASADI_SUPPORT=ON ^ 16 | -DBUILD_WITH_AUTODIFF_SUPPORT=OFF ^ 17 | -DBUILD_WITH_CODEGEN_SUPPORT=OFF ^ 18 | -DBUILD_WITH_EXTRA_SUPPORT=ON ^ 19 | -DBUILD_WITH_OPENMP_SUPPORT=OFF ^ 20 | -DBUILD_WITH_SDF_SUPPORT=ON ^ 21 | -DBUILD_TESTING=OFF ^ 22 | %SRC_DIR% 23 | if errorlevel 1 exit 1 24 | 25 | :: Build. 26 | ninja -j%CPU_COUNT% 27 | if errorlevel 1 exit 1 28 | 29 | :: Install. 30 | ninja install 31 | if errorlevel 1 exit 1 32 | 33 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | 3 | *.patch binary 4 | *.diff binary 5 | meta.yaml text eol=lf 6 | build.sh text eol=lf 7 | bld.bat text eol=crlf 8 | 9 | # github helper pieces to make some files not show up in diffs automatically 10 | .azure-pipelines/* linguist-generated=true 11 | .circleci/* linguist-generated=true 12 | .ci_support/README linguist-generated=true 13 | .drone/* linguist-generated=true 14 | .drone.yml linguist-generated=true 15 | .github/* linguist-generated=true 16 | .travis/* linguist-generated=true 17 | .appveyor.yml linguist-generated=true 18 | .gitattributes linguist-generated=true 19 | .gitignore linguist-generated=true 20 | .travis.yml linguist-generated=true 21 | .scripts/* linguist-generated=true 22 | .woodpecker.yml linguist-generated=true 23 | /LICENSE.txt linguist-generated=true 24 | /README.md linguist-generated=true 25 | azure-pipelines.yml linguist-generated=true 26 | build-locally.py linguist-generated=true 27 | pixi.toml linguist-generated=true 28 | shippable.yml linguist-generated=true 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # User content belongs under recipe/. 2 | # Feedstock configuration goes in `conda-forge.yml` 3 | # Everything else is managed by the conda-smithy rerender process. 4 | # Please do not modify 5 | 6 | # Ignore all files and folders in root 7 | * 8 | !/conda-forge.yml 9 | 10 | # Don't ignore any files/folders if the parent folder is 'un-ignored' 11 | # This also avoids warnings when adding an already-checked file with an ignored parent. 12 | !/**/ 13 | # Don't ignore any files/folders recursively in the following folders 14 | !/recipe/** 15 | !/.ci_support/** 16 | 17 | # Since we ignore files/folders recursively, any folders inside 18 | # build_artifacts gets ignored which trips some build systems. 19 | # To avoid that we 'un-ignore' all files/folders recursively 20 | # and only ignore the root build_artifacts folder. 21 | !/build_artifacts/** 22 | /build_artifacts 23 | 24 | *.pyc 25 | 26 | # Rattler-build's artifacts are in `output` when not specifying anything. 27 | /output 28 | # Pixi's configuration 29 | .pixi 30 | -------------------------------------------------------------------------------- /.scripts/logging_utils.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Provide a unified interface for the different logging 4 | # utilities CI providers offer. If unavailable, provide 5 | # a compatible fallback (e.g. bare `echo xxxxxx`). 6 | 7 | function startgroup { 8 | # Start a foldable group of log lines 9 | # Pass a single argument, quoted 10 | case ${CI:-} in 11 | azure ) 12 | echo "##[group]$1";; 13 | travis ) 14 | echo "$1" 15 | echo -en 'travis_fold:start:'"${1// /}"'\r';; 16 | github_actions ) 17 | echo "::group::$1";; 18 | * ) 19 | echo "$1";; 20 | esac 21 | } 2> /dev/null 22 | 23 | function endgroup { 24 | # End a foldable group of log lines 25 | # Pass a single argument, quoted 26 | 27 | case ${CI:-} in 28 | azure ) 29 | echo "##[endgroup]";; 30 | travis ) 31 | echo -en 'travis_fold:end:'"${1// /}"'\r';; 32 | github_actions ) 33 | echo "::endgroup::";; 34 | esac 35 | } 2> /dev/null 36 | -------------------------------------------------------------------------------- /recipe/build_pinocchio_python.bat: -------------------------------------------------------------------------------- 1 | REM It's important to remove build to avoid uninstalling 2 | REM libcoal file. This create some strange issues with conda-forge. 3 | 4 | rm -rf build 5 | mkdir build 6 | cd build 7 | 8 | set "CC=clang-cl.exe" 9 | set "CXX=clang-cl.exe" 10 | 11 | :: Configure 12 | :: Turn OpenMP OFF because of https://github.com/stack-of-tasks/pinocchio/issues/2440 13 | cmake ^ 14 | -G Ninja ^ 15 | -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ 16 | -DCMAKE_BUILD_TYPE=Release ^ 17 | -DPYTHON_SITELIB=%SP_DIR% ^ 18 | -DPYTHON_EXECUTABLE=%PYTHON% ^ 19 | -DBUILD_PYTHON_INTERFACE=ON ^ 20 | -DBUILD_STANDALONE_PYTHON_INTERFACE=ON ^ 21 | -DGENERATE_PYTHON_STUBS=ON ^ 22 | -DBUILD_WITH_COLLISION_SUPPORT=ON ^ 23 | -DBUILD_WITH_CASADI_SUPPORT=ON ^ 24 | -DBUILD_WITH_AUTODIFF_SUPPORT=OFF ^ 25 | -DBUILD_WITH_CODEGEN_SUPPORT=OFF ^ 26 | -DBUILD_WITH_EXTRA_SUPPORT=ON ^ 27 | -DBUILD_WITH_OPENMP_SUPPORT=OFF ^ 28 | -DBUILD_WITH_SDF_SUPPORT=ON ^ 29 | -DBUILD_PYTHON_BINDINGS_WITH_BOOST_MPFR_SUPPORT=OFF ^ 30 | -DBUILD_TESTING=OFF ^ 31 | %SRC_DIR% 32 | if errorlevel 1 exit 1 33 | 34 | :: Build. 35 | ninja -j%CPU_COUNT% 36 | if errorlevel 1 exit 1 37 | 38 | :: Install. 39 | ninja install 40 | if errorlevel 1 exit 1 41 | 42 | -------------------------------------------------------------------------------- /.ci_support/migrations/python314.yaml: -------------------------------------------------------------------------------- 1 | # this is intentionally sorted before the 3.13t migrator, because that determines 2 | # the order of application of the migrators; otherwise we'd have to add values for 3 | # is_freethreading and is_abi3 keys here, since that migration extends the zip; 4 | migrator_ts: 1724712607 5 | __migrator: 6 | commit_message: Rebuild for python 3.14 7 | migration_number: 1 8 | operation: key_add 9 | primary_key: python 10 | ordering: 11 | python: 12 | - 3.9.* *_cpython 13 | - 3.10.* *_cpython 14 | - 3.11.* *_cpython 15 | - 3.12.* *_cpython 16 | - 3.13.* *_cp313 17 | - 3.13.* *_cp313t 18 | - 3.14.* *_cp314 # new entry 19 | paused: false 20 | longterm: true 21 | pr_limit: 5 22 | max_solver_attempts: 3 # this will make the bot retry "not solvable" stuff 12 times 23 | exclude: 24 | # this shouldn't attempt to modify the python feedstocks 25 | - python 26 | - pypy3.6 27 | - pypy-meta 28 | - cross-python 29 | - python_abi 30 | exclude_pinned_pkgs: false 31 | ignored_deps_per_node: 32 | matplotlib: 33 | - pyqt 34 | additional_zip_keys: 35 | - channel_sources 36 | 37 | python: 38 | - 3.14.* *_cp314 39 | # additional entries to add for zip_keys 40 | is_python_min: 41 | - false 42 | channel_sources: 43 | - conda-forge,conda-forge/label/python_rc 44 | -------------------------------------------------------------------------------- /azure-pipelines.yml: -------------------------------------------------------------------------------- 1 | # This file was generated automatically from conda-smithy. To update this configuration, 2 | # update the conda-forge.yml and/or the recipe/meta.yaml. 3 | # -*- mode: yaml -*- 4 | 5 | stages: 6 | - stage: Check 7 | jobs: 8 | - job: Skip 9 | pool: 10 | vmImage: 'ubuntu-22.04' 11 | variables: 12 | DECODE_PERCENTS: 'false' 13 | RET: 'true' 14 | steps: 15 | - checkout: self 16 | fetchDepth: '2' 17 | - bash: | 18 | git_log=`git log --max-count=1 --skip=1 --pretty=format:"%B" | tr "\n" " "` 19 | echo "##vso[task.setvariable variable=log]$git_log" 20 | displayName: Obtain commit message 21 | - bash: echo "##vso[task.setvariable variable=RET]false" 22 | condition: and(eq(variables['Build.Reason'], 'PullRequest'), or(contains(variables.log, '[skip azp]'), contains(variables.log, '[azp skip]'), contains(variables.log, '[skip ci]'), contains(variables.log, '[ci skip]'))) 23 | displayName: Skip build? 24 | - bash: echo "##vso[task.setvariable variable=start_main;isOutput=true]$RET" 25 | name: result 26 | displayName: Export result 27 | - stage: Build 28 | condition: and(succeeded(), eq(dependencies.Check.outputs['Skip.result.start_main'], 'true')) 29 | dependsOn: Check 30 | jobs: 31 | - template: ./.azure-pipelines/azure-pipelines-linux.yml 32 | - template: ./.azure-pipelines/azure-pipelines-osx.yml 33 | - template: ./.azure-pipelines/azure-pipelines-win.yml -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | BSD-3-Clause license 2 | Copyright (c) 2015-2022, conda-forge contributors 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | 1. Redistributions of source code must retain the above copyright notice, 9 | this list of conditions and the following disclaimer. 10 | 2. Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in the 12 | documentation and/or other materials provided with the distribution. 13 | 3. Neither the name of the copyright holder nor the names of its 14 | contributors may be used to endorse or promote products derived from 15 | this software without specific prior written permission. 16 | 17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR 21 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 23 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 24 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 27 | DAMAGE. 28 | -------------------------------------------------------------------------------- /recipe/build_pinocchio_python.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # It's important to remove build to avoid uninstalling 4 | # libpinocchio file. This create some strange issues with conda-forge. 5 | rm -rf build 6 | mkdir build 7 | cd build 8 | 9 | export BUILD_NUMPY_INCLUDE_DIRS=$( $PYTHON -c "import numpy; print (numpy.get_include())") 10 | export TARGET_NUMPY_INCLUDE_DIRS=$SP_DIR/numpy/core/include 11 | 12 | echo $BUILD_NUMPY_INCLUDE_DIRS 13 | echo $TARGET_NUMPY_INCLUDE_DIRS 14 | 15 | export GENERATE_PYTHON_STUBS=1 16 | if [[ $CONDA_BUILD_CROSS_COMPILATION == 1 ]]; then 17 | echo "Copying files from $BUILD_NUMPY_INCLUDE_DIRS to $TARGET_NUMPY_INCLUDE_DIRS" 18 | mkdir -p $TARGET_NUMPY_INCLUDE_DIRS 19 | cp -r $BUILD_NUMPY_INCLUDE_DIRS/numpy $TARGET_NUMPY_INCLUDE_DIRS 20 | export GENERATE_PYTHON_STUBS=0 21 | export Python3_NumPy_INCLUDE_DIR=$TARGET_NUMPY_INCLUDE_DIRS 22 | else 23 | export Python3_NumPy_INCLUDE_DIR=$BUILD_NUMPY_INCLUDE_DIRS 24 | fi 25 | 26 | cmake ${CMAKE_ARGS} .. \ 27 | -GNinja \ 28 | -DCMAKE_BUILD_TYPE=Release \ 29 | -DBUILD_PYTHON_INTERFACE=ON \ 30 | -DBUILD_STANDALONE_PYTHON_INTERFACE=ON \ 31 | -DBUILD_WITH_COLLISION_SUPPORT=ON \ 32 | -DBUILD_WITH_CASADI_SUPPORT=ON \ 33 | -DBUILD_WITH_AUTODIFF_SUPPORT=OFF \ 34 | -DBUILD_WITH_CODEGEN_SUPPORT=OFF \ 35 | -DBUILD_WITH_EXTRA_SUPPORT=ON \ 36 | -DBUILD_WITH_OPENMP_SUPPORT=ON \ 37 | -DBUILD_WITH_SDF_SUPPORT=ON \ 38 | -DBUILD_PYTHON_BINDINGS_WITH_BOOST_MPFR_SUPPORT=OFF \ 39 | -DPython3_NumPy_INCLUDE_DIR=$Python3_NumPy_INCLUDE_DIR \ 40 | -DBUILD_TESTING=OFF \ 41 | -DGENERATE_PYTHON_STUBS=$GENERATE_PYTHON_STUBS \ 42 | -DPYTHON_EXECUTABLE=$PYTHON 43 | 44 | ninja -j1 45 | ninja install 46 | -------------------------------------------------------------------------------- /.scripts/create_conda_build_artifacts.bat: -------------------------------------------------------------------------------- 1 | setlocal enableextensions enabledelayedexpansion 2 | 3 | rem INPUTS (environment variables that need to be set before calling this script): 4 | rem 5 | rem CI (azure/github_actions/UNSET) 6 | rem CI_RUN_ID (unique identifier for the CI job run) 7 | rem FEEDSTOCK_NAME 8 | rem CONFIG (build matrix configuration string) 9 | rem SHORT_CONFIG (uniquely-shortened configuration string) 10 | rem CONDA_BLD_DIR (path to the conda-bld directory) 11 | rem ARTIFACT_STAGING_DIR (use working directory if unset) 12 | rem BLD_ARTIFACT_PREFIX (prefix for the conda build artifact name, skip if unset) 13 | rem ENV_ARTIFACT_PREFIX (prefix for the conda build environments artifact name, skip if unset) 14 | 15 | rem OUTPUTS 16 | rem 17 | rem BLD_ARTIFACT_NAME 18 | rem BLD_ARTIFACT_PATH 19 | rem ENV_ARTIFACT_NAME 20 | rem ENV_ARTIFACT_PATH 21 | 22 | rem Check that the conda-build directory exists 23 | if not exist %CONDA_BLD_DIR% ( 24 | echo conda-build directory does not exist 25 | exit 1 26 | ) 27 | 28 | if not defined ARTIFACT_STAGING_DIR ( 29 | rem Set staging dir to the working dir 30 | set ARTIFACT_STAGING_DIR=%cd% 31 | ) 32 | 33 | rem Set a unique ID for the artifact(s), specialized for this particular job run 34 | set ARTIFACT_UNIQUE_ID=%CI_RUN_ID%_%CONFIG% 35 | if not "%ARTIFACT_UNIQUE_ID%" == "%ARTIFACT_UNIQUE_ID:~0,80%" ( 36 | set ARTIFACT_UNIQUE_ID=%CI_RUN_ID%_%SHORT_CONFIG% 37 | ) 38 | 39 | rem Make the build artifact zip 40 | if defined BLD_ARTIFACT_PREFIX ( 41 | set BLD_ARTIFACT_NAME=%BLD_ARTIFACT_PREFIX%_%ARTIFACT_UNIQUE_ID% 42 | echo BLD_ARTIFACT_NAME: !BLD_ARTIFACT_NAME! 43 | 44 | set "BLD_ARTIFACT_PATH=%ARTIFACT_STAGING_DIR%\%FEEDSTOCK_NAME%_%BLD_ARTIFACT_PREFIX%_%ARCHIVE_UNIQUE_ID%.zip" 45 | 7z a "!BLD_ARTIFACT_PATH!" "%CONDA_BLD_DIR%" -xr^^!.git/ -xr^^!_*_env*/ -xr^^!*_cache/ -bb 46 | if errorlevel 1 exit 1 47 | echo BLD_ARTIFACT_PATH: !BLD_ARTIFACT_PATH! 48 | 49 | if "%CI%" == "azure" ( 50 | echo ##vso[task.setVariable variable=BLD_ARTIFACT_NAME]!BLD_ARTIFACT_NAME! 51 | echo ##vso[task.setVariable variable=BLD_ARTIFACT_PATH]!BLD_ARTIFACT_PATH! 52 | ) 53 | if "%CI%" == "github_actions" ( 54 | echo BLD_ARTIFACT_NAME=!BLD_ARTIFACT_NAME!>> !GITHUB_OUTPUT! 55 | echo BLD_ARTIFACT_PATH=!BLD_ARTIFACT_PATH!>> !GITHUB_OUTPUT! 56 | ) 57 | ) 58 | 59 | rem Make the environments artifact zip 60 | if defined ENV_ARTIFACT_PREFIX ( 61 | set ENV_ARTIFACT_NAME=!ENV_ARTIFACT_PREFIX!_%ARTIFACT_UNIQUE_ID% 62 | echo ENV_ARTIFACT_NAME: !ENV_ARTIFACT_NAME! 63 | 64 | set "ENV_ARTIFACT_PATH=%ARTIFACT_STAGING_DIR%\%FEEDSTOCK_NAME%_%ENV_ARTIFACT_PREFIX%_%ARCHIVE_UNIQUE_ID%.zip" 65 | 7z a "!ENV_ARTIFACT_PATH!" -r "%CONDA_BLD_DIR%"/_*_env*/ -bb 66 | if errorlevel 1 exit 1 67 | echo ENV_ARTIFACT_PATH: !ENV_ARTIFACT_PATH! 68 | 69 | if "%CI%" == "azure" ( 70 | echo ##vso[task.setVariable variable=ENV_ARTIFACT_NAME]!ENV_ARTIFACT_NAME! 71 | echo ##vso[task.setVariable variable=ENV_ARTIFACT_PATH]!ENV_ARTIFACT_PATH! 72 | ) 73 | if "%CI%" == "github_actions" ( 74 | echo ENV_ARTIFACT_NAME=!ENV_ARTIFACT_NAME!>> !GITHUB_OUTPUT! 75 | echo ENV_ARTIFACT_PATH=!ENV_ARTIFACT_PATH!>> !GITHUB_OUTPUT! 76 | ) 77 | ) 78 | -------------------------------------------------------------------------------- /.azure-pipelines/azure-pipelines-win.yml: -------------------------------------------------------------------------------- 1 | # This file was generated automatically from conda-smithy. To update this configuration, 2 | # update the conda-forge.yml and/or the recipe/meta.yaml. 3 | # -*- mode: yaml -*- 4 | 5 | jobs: 6 | - job: win 7 | pool: 8 | vmImage: windows-2022 9 | strategy: 10 | matrix: 11 | win_64_python3.10.____cpython: 12 | CONFIG: win_64_python3.10.____cpython 13 | UPLOAD_PACKAGES: 'True' 14 | SHORT_CONFIG: win_64_python3.10.____cpython 15 | win_64_python3.11.____cpython: 16 | CONFIG: win_64_python3.11.____cpython 17 | UPLOAD_PACKAGES: 'True' 18 | SHORT_CONFIG: win_64_python3.11.____cpython 19 | win_64_python3.12.____cpython: 20 | CONFIG: win_64_python3.12.____cpython 21 | UPLOAD_PACKAGES: 'True' 22 | SHORT_CONFIG: win_64_python3.12.____cpython 23 | win_64_python3.13.____cp313: 24 | CONFIG: win_64_python3.13.____cp313 25 | UPLOAD_PACKAGES: 'True' 26 | SHORT_CONFIG: win_64_python3.13.____cp313 27 | win_64_python3.14.____cp314: 28 | CONFIG: win_64_python3.14.____cp314 29 | UPLOAD_PACKAGES: 'True' 30 | SHORT_CONFIG: win_64_python3.14.____cp314 31 | timeoutInMinutes: 360 32 | variables: 33 | CONDA_BLD_PATH: D:\\bld\\ 34 | MINIFORGE_HOME: D:\Miniforge 35 | UPLOAD_TEMP: D:\\tmp 36 | 37 | steps: 38 | 39 | - script: | 40 | call ".scripts\run_win_build.bat" 41 | displayName: Run Windows build 42 | env: 43 | MINIFORGE_HOME: $(MINIFORGE_HOME) 44 | CONDA_BLD_PATH: $(CONDA_BLD_PATH) 45 | PYTHONUNBUFFERED: 1 46 | CONFIG: $(CONFIG) 47 | CI: azure 48 | flow_run_id: azure_$(Build.BuildNumber).$(System.JobAttempt) 49 | remote_url: $(Build.Repository.Uri) 50 | sha: $(Build.SourceVersion) 51 | UPLOAD_PACKAGES: $(UPLOAD_PACKAGES) 52 | UPLOAD_TEMP: $(UPLOAD_TEMP) 53 | BINSTAR_TOKEN: $(BINSTAR_TOKEN) 54 | FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) 55 | STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) 56 | - script: | 57 | set MINIFORGE_HOME=$(MINIFORGE_HOME) 58 | set CI=azure 59 | set CI_RUN_ID=$(build.BuildNumber).$(system.JobAttempt) 60 | set FEEDSTOCK_NAME=$(build.Repository.Name) 61 | set ARTIFACT_STAGING_DIR=$(Build.ArtifactStagingDirectory) 62 | set CONDA_BLD_DIR=$(CONDA_BLD_PATH) 63 | set BLD_ARTIFACT_PREFIX=conda_artifacts 64 | if "%AGENT_JOBSTATUS%" == "Failed" ( 65 | set ENV_ARTIFACT_PREFIX=conda_envs 66 | ) 67 | call ".scripts\create_conda_build_artifacts.bat" 68 | displayName: Prepare conda build artifacts 69 | condition: succeededOrFailed() 70 | 71 | - task: PublishPipelineArtifact@1 72 | displayName: Store conda build artifacts 73 | condition: not(eq(variables.BLD_ARTIFACT_PATH, '')) 74 | inputs: 75 | targetPath: $(BLD_ARTIFACT_PATH) 76 | artifactName: $(BLD_ARTIFACT_NAME) 77 | 78 | - task: PublishPipelineArtifact@1 79 | displayName: Store conda build environment artifacts 80 | condition: not(eq(variables.ENV_ARTIFACT_PATH, '')) 81 | inputs: 82 | targetPath: $(ENV_ARTIFACT_PATH) 83 | artifactName: $(ENV_ARTIFACT_NAME) 84 | -------------------------------------------------------------------------------- /.scripts/build_steps.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here 4 | # will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent 5 | # changes to this script, consider a proposal to conda-smithy so that other feedstocks can also 6 | # benefit from the improvement. 7 | 8 | # -*- mode: jinja-shell -*- 9 | 10 | set -xeuo pipefail 11 | export FEEDSTOCK_ROOT="${FEEDSTOCK_ROOT:-/home/conda/feedstock_root}" 12 | source ${FEEDSTOCK_ROOT}/.scripts/logging_utils.sh 13 | 14 | 15 | ( endgroup "Start Docker" ) 2> /dev/null 16 | 17 | ( startgroup "Configuring conda" ) 2> /dev/null 18 | 19 | export PYTHONUNBUFFERED=1 20 | export RECIPE_ROOT="${RECIPE_ROOT:-/home/conda/recipe_root}" 21 | export CI_SUPPORT="${FEEDSTOCK_ROOT}/.ci_support" 22 | export CONFIG_FILE="${CI_SUPPORT}/${CONFIG}.yaml" 23 | 24 | cat >~/.condarc < /opt/conda/conda-meta/history 36 | micromamba install --root-prefix ~/.conda --prefix /opt/conda \ 37 | --yes --override-channels --channel conda-forge --strict-channel-priority \ 38 | pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" 39 | export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 40 | 41 | # set up the condarc 42 | setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" 43 | 44 | source run_conda_forge_build_setup 45 | 46 | 47 | 48 | # make the build number clobber 49 | make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" 50 | 51 | if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]] && [[ "${HOST_PLATFORM}" != linux-* ]] && [[ "${BUILD_WITH_CONDA_DEBUG:-0}" != 1 ]]; then 52 | EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" 53 | fi 54 | 55 | 56 | ( endgroup "Configuring conda" ) 2> /dev/null 57 | 58 | if [[ -f "${FEEDSTOCK_ROOT}/LICENSE.txt" ]]; then 59 | cp "${FEEDSTOCK_ROOT}/LICENSE.txt" "${RECIPE_ROOT}/recipe-scripts-license.txt" 60 | fi 61 | 62 | if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then 63 | if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then 64 | EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" 65 | fi 66 | conda debug "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ 67 | ${EXTRA_CB_OPTIONS:-} \ 68 | --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" 69 | 70 | # Drop into an interactive shell 71 | /bin/bash 72 | else 73 | conda-build "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ 74 | --suppress-variables ${EXTRA_CB_OPTIONS:-} \ 75 | --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" \ 76 | --extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}" 77 | ( startgroup "Inspecting artifacts" ) 2> /dev/null 78 | 79 | # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 80 | command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir "${RECIPE_ROOT}" -m "${CONFIG_FILE}" || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" 81 | 82 | ( endgroup "Inspecting artifacts" ) 2> /dev/null 83 | ( startgroup "Validating outputs" ) 2> /dev/null 84 | 85 | validate_recipe_outputs "${FEEDSTOCK_NAME}" 86 | 87 | ( endgroup "Validating outputs" ) 2> /dev/null 88 | 89 | ( startgroup "Uploading packages" ) 2> /dev/null 90 | 91 | if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then 92 | upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" 93 | fi 94 | 95 | ( endgroup "Uploading packages" ) 2> /dev/null 96 | fi 97 | 98 | ( startgroup "Final checks" ) 2> /dev/null 99 | 100 | touch "${FEEDSTOCK_ROOT}/build_artifacts/conda-forge-build-done-${CONFIG}" 101 | -------------------------------------------------------------------------------- /.azure-pipelines/azure-pipelines-osx.yml: -------------------------------------------------------------------------------- 1 | # This file was generated automatically from conda-smithy. To update this configuration, 2 | # update the conda-forge.yml and/or the recipe/meta.yaml. 3 | # -*- mode: yaml -*- 4 | 5 | jobs: 6 | - job: osx 7 | pool: 8 | vmImage: macOS-15 9 | strategy: 10 | matrix: 11 | osx_64_python3.10.____cpython: 12 | CONFIG: osx_64_python3.10.____cpython 13 | UPLOAD_PACKAGES: 'True' 14 | SHORT_CONFIG: osx_64_python3.10.____cpython 15 | osx_64_python3.11.____cpython: 16 | CONFIG: osx_64_python3.11.____cpython 17 | UPLOAD_PACKAGES: 'True' 18 | SHORT_CONFIG: osx_64_python3.11.____cpython 19 | osx_64_python3.12.____cpython: 20 | CONFIG: osx_64_python3.12.____cpython 21 | UPLOAD_PACKAGES: 'True' 22 | SHORT_CONFIG: osx_64_python3.12.____cpython 23 | osx_64_python3.13.____cp313: 24 | CONFIG: osx_64_python3.13.____cp313 25 | UPLOAD_PACKAGES: 'True' 26 | SHORT_CONFIG: osx_64_python3.13.____cp313 27 | osx_64_python3.14.____cp314: 28 | CONFIG: osx_64_python3.14.____cp314 29 | UPLOAD_PACKAGES: 'True' 30 | SHORT_CONFIG: osx_64_python3.14.____cp314 31 | osx_arm64_python3.10.____cpython: 32 | CONFIG: osx_arm64_python3.10.____cpython 33 | UPLOAD_PACKAGES: 'True' 34 | SHORT_CONFIG: osx_arm64_python3.10.____cpython 35 | osx_arm64_python3.11.____cpython: 36 | CONFIG: osx_arm64_python3.11.____cpython 37 | UPLOAD_PACKAGES: 'True' 38 | SHORT_CONFIG: osx_arm64_python3.11.____cpython 39 | osx_arm64_python3.12.____cpython: 40 | CONFIG: osx_arm64_python3.12.____cpython 41 | UPLOAD_PACKAGES: 'True' 42 | SHORT_CONFIG: osx_arm64_python3.12.____cpython 43 | osx_arm64_python3.13.____cp313: 44 | CONFIG: osx_arm64_python3.13.____cp313 45 | UPLOAD_PACKAGES: 'True' 46 | SHORT_CONFIG: osx_arm64_python3.13.____cp313 47 | osx_arm64_python3.14.____cp314: 48 | CONFIG: osx_arm64_python3.14.____cp314 49 | UPLOAD_PACKAGES: 'True' 50 | SHORT_CONFIG: osx_arm64_python3.14.____cp314 51 | timeoutInMinutes: 360 52 | variables: {} 53 | 54 | steps: 55 | # TODO: Fast finish on azure pipelines? 56 | - script: | 57 | export CI=azure 58 | export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) 59 | export remote_url=$(Build.Repository.Uri) 60 | export sha=$(Build.SourceVersion) 61 | export OSX_FORCE_SDK_DOWNLOAD="1" 62 | export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME 63 | export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) 64 | if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then 65 | export IS_PR_BUILD="True" 66 | else 67 | export IS_PR_BUILD="False" 68 | fi 69 | ./.scripts/run_osx_build.sh 70 | displayName: Run OSX build 71 | env: 72 | BINSTAR_TOKEN: $(BINSTAR_TOKEN) 73 | FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) 74 | STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) 75 | - script: | 76 | export CI=azure 77 | export CI_RUN_ID=$(build.BuildNumber).$(system.JobAttempt) 78 | export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) 79 | export CONDA_BLD_DIR=/Users/runner/miniforge3/conda-bld 80 | export ARTIFACT_STAGING_DIR="$(Build.ArtifactStagingDirectory)" 81 | # Archive everything in CONDA_BLD_DIR except environments 82 | export BLD_ARTIFACT_PREFIX=conda_artifacts 83 | if [[ "$AGENT_JOBSTATUS" == "Failed" ]]; then 84 | # Archive the CONDA_BLD_DIR environments only when the job fails 85 | export ENV_ARTIFACT_PREFIX=conda_envs 86 | fi 87 | ./.scripts/create_conda_build_artifacts.sh 88 | displayName: Prepare conda build artifacts 89 | condition: succeededOrFailed() 90 | 91 | - task: PublishPipelineArtifact@1 92 | displayName: Store conda build artifacts 93 | condition: not(eq(variables.BLD_ARTIFACT_PATH, '')) 94 | inputs: 95 | targetPath: $(BLD_ARTIFACT_PATH) 96 | artifactName: $(BLD_ARTIFACT_NAME) 97 | 98 | - task: PublishPipelineArtifact@1 99 | displayName: Store conda build environment artifacts 100 | condition: not(eq(variables.ENV_ARTIFACT_PATH, '')) 101 | inputs: 102 | targetPath: $(ENV_ARTIFACT_PATH) 103 | artifactName: $(ENV_ARTIFACT_NAME) 104 | -------------------------------------------------------------------------------- /.scripts/run_docker_build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here 4 | # will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent 5 | # changes to this script, consider a proposal to conda-smithy so that other feedstocks can also 6 | # benefit from the improvement. 7 | 8 | source .scripts/logging_utils.sh 9 | 10 | ( startgroup "Configure Docker" ) 2> /dev/null 11 | 12 | set -xeo pipefail 13 | 14 | THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )" 15 | PROVIDER_DIR="$(basename "$THISDIR")" 16 | 17 | FEEDSTOCK_ROOT="$( cd "$( dirname "$0" )/.." >/dev/null && pwd )" 18 | RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe" 19 | 20 | if [ -z ${FEEDSTOCK_NAME} ]; then 21 | export FEEDSTOCK_NAME=$(basename ${FEEDSTOCK_ROOT}) 22 | fi 23 | 24 | if [[ "${sha:-}" == "" ]]; then 25 | pushd "${FEEDSTOCK_ROOT}" 26 | sha=$(git rev-parse HEAD) 27 | popd 28 | fi 29 | 30 | docker info 31 | 32 | # In order for the conda-build process in the container to write to the mounted 33 | # volumes, we need to run with the same id as the host machine, which is 34 | # normally the owner of the mounted volumes, or at least has write permission 35 | export HOST_USER_ID=$(id -u) 36 | # Check if docker-machine is being used (normally on OSX) and get the uid from 37 | # the VM 38 | if hash docker-machine 2> /dev/null && docker-machine active > /dev/null; then 39 | export HOST_USER_ID=$(docker-machine ssh $(docker-machine active) id -u) 40 | fi 41 | 42 | ARTIFACTS="$FEEDSTOCK_ROOT/build_artifacts" 43 | 44 | if [ -z "$CONFIG" ]; then 45 | set +x 46 | FILES=`ls .ci_support/linux_*` 47 | CONFIGS="" 48 | for file in $FILES; do 49 | CONFIGS="${CONFIGS}'${file:12:-5}' or "; 50 | done 51 | echo "Need to set CONFIG env variable. Value can be one of ${CONFIGS:0:-4}" 52 | exit 1 53 | fi 54 | 55 | if [ -z "${DOCKER_IMAGE}" ]; then 56 | SHYAML_INSTALLED="$(shyaml -h || echo NO)" 57 | if [ "${SHYAML_INSTALLED}" == "NO" ]; then 58 | echo "WARNING: DOCKER_IMAGE variable not set and shyaml not installed. Trying to parse with coreutils" 59 | DOCKER_IMAGE=$(cat .ci_support/${CONFIG}.yaml | grep '^docker_image:$' -A 1 | tail -n 1 | cut -b 3-) 60 | if [ "${DOCKER_IMAGE}" = "" ]; then 61 | echo "No docker_image entry found in ${CONFIG}. Falling back to quay.io/condaforge/linux-anvil-comp7" 62 | DOCKER_IMAGE="quay.io/condaforge/linux-anvil-comp7" 63 | fi 64 | else 65 | DOCKER_IMAGE="$(cat "${FEEDSTOCK_ROOT}/.ci_support/${CONFIG}.yaml" | shyaml get-value docker_image.0 quay.io/condaforge/linux-anvil-comp7 )" 66 | fi 67 | fi 68 | 69 | mkdir -p "$ARTIFACTS" 70 | DONE_CANARY="$ARTIFACTS/conda-forge-build-done-${CONFIG}" 71 | rm -f "$DONE_CANARY" 72 | 73 | # Allow people to specify extra default arguments to `docker run` (e.g. `--rm`) 74 | DOCKER_RUN_ARGS="${CONDA_FORGE_DOCKER_RUN_ARGS}" 75 | if [ -z "${CI}" ]; then 76 | DOCKER_RUN_ARGS="-it ${DOCKER_RUN_ARGS}" 77 | fi 78 | 79 | ( endgroup "Configure Docker" ) 2> /dev/null 80 | 81 | ( startgroup "Start Docker" ) 2> /dev/null 82 | 83 | export UPLOAD_PACKAGES="${UPLOAD_PACKAGES:-True}" 84 | export IS_PR_BUILD="${IS_PR_BUILD:-False}" 85 | docker pull "${DOCKER_IMAGE}" 86 | docker run ${DOCKER_RUN_ARGS} \ 87 | -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw,z,delegated \ 88 | -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw,z,delegated \ 89 | -e CONFIG \ 90 | -e HOST_USER_ID \ 91 | -e UPLOAD_PACKAGES \ 92 | -e IS_PR_BUILD \ 93 | -e GIT_BRANCH \ 94 | -e UPLOAD_ON_BRANCH \ 95 | -e CI \ 96 | -e FEEDSTOCK_NAME \ 97 | -e CPU_COUNT \ 98 | -e BUILD_WITH_CONDA_DEBUG \ 99 | -e BUILD_OUTPUT_ID \ 100 | -e flow_run_id \ 101 | -e remote_url \ 102 | -e sha \ 103 | -e BINSTAR_TOKEN \ 104 | -e FEEDSTOCK_TOKEN \ 105 | -e STAGING_BINSTAR_TOKEN \ 106 | "${DOCKER_IMAGE}" \ 107 | bash \ 108 | "/home/conda/feedstock_root/${PROVIDER_DIR}/build_steps.sh" 109 | 110 | # verify that the end of the script was reached 111 | test -f "$DONE_CANARY" 112 | 113 | # This closes the last group opened in `build_steps.sh` 114 | ( endgroup "Final checks" ) 2> /dev/null 115 | -------------------------------------------------------------------------------- /recipe/meta.yaml: -------------------------------------------------------------------------------- 1 | {% set name = "pinocchio" %} 2 | {% set cppname = "lib" + name %} 3 | {% set pythonname = name + "-python" %} 4 | {% set version = "3.8.0" %} 5 | 6 | package: 7 | name: {{ name|lower }}-split 8 | version: {{ version }} 9 | 10 | source: 11 | url: https://github.com/stack-of-tasks/{{ name }}/releases/download/v{{ version }}/{{ name }}-{{ version }}.tar.gz 12 | sha256: aa4664d95a54af7197354a80f5ad324cb291b00593886b78dd868b1fd13636ca 13 | 14 | build: 15 | number: 1 16 | run_exports: 17 | - {{ pin_subpackage(name, max_pin='x.x.x') }} 18 | 19 | outputs: 20 | - name: {{ cppname }} 21 | build: 22 | run_exports: 23 | - {{ pin_subpackage(cppname, max_pin='x.x.x') }} 24 | script: build_pinocchio_cpp.sh # [not win] 25 | script: build_pinocchio_cpp.bat # [win] 26 | requirements: 27 | build: 28 | - {{ compiler('cxx') }} 29 | - {{ stdlib("c") }} 30 | - cmake 31 | - ninja 32 | - libgomp # [linux] 33 | - llvm-openmp # [osx] 34 | host: 35 | - eigen 36 | - urdfdom 37 | - hpp-fcl 38 | - libboost-devel 39 | - casadi 40 | - qhull 41 | - qhull-static # [not win] 42 | - console_bridge 43 | - libsdformat14 44 | run: 45 | - libboost-devel 46 | - qhull-static # [not win] 47 | test: 48 | requires: 49 | - pkg-config 50 | commands: 51 | - pkg-config --modversion {{ name }} 52 | - test -f $PREFIX/lib/lib{{ name }}_default${SHLIB_EXT} # [unix] 53 | - if not exist %PREFIX%\Library\bin\{{ name }}_default.dll exit 1 # [win] 54 | - name: {{ pythonname }} 55 | script: build_pinocchio_python.sh # [not win] 56 | script: build_pinocchio_python.bat # [win] 57 | requirements: 58 | build: 59 | - python # [build_platform != target_platform] 60 | - cross-python_{{ target_platform }} # [build_platform != target_platform] 61 | - numpy # [build_platform != target_platform] 62 | - {{ compiler('cxx') }} 63 | - {{ stdlib("c") }} 64 | - clang # [win] 65 | - cmake 66 | - ninja 67 | host: 68 | - eigen 69 | - eigenpy 70 | - hpp-fcl 71 | - libboost-devel 72 | - libboost-python-devel 73 | - python 74 | # On Windows, Numpy 2.0 don't allow to export the PY_ARRAY_UNIQUE_SYMBOL. 75 | # This has been fixed in Numpy 2.1. 76 | - numpy >=2.1 # [win and py>=310] 77 | # Unfortunatly, Numpy 2.1 is not distributed with Python 3.9. 78 | # We are forced to use Numpy 1 in this case. 79 | - numpy >=1.19,<2 # [win and py<310] 80 | - numpy # [not win] 81 | - casadi 82 | - {{ pin_subpackage(cppname, exact=true) }} 83 | run: 84 | - python 85 | - numpy >=2.1 # [win and py>=310] 86 | - {{ pin_compatible('numpy') }} # [win and py<310] 87 | - {{ pin_subpackage(cppname, exact=true) }} 88 | test: 89 | imports: 90 | - pinocchio 91 | - name: {{ name }} 92 | build: 93 | run_exports: 94 | - {{ pin_subpackage(cppname, max_pin='x.x.x') }} 95 | requirements: 96 | host: 97 | # Explicitely add a python requirement so that the hash changes between python version 98 | - python 99 | run: 100 | - {{ pin_subpackage(cppname, exact=true) }} 101 | - {{ pin_subpackage(pythonname, exact=true) }} 102 | test: 103 | requires: 104 | - pkg-config 105 | imports: 106 | - pinocchio 107 | commands: 108 | - pkg-config --modversion {{ name }} 109 | - test -f $PREFIX/lib/lib{{ name }}_default${SHLIB_EXT} # [unix] 110 | - if not exist %PREFIX%\Library\bin\{{ name }}_default.dll exit 1 # [win] 111 | 112 | about: 113 | home: http://github.com/stack-of-tasks/pinocchio 114 | license: BSD-2-Clause 115 | license_family: BSD 116 | license_file: LICENSE 117 | summary: A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives 118 | dev_url: https://github.com/stack-of-tasks/pinocchio 119 | 120 | extra: 121 | feedstock-name: pinocchio 122 | recipe-maintainers: 123 | - nim65s 124 | - fabinsch 125 | - jorisv 126 | - jcarpent 127 | - wolfv 128 | - ymontmarin 129 | -------------------------------------------------------------------------------- /.scripts/run_osx_build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # -*- mode: jinja-shell -*- 4 | 5 | source .scripts/logging_utils.sh 6 | 7 | set -xe 8 | 9 | MINIFORGE_HOME="${MINIFORGE_HOME:-${HOME}/miniforge3}" 10 | MINIFORGE_HOME="${MINIFORGE_HOME%/}" # remove trailing slash 11 | export CONDA_BLD_PATH="${CONDA_BLD_PATH:-${MINIFORGE_HOME}/conda-bld}" 12 | 13 | ( startgroup "Provisioning base env with micromamba" ) 2> /dev/null 14 | MICROMAMBA_VERSION="1.5.10-0" 15 | if [[ "$(uname -m)" == "arm64" ]]; then 16 | osx_arch="osx-arm64" 17 | else 18 | osx_arch="osx-64" 19 | fi 20 | MICROMAMBA_URL="https://github.com/mamba-org/micromamba-releases/releases/download/${MICROMAMBA_VERSION}/micromamba-${osx_arch}" 21 | MAMBA_ROOT_PREFIX="${MINIFORGE_HOME}-micromamba-$(date +%s)" 22 | echo "Downloading micromamba ${MICROMAMBA_VERSION}" 23 | micromamba_exe="$(mktemp -d)/micromamba" 24 | curl -L -o "${micromamba_exe}" "${MICROMAMBA_URL}" 25 | chmod +x "${micromamba_exe}" 26 | echo "Creating environment" 27 | "${micromamba_exe}" create --yes --root-prefix "${MAMBA_ROOT_PREFIX}" --prefix "${MINIFORGE_HOME}" \ 28 | --channel conda-forge \ 29 | pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" 30 | echo "Moving pkgs cache from ${MAMBA_ROOT_PREFIX} to ${MINIFORGE_HOME}" 31 | mv "${MAMBA_ROOT_PREFIX}/pkgs" "${MINIFORGE_HOME}" 32 | echo "Cleaning up micromamba" 33 | rm -rf "${MAMBA_ROOT_PREFIX}" "${micromamba_exe}" || true 34 | ( endgroup "Provisioning base env with micromamba" ) 2> /dev/null 35 | 36 | ( startgroup "Configuring conda" ) 2> /dev/null 37 | echo "Activating environment" 38 | source "${MINIFORGE_HOME}/etc/profile.d/conda.sh" 39 | conda activate base 40 | export CONDA_SOLVER="libmamba" 41 | export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 42 | 43 | 44 | 45 | 46 | 47 | echo -e "\n\nSetting up the condarc and mangling the compiler." 48 | setup_conda_rc ./ ./recipe ./.ci_support/${CONFIG}.yaml 49 | 50 | if [[ "${CI:-}" != "" ]]; then 51 | mangle_compiler ./ ./recipe .ci_support/${CONFIG}.yaml 52 | fi 53 | 54 | if [[ "${CI:-}" != "" ]]; then 55 | echo -e "\n\nMangling homebrew in the CI to avoid conflicts." 56 | /usr/bin/sudo mangle_homebrew 57 | /usr/bin/sudo -k 58 | else 59 | echo -e "\n\nNot mangling homebrew as we are not running in CI" 60 | fi 61 | 62 | if [[ "${sha:-}" == "" ]]; then 63 | sha=$(git rev-parse HEAD) 64 | fi 65 | 66 | echo -e "\n\nRunning the build setup script." 67 | source run_conda_forge_build_setup 68 | 69 | 70 | 71 | ( endgroup "Configuring conda" ) 2> /dev/null 72 | 73 | echo -e "\n\nMaking the build clobber file" 74 | make_build_number ./ ./recipe ./.ci_support/${CONFIG}.yaml 75 | 76 | if [[ -f LICENSE.txt ]]; then 77 | cp LICENSE.txt "recipe/recipe-scripts-license.txt" 78 | fi 79 | 80 | if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then 81 | if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then 82 | EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" 83 | fi 84 | conda debug ./recipe -m ./.ci_support/${CONFIG}.yaml \ 85 | ${EXTRA_CB_OPTIONS:-} \ 86 | --clobber-file ./.ci_support/clobber_${CONFIG}.yaml 87 | 88 | # Drop into an interactive shell 89 | /bin/bash 90 | else 91 | 92 | if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then 93 | EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" 94 | fi 95 | 96 | conda-build ./recipe -m ./.ci_support/${CONFIG}.yaml \ 97 | --suppress-variables ${EXTRA_CB_OPTIONS:-} \ 98 | --clobber-file ./.ci_support/clobber_${CONFIG}.yaml \ 99 | --extra-meta flow_run_id="$flow_run_id" remote_url="$remote_url" sha="$sha" 100 | 101 | ( startgroup "Inspecting artifacts" ) 2> /dev/null 102 | 103 | # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 104 | command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir ./recipe -m ./.ci_support/${CONFIG}.yaml || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" 105 | 106 | ( endgroup "Inspecting artifacts" ) 2> /dev/null 107 | ( startgroup "Validating outputs" ) 2> /dev/null 108 | 109 | validate_recipe_outputs "${FEEDSTOCK_NAME}" 110 | 111 | ( endgroup "Validating outputs" ) 2> /dev/null 112 | 113 | ( startgroup "Uploading packages" ) 2> /dev/null 114 | 115 | if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then 116 | upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" ./ ./recipe ./.ci_support/${CONFIG}.yaml 117 | fi 118 | 119 | ( endgroup "Uploading packages" ) 2> /dev/null 120 | fi 121 | -------------------------------------------------------------------------------- /.scripts/create_conda_build_artifacts.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # INPUTS (environment variables that need to be set before calling this script): 4 | # 5 | # CI (azure/github_actions/UNSET) 6 | # CI_RUN_ID (unique identifier for the CI job run) 7 | # FEEDSTOCK_NAME 8 | # CONFIG (build matrix configuration string) 9 | # SHORT_CONFIG (uniquely-shortened configuration string) 10 | # CONDA_BLD_DIR (path to the conda-bld directory) 11 | # ARTIFACT_STAGING_DIR (use working directory if unset) 12 | # BLD_ARTIFACT_PREFIX (prefix for the conda build artifact name, skip if unset) 13 | # ENV_ARTIFACT_PREFIX (prefix for the conda build environments artifact name, skip if unset) 14 | 15 | # OUTPUTS 16 | # 17 | # BLD_ARTIFACT_NAME 18 | # BLD_ARTIFACT_PATH 19 | # ENV_ARTIFACT_NAME 20 | # ENV_ARTIFACT_PATH 21 | 22 | source .scripts/logging_utils.sh 23 | 24 | # DON'T do set -x, because it results in double echo-ing pipeline commands 25 | # and that might end up inserting extraneous quotation marks in output variables 26 | set -e 27 | 28 | # Check that the conda-build directory exists 29 | if [ ! -d "$CONDA_BLD_DIR" ]; then 30 | echo "conda-build directory does not exist" 31 | exit 1 32 | fi 33 | 34 | # Set staging dir to the working dir, in Windows style if applicable 35 | if [[ -z "${ARTIFACT_STAGING_DIR}" ]]; then 36 | if pwd -W; then 37 | ARTIFACT_STAGING_DIR=$(pwd -W) 38 | else 39 | ARTIFACT_STAGING_DIR=$PWD 40 | fi 41 | fi 42 | echo "ARTIFACT_STAGING_DIR: $ARTIFACT_STAGING_DIR" 43 | 44 | FEEDSTOCK_ROOT=$(cd "$(dirname "$0")/.."; pwd;) 45 | if [ -z ${FEEDSTOCK_NAME} ]; then 46 | export FEEDSTOCK_NAME=$(basename ${FEEDSTOCK_ROOT}) 47 | fi 48 | 49 | # Set a unique ID for the artifact(s), specialized for this particular job run 50 | ARTIFACT_UNIQUE_ID="${CI_RUN_ID}_${CONFIG}" 51 | if [[ ${#ARTIFACT_UNIQUE_ID} -gt 80 ]]; then 52 | ARTIFACT_UNIQUE_ID="${CI_RUN_ID}_${SHORT_CONFIG}" 53 | fi 54 | echo "ARTIFACT_UNIQUE_ID: $ARTIFACT_UNIQUE_ID" 55 | 56 | # Set a descriptive ID for the archive(s), specialized for this particular job run 57 | ARCHIVE_UNIQUE_ID="${CI_RUN_ID}_${CONFIG}" 58 | 59 | # Make the build artifact zip 60 | if [[ ! -z "$BLD_ARTIFACT_PREFIX" ]]; then 61 | export BLD_ARTIFACT_NAME="${BLD_ARTIFACT_PREFIX}_${ARTIFACT_UNIQUE_ID}" 62 | export BLD_ARTIFACT_PATH="${ARTIFACT_STAGING_DIR}/${FEEDSTOCK_NAME}_${BLD_ARTIFACT_PREFIX}_${ARCHIVE_UNIQUE_ID}.zip" 63 | 64 | ( startgroup "Archive conda build directory" ) 2> /dev/null 65 | 66 | # Try 7z and fall back to zip if it fails (for cross-platform use) 67 | if ! 7z a "$BLD_ARTIFACT_PATH" "$CONDA_BLD_DIR" '-xr!.git/' '-xr!_*_env*/' '-xr!*_cache/' -bb; then 68 | pushd "$CONDA_BLD_DIR" 69 | zip -r -y -T "$BLD_ARTIFACT_PATH" . -x '*.git/*' '*_*_env*/*' '*_cache/*' 70 | popd 71 | fi 72 | 73 | ( endgroup "Archive conda build directory" ) 2> /dev/null 74 | 75 | echo "BLD_ARTIFACT_NAME: $BLD_ARTIFACT_NAME" 76 | echo "BLD_ARTIFACT_PATH: $BLD_ARTIFACT_PATH" 77 | 78 | if [[ "$CI" == "azure" ]]; then 79 | echo "##vso[task.setVariable variable=BLD_ARTIFACT_NAME]$BLD_ARTIFACT_NAME" 80 | echo "##vso[task.setVariable variable=BLD_ARTIFACT_PATH]$BLD_ARTIFACT_PATH" 81 | elif [[ "$CI" == "github_actions" ]]; then 82 | echo "BLD_ARTIFACT_NAME=$BLD_ARTIFACT_NAME" >> $GITHUB_OUTPUT 83 | echo "BLD_ARTIFACT_PATH=$BLD_ARTIFACT_PATH" >> $GITHUB_OUTPUT 84 | fi 85 | fi 86 | 87 | # Make the environments artifact zip 88 | if [[ ! -z "$ENV_ARTIFACT_PREFIX" ]]; then 89 | export ENV_ARTIFACT_NAME="${ENV_ARTIFACT_PREFIX}_${ARTIFACT_UNIQUE_ID}" 90 | export ENV_ARTIFACT_PATH="${ARTIFACT_STAGING_DIR}/${FEEDSTOCK_NAME}_${ENV_ARTIFACT_PREFIX}_${ARCHIVE_UNIQUE_ID}.zip" 91 | 92 | ( startgroup "Archive conda build environments" ) 2> /dev/null 93 | 94 | # Try 7z and fall back to zip if it fails (for cross-platform use) 95 | if ! 7z a "$ENV_ARTIFACT_PATH" -r "$CONDA_BLD_DIR"/'_*_env*/' -bb; then 96 | pushd "$CONDA_BLD_DIR" 97 | zip -r -y -T "$ENV_ARTIFACT_PATH" . -i '*_*_env*/*' 98 | popd 99 | fi 100 | 101 | ( endgroup "Archive conda build environments" ) 2> /dev/null 102 | 103 | echo "ENV_ARTIFACT_NAME: $ENV_ARTIFACT_NAME" 104 | echo "ENV_ARTIFACT_PATH: $ENV_ARTIFACT_PATH" 105 | 106 | if [[ "$CI" == "azure" ]]; then 107 | echo "##vso[task.setVariable variable=ENV_ARTIFACT_NAME]$ENV_ARTIFACT_NAME" 108 | echo "##vso[task.setVariable variable=ENV_ARTIFACT_PATH]$ENV_ARTIFACT_PATH" 109 | elif [[ "$CI" == "github_actions" ]]; then 110 | echo "ENV_ARTIFACT_NAME=$ENV_ARTIFACT_NAME" >> $GITHUB_OUTPUT 111 | echo "ENV_ARTIFACT_PATH=$ENV_ARTIFACT_PATH" >> $GITHUB_OUTPUT 112 | fi 113 | fi 114 | -------------------------------------------------------------------------------- /.scripts/run_win_build.bat: -------------------------------------------------------------------------------- 1 | :: PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here 2 | :: will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent 3 | :: changes to this script, consider a proposal to conda-smithy so that other feedstocks can also 4 | :: benefit from the improvement. 5 | 6 | :: INPUTS (required environment variables) 7 | :: CONFIG: name of the .ci_support/*.yaml file for this job 8 | :: CI: azure, github_actions, or unset 9 | :: MINIFORGE_HOME: where to install the base conda environment 10 | :: UPLOAD_PACKAGES: true or false 11 | :: UPLOAD_ON_BRANCH: true or false 12 | 13 | setlocal enableextensions enabledelayedexpansion 14 | 15 | FOR %%A IN ("%~dp0.") DO SET "REPO_ROOT=%%~dpA" 16 | if "%MINIFORGE_HOME%"=="" set "MINIFORGE_HOME=%USERPROFILE%\Miniforge3" 17 | :: Remove trailing backslash, if present 18 | if "%MINIFORGE_HOME:~-1%"=="\" set "MINIFORGE_HOME=%MINIFORGE_HOME:~0,-1%" 19 | call :start_group "Provisioning base env with micromamba" 20 | set "MAMBA_ROOT_PREFIX=%MINIFORGE_HOME%-micromamba-%RANDOM%" 21 | set "MICROMAMBA_VERSION=1.5.10-0" 22 | set "MICROMAMBA_URL=https://github.com/mamba-org/micromamba-releases/releases/download/%MICROMAMBA_VERSION%/micromamba-win-64" 23 | set "MICROMAMBA_TMPDIR=%TMP%\micromamba-%RANDOM%" 24 | set "MICROMAMBA_EXE=%MICROMAMBA_TMPDIR%\micromamba.exe" 25 | 26 | echo Downloading micromamba %MICROMAMBA_VERSION% 27 | if not exist "%MICROMAMBA_TMPDIR%" mkdir "%MICROMAMBA_TMPDIR%" 28 | powershell -ExecutionPolicy Bypass -Command "(New-Object Net.WebClient).DownloadFile('%MICROMAMBA_URL%', '%MICROMAMBA_EXE%')" 29 | if !errorlevel! neq 0 exit /b !errorlevel! 30 | 31 | echo Creating environment 32 | call "%MICROMAMBA_EXE%" create --yes --root-prefix "%MAMBA_ROOT_PREFIX%" --prefix "%MINIFORGE_HOME%" ^ 33 | --channel conda-forge ^ 34 | pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" 35 | if !errorlevel! neq 0 exit /b !errorlevel! 36 | echo Removing %MAMBA_ROOT_PREFIX% 37 | del /S /Q "%MAMBA_ROOT_PREFIX%" >nul 38 | del /S /Q "%MICROMAMBA_TMPDIR%" >nul 39 | call :end_group 40 | 41 | call :start_group "Configuring conda" 42 | 43 | :: Activate the base conda environment 44 | echo Activating environment 45 | call "%MINIFORGE_HOME%\Scripts\activate.bat" 46 | :: Configure the solver 47 | set "CONDA_SOLVER=libmamba" 48 | if !errorlevel! neq 0 exit /b !errorlevel! 49 | set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1" 50 | 51 | :: Set basic configuration 52 | echo Setting up configuration 53 | setup_conda_rc .\ ".\recipe" .\.ci_support\%CONFIG%.yaml 54 | if !errorlevel! neq 0 exit /b !errorlevel! 55 | echo Running build setup 56 | CALL run_conda_forge_build_setup 57 | 58 | 59 | if !errorlevel! neq 0 exit /b !errorlevel! 60 | 61 | if EXIST LICENSE.txt ( 62 | echo Copying feedstock license 63 | copy LICENSE.txt "recipe\\recipe-scripts-license.txt" 64 | ) 65 | if NOT [%HOST_PLATFORM%] == [%BUILD_PLATFORM%] ( 66 | if [%CROSSCOMPILING_EMULATOR%] == [] ( 67 | set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --no-test" 68 | ) 69 | ) 70 | 71 | if NOT [%flow_run_id%] == [] ( 72 | set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% remote_url=%remote_url% sha=%sha%" 73 | ) 74 | 75 | call :end_group 76 | 77 | :: Build the recipe 78 | echo Building recipe 79 | conda-build.exe "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTRA_CB_OPTIONS% 80 | if !errorlevel! neq 0 exit /b !errorlevel! 81 | 82 | call :start_group "Inspecting artifacts" 83 | :: inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 84 | WHERE inspect_artifacts >nul 2>nul && inspect_artifacts --recipe-dir ".\recipe" -m .ci_support\%CONFIG%.yaml || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" 85 | call :end_group 86 | 87 | :: Prepare some environment variables for the upload step 88 | if /i "%CI%" == "github_actions" ( 89 | set "FEEDSTOCK_NAME=%GITHUB_REPOSITORY:*/=%" 90 | set "GIT_BRANCH=%GITHUB_REF:refs/heads/=%" 91 | if /i "%GITHUB_EVENT_NAME%" == "pull_request" ( 92 | set "IS_PR_BUILD=True" 93 | ) else ( 94 | set "IS_PR_BUILD=False" 95 | ) 96 | set "TEMP=%RUNNER_TEMP%" 97 | ) 98 | if /i "%CI%" == "azure" ( 99 | set "FEEDSTOCK_NAME=%BUILD_REPOSITORY_NAME:*/=%" 100 | set "GIT_BRANCH=%BUILD_SOURCEBRANCHNAME%" 101 | if /i "%BUILD_REASON%" == "PullRequest" ( 102 | set "IS_PR_BUILD=True" 103 | ) else ( 104 | set "IS_PR_BUILD=False" 105 | ) 106 | set "TEMP=%UPLOAD_TEMP%" 107 | ) 108 | 109 | :: Validate 110 | call :start_group "Validating outputs" 111 | validate_recipe_outputs "%FEEDSTOCK_NAME%" 112 | if !errorlevel! neq 0 exit /b !errorlevel! 113 | call :end_group 114 | 115 | if /i "%UPLOAD_PACKAGES%" == "true" ( 116 | if /i "%IS_PR_BUILD%" == "false" ( 117 | call :start_group "Uploading packages" 118 | if not exist "%TEMP%\" md "%TEMP%" 119 | set "TMP=%TEMP%" 120 | upload_package --validate --feedstock-name="%FEEDSTOCK_NAME%" .\ ".\recipe" .ci_support\%CONFIG%.yaml 121 | if !errorlevel! neq 0 exit /b !errorlevel! 122 | call :end_group 123 | ) 124 | ) 125 | 126 | exit 127 | 128 | :: Logging subroutines 129 | 130 | :start_group 131 | if /i "%CI%" == "github_actions" ( 132 | echo ::group::%~1 133 | exit /b 134 | ) 135 | if /i "%CI%" == "azure" ( 136 | echo ##[group]%~1 137 | exit /b 138 | ) 139 | echo %~1 140 | exit /b 141 | 142 | :end_group 143 | if /i "%CI%" == "github_actions" ( 144 | echo ::endgroup:: 145 | exit /b 146 | ) 147 | if /i "%CI%" == "azure" ( 148 | echo ##[endgroup] 149 | exit /b 150 | ) 151 | exit /b 152 | -------------------------------------------------------------------------------- /.azure-pipelines/azure-pipelines-linux.yml: -------------------------------------------------------------------------------- 1 | # This file was generated automatically from conda-smithy. To update this configuration, 2 | # update the conda-forge.yml and/or the recipe/meta.yaml. 3 | # -*- mode: yaml -*- 4 | 5 | jobs: 6 | - job: linux 7 | pool: 8 | vmImage: ubuntu-latest 9 | strategy: 10 | matrix: 11 | linux_64_python3.10.____cpython: 12 | CONFIG: linux_64_python3.10.____cpython 13 | UPLOAD_PACKAGES: 'True' 14 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 15 | SHORT_CONFIG: linux_64_python3.10.____cpython 16 | linux_64_python3.11.____cpython: 17 | CONFIG: linux_64_python3.11.____cpython 18 | UPLOAD_PACKAGES: 'True' 19 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 20 | SHORT_CONFIG: linux_64_python3.11.____cpython 21 | linux_64_python3.12.____cpython: 22 | CONFIG: linux_64_python3.12.____cpython 23 | UPLOAD_PACKAGES: 'True' 24 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 25 | SHORT_CONFIG: linux_64_python3.12.____cpython 26 | linux_64_python3.13.____cp313: 27 | CONFIG: linux_64_python3.13.____cp313 28 | UPLOAD_PACKAGES: 'True' 29 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 30 | SHORT_CONFIG: linux_64_python3.13.____cp313 31 | linux_64_python3.14.____cp314: 32 | CONFIG: linux_64_python3.14.____cp314 33 | UPLOAD_PACKAGES: 'True' 34 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 35 | SHORT_CONFIG: linux_64_python3.14.____cp314 36 | linux_aarch64_python3.10.____cpython: 37 | CONFIG: linux_aarch64_python3.10.____cpython 38 | UPLOAD_PACKAGES: 'True' 39 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 40 | SHORT_CONFIG: linux_aarch64_python3.10.____cpython 41 | linux_aarch64_python3.11.____cpython: 42 | CONFIG: linux_aarch64_python3.11.____cpython 43 | UPLOAD_PACKAGES: 'True' 44 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 45 | SHORT_CONFIG: linux_aarch64_python3.11.____cpython 46 | linux_aarch64_python3.12.____cpython: 47 | CONFIG: linux_aarch64_python3.12.____cpython 48 | UPLOAD_PACKAGES: 'True' 49 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 50 | SHORT_CONFIG: linux_aarch64_python3.12.____cpython 51 | linux_aarch64_python3.13.____cp313: 52 | CONFIG: linux_aarch64_python3.13.____cp313 53 | UPLOAD_PACKAGES: 'True' 54 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 55 | SHORT_CONFIG: linux_aarch64_python3.13.____cp313 56 | linux_aarch64_python3.14.____cp314: 57 | CONFIG: linux_aarch64_python3.14.____cp314 58 | UPLOAD_PACKAGES: 'True' 59 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 60 | SHORT_CONFIG: linux_aarch64_python3.14.____cp314 61 | linux_ppc64le_python3.10.____cpython: 62 | CONFIG: linux_ppc64le_python3.10.____cpython 63 | UPLOAD_PACKAGES: 'True' 64 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 65 | SHORT_CONFIG: linux_ppc64le_python3.10.____cpython 66 | linux_ppc64le_python3.11.____cpython: 67 | CONFIG: linux_ppc64le_python3.11.____cpython 68 | UPLOAD_PACKAGES: 'True' 69 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 70 | SHORT_CONFIG: linux_ppc64le_python3.11.____cpython 71 | linux_ppc64le_python3.12.____cpython: 72 | CONFIG: linux_ppc64le_python3.12.____cpython 73 | UPLOAD_PACKAGES: 'True' 74 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 75 | SHORT_CONFIG: linux_ppc64le_python3.12.____cpython 76 | linux_ppc64le_python3.13.____cp313: 77 | CONFIG: linux_ppc64le_python3.13.____cp313 78 | UPLOAD_PACKAGES: 'True' 79 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 80 | SHORT_CONFIG: linux_ppc64le_python3.13.____cp313 81 | linux_ppc64le_python3.14.____cp314: 82 | CONFIG: linux_ppc64le_python3.14.____cp314 83 | UPLOAD_PACKAGES: 'True' 84 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 85 | SHORT_CONFIG: linux_ppc64le_python3.14.____cp314 86 | timeoutInMinutes: 360 87 | variables: {} 88 | 89 | steps: 90 | # configure qemu binfmt-misc running. This allows us to run docker containers 91 | # embedded qemu-static 92 | - script: | 93 | docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes 94 | ls /proc/sys/fs/binfmt_misc/ 95 | condition: not(startsWith(variables['CONFIG'], 'linux_64')) 96 | displayName: Configure binfmt_misc 97 | 98 | - script: | 99 | export CI=azure 100 | export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) 101 | export remote_url=$(Build.Repository.Uri) 102 | export sha=$(Build.SourceVersion) 103 | export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME 104 | export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) 105 | if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then 106 | export IS_PR_BUILD="True" 107 | else 108 | export IS_PR_BUILD="False" 109 | fi 110 | .scripts/run_docker_build.sh 111 | displayName: Run docker build 112 | env: 113 | BINSTAR_TOKEN: $(BINSTAR_TOKEN) 114 | FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) 115 | STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) 116 | - script: | 117 | export CI=azure 118 | export CI_RUN_ID=$(build.BuildNumber).$(system.JobAttempt) 119 | export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) 120 | export CONDA_BLD_DIR=build_artifacts 121 | export ARTIFACT_STAGING_DIR="$(Build.ArtifactStagingDirectory)" 122 | # Archive everything in CONDA_BLD_DIR except environments 123 | export BLD_ARTIFACT_PREFIX=conda_artifacts 124 | if [[ "$AGENT_JOBSTATUS" == "Failed" ]]; then 125 | # Archive the CONDA_BLD_DIR environments only when the job fails 126 | export ENV_ARTIFACT_PREFIX=conda_envs 127 | fi 128 | ./.scripts/create_conda_build_artifacts.sh 129 | displayName: Prepare conda build artifacts 130 | condition: succeededOrFailed() 131 | 132 | - task: PublishPipelineArtifact@1 133 | displayName: Store conda build artifacts 134 | condition: not(eq(variables.BLD_ARTIFACT_PATH, '')) 135 | inputs: 136 | targetPath: $(BLD_ARTIFACT_PATH) 137 | artifactName: $(BLD_ARTIFACT_NAME) 138 | 139 | - task: PublishPipelineArtifact@1 140 | displayName: Store conda build environment artifacts 141 | condition: not(eq(variables.ENV_ARTIFACT_PATH, '')) 142 | inputs: 143 | targetPath: $(ENV_ARTIFACT_PATH) 144 | artifactName: $(ENV_ARTIFACT_NAME) 145 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | About pinocchio-feedstock 2 | ========================= 3 | 4 | Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/pinocchio-feedstock/blob/main/LICENSE.txt) 5 | 6 | Home: http://github.com/stack-of-tasks/pinocchio 7 | 8 | Package license: BSD-2-Clause 9 | 10 | Summary: A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives 11 | 12 | Development: https://github.com/stack-of-tasks/pinocchio 13 | 14 | Current build status 15 | ==================== 16 | 17 | 18 | 19 | 20 | 21 | 22 | 246 | 247 |
Azure 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 38 | 39 | 40 | 45 | 46 | 47 | 52 | 53 | 54 | 59 | 60 | 61 | 66 | 67 | 68 | 73 | 74 | 75 | 80 | 81 | 82 | 87 | 88 | 89 | 94 | 95 | 96 | 101 | 102 | 103 | 108 | 109 | 110 | 115 | 116 | 117 | 122 | 123 | 124 | 129 | 130 | 131 | 136 | 137 | 138 | 143 | 144 | 145 | 150 | 151 | 152 | 157 | 158 | 159 | 164 | 165 | 166 | 171 | 172 | 173 | 178 | 179 | 180 | 185 | 186 | 187 | 192 | 193 | 194 | 199 | 200 | 201 | 206 | 207 | 208 | 213 | 214 | 215 | 220 | 221 | 222 | 227 | 228 | 229 | 234 | 235 | 236 | 241 | 242 | 243 |
VariantStatus
linux_64_python3.10.____cpython 34 | 35 | variant 36 | 37 |
linux_64_python3.11.____cpython 41 | 42 | variant 43 | 44 |
linux_64_python3.12.____cpython 48 | 49 | variant 50 | 51 |
linux_64_python3.13.____cp313 55 | 56 | variant 57 | 58 |
linux_64_python3.14.____cp314 62 | 63 | variant 64 | 65 |
linux_aarch64_python3.10.____cpython 69 | 70 | variant 71 | 72 |
linux_aarch64_python3.11.____cpython 76 | 77 | variant 78 | 79 |
linux_aarch64_python3.12.____cpython 83 | 84 | variant 85 | 86 |
linux_aarch64_python3.13.____cp313 90 | 91 | variant 92 | 93 |
linux_aarch64_python3.14.____cp314 97 | 98 | variant 99 | 100 |
linux_ppc64le_python3.10.____cpython 104 | 105 | variant 106 | 107 |
linux_ppc64le_python3.11.____cpython 111 | 112 | variant 113 | 114 |
linux_ppc64le_python3.12.____cpython 118 | 119 | variant 120 | 121 |
linux_ppc64le_python3.13.____cp313 125 | 126 | variant 127 | 128 |
linux_ppc64le_python3.14.____cp314 132 | 133 | variant 134 | 135 |
osx_64_python3.10.____cpython 139 | 140 | variant 141 | 142 |
osx_64_python3.11.____cpython 146 | 147 | variant 148 | 149 |
osx_64_python3.12.____cpython 153 | 154 | variant 155 | 156 |
osx_64_python3.13.____cp313 160 | 161 | variant 162 | 163 |
osx_64_python3.14.____cp314 167 | 168 | variant 169 | 170 |
osx_arm64_python3.10.____cpython 174 | 175 | variant 176 | 177 |
osx_arm64_python3.11.____cpython 181 | 182 | variant 183 | 184 |
osx_arm64_python3.12.____cpython 188 | 189 | variant 190 | 191 |
osx_arm64_python3.13.____cp313 195 | 196 | variant 197 | 198 |
osx_arm64_python3.14.____cp314 202 | 203 | variant 204 | 205 |
win_64_python3.10.____cpython 209 | 210 | variant 211 | 212 |
win_64_python3.11.____cpython 216 | 217 | variant 218 | 219 |
win_64_python3.12.____cpython 223 | 224 | variant 225 | 226 |
win_64_python3.13.____cp313 230 | 231 | variant 232 | 233 |
win_64_python3.14.____cp314 237 | 238 | variant 239 | 240 |
244 |
245 |
248 | 249 | Current release info 250 | ==================== 251 | 252 | | Name | Downloads | Version | Platforms | 253 | | --- | --- | --- | --- | 254 | | [![Conda Recipe](https://img.shields.io/badge/recipe-libpinocchio-green.svg)](https://anaconda.org/conda-forge/libpinocchio) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libpinocchio.svg)](https://anaconda.org/conda-forge/libpinocchio) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libpinocchio.svg)](https://anaconda.org/conda-forge/libpinocchio) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libpinocchio.svg)](https://anaconda.org/conda-forge/libpinocchio) | 255 | | [![Conda Recipe](https://img.shields.io/badge/recipe-pinocchio-green.svg)](https://anaconda.org/conda-forge/pinocchio) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/pinocchio.svg)](https://anaconda.org/conda-forge/pinocchio) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/pinocchio.svg)](https://anaconda.org/conda-forge/pinocchio) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/pinocchio.svg)](https://anaconda.org/conda-forge/pinocchio) | 256 | | [![Conda Recipe](https://img.shields.io/badge/recipe-pinocchio--python-green.svg)](https://anaconda.org/conda-forge/pinocchio-python) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/pinocchio-python.svg)](https://anaconda.org/conda-forge/pinocchio-python) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/pinocchio-python.svg)](https://anaconda.org/conda-forge/pinocchio-python) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/pinocchio-python.svg)](https://anaconda.org/conda-forge/pinocchio-python) | 257 | 258 | Installing pinocchio 259 | ==================== 260 | 261 | Installing `pinocchio` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: 262 | 263 | ``` 264 | conda config --add channels conda-forge 265 | conda config --set channel_priority strict 266 | ``` 267 | 268 | Once the `conda-forge` channel has been enabled, `libpinocchio, pinocchio, pinocchio-python` can be installed with `conda`: 269 | 270 | ``` 271 | conda install libpinocchio pinocchio pinocchio-python 272 | ``` 273 | 274 | or with `mamba`: 275 | 276 | ``` 277 | mamba install libpinocchio pinocchio pinocchio-python 278 | ``` 279 | 280 | It is possible to list all of the versions of `libpinocchio` available on your platform with `conda`: 281 | 282 | ``` 283 | conda search libpinocchio --channel conda-forge 284 | ``` 285 | 286 | or with `mamba`: 287 | 288 | ``` 289 | mamba search libpinocchio --channel conda-forge 290 | ``` 291 | 292 | Alternatively, `mamba repoquery` may provide more information: 293 | 294 | ``` 295 | # Search all versions available on your platform: 296 | mamba repoquery search libpinocchio --channel conda-forge 297 | 298 | # List packages depending on `libpinocchio`: 299 | mamba repoquery whoneeds libpinocchio --channel conda-forge 300 | 301 | # List dependencies of `libpinocchio`: 302 | mamba repoquery depends libpinocchio --channel conda-forge 303 | ``` 304 | 305 | 306 | About conda-forge 307 | ================= 308 | 309 | [![Powered by 310 | NumFOCUS](https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A)](https://numfocus.org) 311 | 312 | conda-forge is a community-led conda channel of installable packages. 313 | In order to provide high-quality builds, the process has been automated into the 314 | conda-forge GitHub organization. The conda-forge organization contains one repository 315 | for each of the installable packages. Such a repository is known as a *feedstock*. 316 | 317 | A feedstock is made up of a conda recipe (the instructions on what and how to build 318 | the package) and the necessary configurations for automatic building using freely 319 | available continuous integration services. Thanks to the awesome service provided by 320 | [Azure](https://azure.microsoft.com/en-us/services/devops/), [GitHub](https://github.com/), 321 | [CircleCI](https://circleci.com/), [AppVeyor](https://www.appveyor.com/), 322 | [Drone](https://cloud.drone.io/welcome), and [TravisCI](https://travis-ci.com/) 323 | it is possible to build and upload installable packages to the 324 | [conda-forge](https://anaconda.org/conda-forge) [anaconda.org](https://anaconda.org/) 325 | channel for Linux, Windows and OSX respectively. 326 | 327 | To manage the continuous integration and simplify feedstock maintenance 328 | [conda-smithy](https://github.com/conda-forge/conda-smithy) has been developed. 329 | Using the ``conda-forge.yml`` within this repository, it is possible to re-render all of 330 | this feedstock's supporting files (e.g. the CI configuration files) with ``conda smithy rerender``. 331 | 332 | For more information please check the [conda-forge documentation](https://conda-forge.org/docs/). 333 | 334 | Terminology 335 | =========== 336 | 337 | **feedstock** - the conda recipe (raw material), supporting scripts and CI configuration. 338 | 339 | **conda-smithy** - the tool which helps orchestrate the feedstock. 340 | Its primary use is in the construction of the CI ``.yml`` files 341 | and simplify the management of *many* feedstocks. 342 | 343 | **conda-forge** - the place where the feedstock and smithy live and work to 344 | produce the finished article (built conda distributions) 345 | 346 | 347 | Updating pinocchio-feedstock 348 | ============================ 349 | 350 | If you would like to improve the pinocchio recipe or build a new 351 | package version, please fork this repository and submit a PR. Upon submission, 352 | your changes will be run on the appropriate platforms to give the reviewer an 353 | opportunity to confirm that the changes result in a successful build. Once 354 | merged, the recipe will be re-built and uploaded automatically to the 355 | `conda-forge` channel, whereupon the built conda packages will be available for 356 | everybody to install and use from the `conda-forge` channel. 357 | Note that all branches in the conda-forge/pinocchio-feedstock are 358 | immediately built and any created packages are uploaded, so PRs should be based 359 | on branches in forks and branches in the main repository should only be used to 360 | build distinct package versions. 361 | 362 | In order to produce a uniquely identifiable distribution: 363 | * If the version of a package **is not** being increased, please add or increase 364 | the [``build/number``](https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#build-number-and-string). 365 | * If the version of a package **is** being increased, please remember to return 366 | the [``build/number``](https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#build-number-and-string) 367 | back to 0. 368 | 369 | Feedstock Maintainers 370 | ===================== 371 | 372 | * [@fabinsch](https://github.com/fabinsch/) 373 | * [@jcarpent](https://github.com/jcarpent/) 374 | * [@jorisv](https://github.com/jorisv/) 375 | * [@nim65s](https://github.com/nim65s/) 376 | * [@wolfv](https://github.com/wolfv/) 377 | * [@ymontmarin](https://github.com/ymontmarin/) 378 | 379 | --------------------------------------------------------------------------------