diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c177172c4..35038a186 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -21,7 +21,6 @@ jobs: - name: Install vinca run: | pip install git+https://github.com/RoboStack/vinca.git - - name: Generate recipes for linux-64 run: | git clean -fdx @@ -148,6 +147,34 @@ jobs: env: INPUT_GITHUB_TOKEN: ${{ secrets.GHA_PAT }} + # Build emscripten-wasm32 + - name: Reset repo + run: | + git reset --hard origin/main + - name: Generate recipes for emscripten-wasm32 + run: | + git clean -fdx + cp vinca_emscripten32.yaml vinca.yaml + vinca --multiple --platform emscripten-wasm32 + sh -c 'find additional_recipes/* -maxdepth 0 -type d -exec ln -s ../{} recipes/ \;' + + - name: Generate azure pipelines for emscripten-wasm32 + run: | + vinca-gha --platform emscripten-wasm32 --trigger-branch buildbranch_emscripten -d ./recipes --additional-recipes --batch_size 1 + - name: Commit files for emscripten-wasm32 + run: | + if [[ -f "emscripten_wasm32.yml" ]]; then + mv emscripten_wasm32.yml .github/workflows/ + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git add . -f + git commit -m "Add build files `date '+%Y-%m-%d-%H%M'`" -a + remote_repo="https://${GITHUB_ACTOR}:${INPUT_GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" + git push "${remote_repo}" HEAD:buildbranch_emscripten --follow-tags --force + fi + env: + INPUT_GITHUB_TOKEN: ${{ secrets.GHA_PAT }} + on: push: branches: diff --git a/.github/workflows/testpr.yml b/.github/workflows/testpr.yml index f7bf39c14..8aa19ace6 100644 --- a/.github/workflows/testpr.yml +++ b/.github/workflows/testpr.yml @@ -22,6 +22,8 @@ jobs: platform: osx-arm64 - os: windows-2019 platform: win-64 + - os: ubuntu-latest + platform: emscripten-wasm32 runs-on: ${{ matrix.os }} @@ -64,6 +66,8 @@ jobs: set +e git diff --exit-code --name-only origin/main -- vinca_linux_64.yaml > /dev/null echo "::set-output name=LINUX_YAML_CHANGED::${?}" + git diff --exit-code --name-only origin/main -- vinca_emscripten32.yaml > /dev/null + echo "::set-output name=EMSCRIPTEN32_YAML_CHANGED::${?}" git diff --exit-code --name-only origin/main -- vinca_linux_aarch64.yaml > /dev/null echo "::set-output name=LINUX_AARCH_YAML_CHANGED::${?}" git diff --exit-code --name-only origin/main -- vinca_osx.yaml > /dev/null @@ -80,6 +84,14 @@ jobs: mkdir -p recipes $HOME/.pixi/bin/pixi run -e beta -v vinca --platform linux-64 -m ls -la recipes + - name: Generate recipes for emscripten-wasm32 + shell: bash -l {0} + if: steps.filecheck.outputs.EMSCRIPTEN32_YAML_CHANGED == 1 && matrix.platform == 'emscripten-wasm32' + run: | + cp vinca_emscripten32.yaml vinca.yaml + mkdir -p recipes + $HOME/.pixi/bin/pixi run -e beta -v vinca --platform emscripten-wasm32 -m -n + ls -la recipes - name: Generate recipes for linux-aarch64 shell: bash -l {0} if: steps.filecheck.outputs.LINUX_AARCH_YAML_CHANGED == 1 && matrix.platform == 'linux-aarch64' @@ -129,6 +141,12 @@ jobs: run: | env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe-dir additional_recipes --target-platform linux-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe-dir recipes --target-platform linux-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing + - name: Build recipes for emscripten-wasm32 + shell: bash -l {0} + if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && steps.filecheck.outputs.EMSCRIPTEN32_YAML_CHANGED == 1 && matrix.platform == 'emscripten-wasm32' + run: | + env -i $HOME/.pixi/bin/pixi run -e beta sh -c 'find additional_recipes/* -maxdepth 0 -type d -exec ln -s ../{} recipes/ \;' + env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe-dir ./recipes --target-platform emscripten-wasm32 -m ./conda_build_config.yaml -c https://repo.mamba.pm/emscripten-forge/ -c robostack-staging -c conda-forge --skip-existing --test skip - name: Build recipes for linux-aarch64 shell: bash -l {0} if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && steps.filecheck.outputs.LINUX_AARCH_YAML_CHANGED == 1 && matrix.platform == 'linux-aarch64' diff --git a/.scripts/build_linux.sh b/.scripts/build_linux.sh deleted file mode 100755 index 532cafa1a..000000000 --- a/.scripts/build_linux.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env bash - -# PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here -# will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent -# changes to this script, consider a proposal to conda-smithy so that other feedstocks can also -# benefit from the improvement. - -set -xeuo pipefail -export PYTHONUNBUFFERED=1 - -export FEEDSTOCK_ROOT=`pwd` -export "CONDA_BLD_PATH=$HOME/conda-bld/" - -curl -fsSL https://pixi.sh/install.sh | bash -export PATH="$HOME/.pixi/bin:$PATH" - -for recipe in ${CURRENT_RECIPES[@]}; do - pixi run -v rattler-build build \ - --recipe ${FEEDSTOCK_ROOT}/recipes/${recipe} \ - -m ${FEEDSTOCK_ROOT}/conda_build_config.yaml \ - -c robostack-staging -c conda-forge \ - --output-dir $CONDA_BLD_PATH - - # -m ${FEEDSTOCK_ROOT}/.ci_support/conda_forge_pinnings.yaml \ - -done - -pixi run upload ${CONDA_BLD_PATH}/linux-*/*.conda --force diff --git a/.scripts/build_osx.sh b/.scripts/build_osx.sh deleted file mode 100755 index d6286fbdb..000000000 --- a/.scripts/build_osx.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -set -x -set -e - -export FEEDSTOCK_ROOT=`pwd` -export "CONDA_BLD_PATH=$HOME/conda-bld/" - -curl -fsSL https://pixi.sh/install.sh | bash -export PATH="$HOME/.pixi/bin:$PATH" - -# Remove homebrew from $PATH -export PATH=$(echo $PATH | tr ":" "\n" | grep -v 'homebrew' | xargs | tr ' ' ':') - -for recipe in ${CURRENT_RECIPES[@]}; do - pixi run -v rattler-build build \ - --recipe ${FEEDSTOCK_ROOT}/recipes/${recipe} \ - -m ${FEEDSTOCK_ROOT}/conda_build_config.yaml \ - -c robostack-staging -c conda-forge \ - --output-dir $CONDA_BLD_PATH - - # -m ${FEEDSTOCK_ROOT}/.ci_support/conda_forge_pinnings.yaml \ -done - -pixi run upload ${CONDA_BLD_PATH}/osx-*/*.conda --force diff --git a/.scripts/build_osx_arm64.sh b/.scripts/build_osx_arm64.sh deleted file mode 100755 index d6286fbdb..000000000 --- a/.scripts/build_osx_arm64.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -set -x -set -e - -export FEEDSTOCK_ROOT=`pwd` -export "CONDA_BLD_PATH=$HOME/conda-bld/" - -curl -fsSL https://pixi.sh/install.sh | bash -export PATH="$HOME/.pixi/bin:$PATH" - -# Remove homebrew from $PATH -export PATH=$(echo $PATH | tr ":" "\n" | grep -v 'homebrew' | xargs | tr ' ' ':') - -for recipe in ${CURRENT_RECIPES[@]}; do - pixi run -v rattler-build build \ - --recipe ${FEEDSTOCK_ROOT}/recipes/${recipe} \ - -m ${FEEDSTOCK_ROOT}/conda_build_config.yaml \ - -c robostack-staging -c conda-forge \ - --output-dir $CONDA_BLD_PATH - - # -m ${FEEDSTOCK_ROOT}/.ci_support/conda_forge_pinnings.yaml \ -done - -pixi run upload ${CONDA_BLD_PATH}/osx-*/*.conda --force diff --git a/.scripts/build_unix.sh b/.scripts/build_unix.sh new file mode 100755 index 000000000..294f4a448 --- /dev/null +++ b/.scripts/build_unix.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash + +# Default values +target="" + +# Parse arguments +while [[ "$#" -gt 0 ]]; do + case $1 in + --target) target="$2"; shift ;; # Capture value for --target + *) echo "Unknown parameter passed: $1"; exit 1 ;; # Handle invalid options + esac + shift +done + +set -xeuo pipefail +export PYTHONUNBUFFERED=1 + +export FEEDSTOCK_ROOT=`pwd` +export "CONDA_BLD_PATH=$HOME/conda-bld/" + +curl -fsSL https://pixi.sh/install.sh | bash +export PATH="$HOME/.pixi/bin:$PATH" + +if [[ "$target" == *"osx"* ]]; then + echo "osx" + export PATH=$(echo $PATH | tr ":" "\n" | grep -v 'homebrew' | xargs | tr ' ' ':') +fi + +if [[ "$target" == "emscripten-wasm32" ]]; then + extra_channel="-c https://repo.mamba.pm/emscripten-forge" + cross_compile="--target-platform emscripten-wasm32 --test skip" + +else + extra_channel="" + cross_compile="" +fi + +for recipe in ${CURRENT_RECIPES[@]}; do + pixi run -v rattler-build build \ + --recipe ${FEEDSTOCK_ROOT}/recipes/${recipe} \ + -m ${FEEDSTOCK_ROOT}/conda_build_config.yaml \ + -c robostack-staging -c conda-forge \ + ${extra_channel} \ + --output-dir $CONDA_BLD_PATH \ + ${cross_compile} + # -m ${FEEDSTOCK_ROOT}/.ci_support/conda_forge_pinnings.yaml \ + +done + +pixi run upload ${CONDA_BLD_PATH}/${target}*/*.conda --force diff --git a/additional_recipes/ros-humble-dynmsg/LICENSE b/additional_recipes/ros-humble-dynmsg/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/additional_recipes/ros-humble-dynmsg/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/additional_recipes/ros-humble-dynmsg/build.sh b/additional_recipes/ros-humble-dynmsg/build.sh new file mode 100644 index 000000000..5e90e43fc --- /dev/null +++ b/additional_recipes/ros-humble-dynmsg/build.sh @@ -0,0 +1,138 @@ +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~${PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using PYTHON_INSTALL_DIR: $PYTHON_INSTALL_DIR" + +if [[ $target_platform =~ emscripten.* ]]; then + export CONDA_BUILD_CROSS_COMPILATION="1" + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python$PY_VER + echo "set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE)"> $SRC_DIR/__vinca_shared_lib_patch.cmake + echo "set(CMAKE_STRIP FALSE) # used by default in pybind11 on .so modules">> $SRC_DIR/__vinca_shared_lib_patch.cmake + echo "set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH) # fixes an error where numpy header files are not found correctly">> $SRC_DIR/__vinca_shared_lib_patch.cmake + + # if [ "${PKG_NAME}" == "ros-humble-examples-rclcpp-minimal-publisher" ] || [ "${PKG_NAME}" == "ros-humble-examples-rclcpp-minimal-subscriber" ] || [ "${PKG_NAME}" == "ros-humble-rclcpp-components" ]; then + # echo "set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS \"-s ASSERTIONS=1 -s SIDE_MODULE=1 -sWASM_BIGINT -s USE_PTHREADS=0 -s DEMANGLE_SUPPORT=1 -s ALLOW_MEMORY_GROWTH=1 \")">> $SRC_DIR/__vinca_shared_lib_patch.cmake + # echo "set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS \"-s ASSERTIONS=1 -s SIDE_MODULE=1 -sWASM_BIGINT -s USE_PTHREADS=0 -s DEMANGLE_SUPPORT=1 -s ALLOW_MEMORY_GROWTH=1 -sASYNCIFY -O3 -s ASYNCIFY_STACK_SIZE=24576 \")">> $SRC_DIR/__vinca_shared_lib_patch.cmake + # echo "set(CMAKE_EXE_LINKER_FLAGS \"-sMAIN_MODULE=1 -sASSERTIONS=1 -fexceptions -lembind -sWASM_BIGINT -s USE_PTHREADS=0 -s DEMANGLE_SUPPORT=1 -sALLOW_MEMORY_GROWTH=1 -sASYNCIFY -O3 -s ASYNCIFY_STACK_SIZE=24576 -L$SRC_DIR/build -L$PREFIX/lib\") # remove SIDE_MODULE from exe linker flags">> $SRC_DIR/__vinca_shared_lib_patch.cmake + # else + echo "set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS \"-s ASSERTIONS=1 -s SIDE_MODULE=1 -sWASM_BIGINT -s USE_PTHREADS=0 -s ALLOW_MEMORY_GROWTH=1 -s DEMANGLE_SUPPORT=1 \")">> $SRC_DIR/__vinca_shared_lib_patch.cmake + echo "set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS \"-s ASSERTIONS=1 -s SIDE_MODULE=1 -sWASM_BIGINT -s USE_PTHREADS=0 -s ALLOW_MEMORY_GROWTH=1 -s DEMANGLE_SUPPORT=1 \")">> $SRC_DIR/__vinca_shared_lib_patch.cmake + echo "set(CMAKE_EXE_LINKER_FLAGS \"-sMAIN_MODULE=1 -sASSERTIONS=1 -fexceptions -lembind -sWASM_BIGINT -s USE_PTHREADS=0 -sALLOW_MEMORY_GROWTH=1 -s DEMANGLE_SUPPORT=1 -L$SRC_DIR/build -L$PREFIX/lib\") # remove SIDE_MODULE from exe linker flags">> $SRC_DIR/__vinca_shared_lib_patch.cmake + # fi + + # export USE_WASM=ON + # -DTHREADS_PREFER_PTHREAD_FLAG=TRUE\ + export BUILD_TYPE="Debug" + export EXTRA_CMAKE_ARGS=" \ + -DPYTHON_SOABI="cpython-${ROS_PYTHON_VERSION//./}-wasm32-emscripten" \ + -DRMW_IMPLEMENTATION=rmw_wasm_cpp \ + -DCMAKE_FIND_ROOT_PATH=$PREFIX \ + -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \ + -DCMAKE_PROJECT_INCLUDE=$SRC_DIR/__vinca_shared_lib_patch.cmake \ + " + + unset -f cmake + export CMAKE_GEN="emcmake cmake" + export CMAKE_BLD="cmake" + if [ "${PKG_NAME}" == "ros-humble-rosidl-typesupport-c" ] || [ "${PKG_NAME}" == "ros-humble-rosidl-typesupport-cpp" ] || [ "${PKG_NAME}" == "ros-humble-typesupport-introspection-c" ] || [ "${PKG_NAME}" == "ros-humble-typesupport-introspection-cpp" ]; then + export SHARED_TYPE="ON" + else + export SHARED_TYPE="ON" + fi +else + export BUILD_TYPE="Release" + export CMAKE_GEN="cmake" + export CMAKE_BLD="cmake" + export SHARED_TYPE="ON" +fi; + +if [ "${PKG_NAME}" == "ros-humble-rmw-wasm-cpp" ]; then + WORK_DIR=$SRC_DIR/$PKG_NAME/src/work/rmw_wasm_cpp +elif [ "${PKG_NAME}" == "ros-humble-wasm-cpp" ]; then + WORK_DIR=$SRC_DIR/$PKG_NAME/src/work/wasm_cpp +elif [ "${PKG_NAME}" == "ros-humble-dynmsg" ]; then + WORK_DIR=$SRC_DIR/$PKG_NAME/src/work/dynmsg +else + WORK_DIR=$SRC_DIR/$PKG_NAME/src/work +fi; + +export STATIC_ROSIDL_TYPESUPPORT_C=rosidl_typesupport_introspection_c +export STATIC_ROSIDL_TYPESUPPORT_CPP=rosidl_typesupport_introspection_cpp + +$CMAKE_GEN \ + -G "Ninja" \ + -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=$SHARED_TYPE \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $EXTRA_CMAKE_ARGS \ + $WORK_DIR + +$CMAKE_BLD --build . --config $BUILD_TYPE --target install diff --git a/additional_recipes/ros-humble-dynmsg/fix-build.patch b/additional_recipes/ros-humble-dynmsg/fix-build.patch new file mode 100644 index 000000000..01120ac10 --- /dev/null +++ b/additional_recipes/ros-humble-dynmsg/fix-build.patch @@ -0,0 +1,198 @@ +diff --git a/dynmsg/CMakeLists.txt b/dynmsg/CMakeLists.txt +index aa2075d..05458c8 100644 +--- a/dynmsg/CMakeLists.txt ++++ b/dynmsg/CMakeLists.txt +@@ -25,6 +25,7 @@ find_package(rosidl_runtime_cpp REQUIRED) + find_package(rosidl_typesupport_introspection_c REQUIRED) + find_package(rosidl_typesupport_introspection_cpp REQUIRED) + find_package(yaml_cpp_vendor REQUIRED) ++find_package(yaml-cpp REQUIRED) + + # See config.hpp.in + option(DYNMSG_VALUE_ONLY "Write message member value directly instead default+value" ON) +@@ -32,7 +33,7 @@ option(DYNMSG_YAML_CPP_BAD_INT8_HANDLING "Work around buggy [u]int8_t handling b + option(DYNMSG_PARSER_DEBUG "Enable debugging-related logs for YAML->msg conversion" OFF) + configure_file(include/${PROJECT_NAME}/config.hpp.in include/${PROJECT_NAME}/config.hpp) + +-add_library(dynmsg STATIC ++add_library(dynmsg SHARED + src/msg_parser_c.cpp + src/msg_parser_cpp.cpp + src/message_reading_c.cpp +@@ -42,14 +43,16 @@ add_library(dynmsg STATIC + src/string_utils.cpp + src/yaml_utils.cpp + ) +-ament_target_dependencies(dynmsg +- rcutils +- rosidl_runtime_c +- rosidl_runtime_cpp +- rosidl_typesupport_introspection_c +- rosidl_typesupport_introspection_cpp +- yaml_cpp_vendor ++# use target_link_libraries instead ++target_link_libraries(dynmsg ++ rcutils::rcutils ++ rosidl_runtime_c::rosidl_runtime_c ++ rosidl_runtime_cpp::rosidl_runtime_cpp ++ rosidl_typesupport_introspection_c::rosidl_typesupport_introspection_c ++ rosidl_typesupport_introspection_cpp::rosidl_typesupport_introspection_cpp ++ yaml-cpp + ) ++ + target_include_directories(dynmsg PUBLIC + "$" + "$" +diff --git a/dynmsg/src/message_reading_c.cpp b/dynmsg/src/message_reading_c.cpp +index a6bd289..bc14b24 100644 +--- a/dynmsg/src/message_reading_c.cpp ++++ b/dynmsg/src/message_reading_c.cpp +@@ -96,13 +96,13 @@ member_type_to_string(const MemberInfo & member_info) + result << "<=" << member_info.string_upper_bound_; + } + break; +- case rosidl_typesupport_introspection_c__ROS_TYPE_WSTRING: ++ /*case rosidl_typesupport_introspection_c__ROS_TYPE_WSTRING: + result << "wstring"; + // WStrings may have an upper bound + if (member_info.string_upper_bound_ > 0) { + result << "<=" << member_info.string_upper_bound_; + } +- break; ++ break;*/ + case rosidl_typesupport_introspection_c__ROS_TYPE_MESSAGE: + // For nested types, the string representation must include the name space as well as the + // type name +@@ -169,8 +169,8 @@ size_of_member_type(uint8_t type_id) + return sizeof(int64_t); + case rosidl_typesupport_introspection_c__ROS_TYPE_STRING: + return sizeof(rosidl_runtime_c__String); +- case rosidl_typesupport_introspection_c__ROS_TYPE_WSTRING: +- return sizeof(rosidl_runtime_c__U16String); ++ //case rosidl_typesupport_introspection_c__ROS_TYPE_WSTRING: ++ // return sizeof(rosidl_runtime_c__U16String); + case rosidl_typesupport_introspection_c__ROS_TYPE_MESSAGE: + assert(0 && "Cannot get the size of a nested message"); + return 0; +@@ -253,14 +253,14 @@ void member_to_yaml_array_item( + array_node.push_back( + std::string(reinterpret_cast(member_data)->data)); + break; +- case rosidl_typesupport_introspection_c__ROS_TYPE_WSTRING: ++ /*case rosidl_typesupport_introspection_c__ROS_TYPE_WSTRING: + // WStrings require going through some intermediate formats + array_node.push_back( + u16string_to_string( + std::u16string( + reinterpret_cast( + reinterpret_cast(member_data)->data)))); +- break; ++ break;*/ + case rosidl_typesupport_introspection_c__ROS_TYPE_MESSAGE: + // For nested types, don't copy the data out of the buffer directly. Recursively read the + // nested type into the YAML. +@@ -346,13 +346,13 @@ void basic_value_to_yaml( + case rosidl_typesupport_introspection_c__ROS_TYPE_STRING: + member["value"] = reinterpret_cast(member_data)->data; + break; +- case rosidl_typesupport_introspection_c__ROS_TYPE_WSTRING: ++ /*case rosidl_typesupport_introspection_c__ROS_TYPE_WSTRING: + // WStrings require going through some intermediate formats + member["value"] = u16string_to_string( + std::u16string( + reinterpret_cast( + reinterpret_cast(member_data)->data))); +- break; ++ break;*/ + case rosidl_typesupport_introspection_c__ROS_TYPE_MESSAGE: + // For nested types, don't copy the data out of the buffer directly. Recursively read the + // nested type into the YAML. +@@ -484,12 +484,12 @@ dynamic_array_to_yaml( + reinterpret_cast(member_data), + array_node); + break; +- case rosidl_typesupport_introspection_c__ROS_TYPE_WSTRING: ++ /*case rosidl_typesupport_introspection_c__ROS_TYPE_WSTRING: + dynamic_array_to_yaml_impl( + member_info, + reinterpret_cast(member_data), + array_node); +- break; ++ break;*/ + case rosidl_typesupport_introspection_c__ROS_TYPE_MESSAGE: + // We do not know the specific type of the sequence because the type is not available at + // compile-time, but they all follow the same structure pattern, where a pointer to the data +diff --git a/dynmsg/src/message_reading_cpp.cpp b/dynmsg/src/message_reading_cpp.cpp +index 072819c..ed4716f 100644 +--- a/dynmsg/src/message_reading_cpp.cpp ++++ b/dynmsg/src/message_reading_cpp.cpp +@@ -94,13 +94,13 @@ member_type_to_string(const MemberInfo_Cpp & member_info) + result << "<=" << member_info.string_upper_bound_; + } + break; +- case rosidl_typesupport_introspection_cpp::ROS_TYPE_WSTRING: ++ /*case rosidl_typesupport_introspection_cpp::ROS_TYPE_WSTRING: + result << "wstring"; + // WStrings may have an upper bound + if (member_info.string_upper_bound_ > 0) { + result << "<=" << member_info.string_upper_bound_; + } +- break; ++ break;*/ + case rosidl_typesupport_introspection_cpp::ROS_TYPE_MESSAGE: + // For nested types, the string representation must include the name space as well as the + // type name +@@ -167,8 +167,8 @@ size_of_member_type(uint8_t type_id) + return sizeof(int64_t); + case rosidl_typesupport_introspection_cpp::ROS_TYPE_STRING: + return sizeof(std::string); +- case rosidl_typesupport_introspection_cpp::ROS_TYPE_WSTRING: +- return sizeof(std::u16string); ++ //case rosidl_typesupport_introspection_cpp::ROS_TYPE_WSTRING: ++ // return sizeof(std::u16string); + case rosidl_typesupport_introspection_cpp::ROS_TYPE_MESSAGE: + assert(0 && "Cannot get the size of a nested message"); + return 0; +@@ -251,11 +251,11 @@ void member_to_yaml_array_item( + case rosidl_typesupport_introspection_cpp::ROS_TYPE_STRING: + array_node.push_back(*reinterpret_cast(member_data)); + break; +- case rosidl_typesupport_introspection_cpp::ROS_TYPE_WSTRING: ++ /*case rosidl_typesupport_introspection_cpp::ROS_TYPE_WSTRING: + // WStrings require going through some intermediate formats + array_node.push_back( + u16string_to_string(*reinterpret_cast(member_data))); +- break; ++ break;*/ + case rosidl_typesupport_introspection_cpp::ROS_TYPE_MESSAGE: + // For nested types, don't copy the data out of the buffer directly. Recursively read the + // nested type into the YAML. +@@ -349,11 +349,11 @@ void basic_value_to_yaml( + ", size=" << reinterpret_cast(member_data)->size() << std::endl); + member["value"] = *reinterpret_cast(member_data); + break; +- case rosidl_typesupport_introspection_cpp::ROS_TYPE_WSTRING: ++ /*case rosidl_typesupport_introspection_cpp::ROS_TYPE_WSTRING: + // WStrings require going through some intermediate formats + member["value"] = + u16string_to_string(*reinterpret_cast(member_data)); +- break; ++ break;*/ + case rosidl_typesupport_introspection_cpp::ROS_TYPE_MESSAGE: + // For nested types, don't copy the data out of the buffer directly. Recursively read the + // nested type into the YAML. +@@ -509,12 +509,12 @@ dynamic_array_to_yaml( + reinterpret_cast *>(member_data), + array_node); + break; +- case rosidl_typesupport_introspection_cpp::ROS_TYPE_WSTRING: ++ /*case rosidl_typesupport_introspection_cpp::ROS_TYPE_WSTRING: + dynamic_array_to_yaml_impl( + member_info, + reinterpret_cast *>(member_data), + array_node); +- break; ++ break;*/ + case rosidl_typesupport_introspection_cpp::ROS_TYPE_MESSAGE: + // We do not know the specific type of the sequence because the type is not available at + // compile-time, but we know it's a vector and we know the size of the contained type. diff --git a/additional_recipes/ros-humble-dynmsg/recipe.yaml b/additional_recipes/ros-humble-dynmsg/recipe.yaml new file mode 100644 index 000000000..94afde3a9 --- /dev/null +++ b/additional_recipes/ros-humble-dynmsg/recipe.yaml @@ -0,0 +1,81 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json +schema_version: 1 + +package: + name: ros-humble-dynmsg + version: "0.1.0" + +source: + git: https://github.com/osrf/dynamic_message_introspection.git + rev: 50277e341f61455c42a6015b5718804a4f8588f6 + target_directory: ros-humble-dynmsg/src/work + patches: + - fix-build.patch + +build: + number: 12 + script: + build.sh + skip: + - not emscripten + +requirements: + build: + - if: target_platform == 'emscripten-wasm32' + then: + - emscripten_emscripten-wasm32 + else: + - ${{ compiler('cxx') }} + - ${{ compiler('c') }} + - if: linux64 + then: + - sysroot_linux-64 2.17 + - if: unix + then: + - make + - coreutils + - if: osx + then: tapi + - if: build_platform != target_platform + then: + - pkg-config + - python + - cross-python_${{ target_platform }} + - cython + - numpy + - ninja + - setuptools + - cmake + host: + - numpy + - pip + - if: build_platform == target_platform + then: + - pkg-config + - python + - ros-humble-ament-cmake + - ros-humble-rcutils + - ros-humble-rosidl-runtime-c + - ros-humble-rosidl-runtime-cpp + - ros-humble-rosidl-typesupport-introspection-c + - ros-humble-rosidl-typesupport-introspection-cpp + - ros-humble-yaml-cpp-vendor + - ros2-distro-mutex 0.6.* humble_* + run: + - if: target_platform != 'emscripten-wasm32' + then: + - cmake + - python + - ros-humble-rosidl-runtime-c + - ros-humble-rosidl-runtime-cpp + - ros-humble-rosidl-typesupport-introspection-c + - ros-humble-rosidl-typesupport-introspection-cpp + - ros-humble-yaml-cpp-vendor + - ros2-distro-mutex 0.6.* humble_* + - if: osx and x86_64 + then: __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} +about: + license: Apache-2.0 + license_file: LICENSE + summary: dynmsg + repository: https://github.com/osrf/dynamic_message_introspection.git diff --git a/additional_recipes/ros-humble-octomap/recipe.yaml b/additional_recipes/ros-humble-octomap/recipe.yaml index f6fdfbde5..57eb6ca00 100644 --- a/additional_recipes/ros-humble-octomap/recipe.yaml +++ b/additional_recipes/ros-humble-octomap/recipe.yaml @@ -1,3 +1,6 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json +schema_version: 1 + package: name: ros-humble-octomap version: "1.10.0" diff --git a/additional_recipes/ros-humble-rmw-wasm-cpp/build.sh b/additional_recipes/ros-humble-rmw-wasm-cpp/build.sh new file mode 100755 index 000000000..5e90e43fc --- /dev/null +++ b/additional_recipes/ros-humble-rmw-wasm-cpp/build.sh @@ -0,0 +1,138 @@ +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~${PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using PYTHON_INSTALL_DIR: $PYTHON_INSTALL_DIR" + +if [[ $target_platform =~ emscripten.* ]]; then + export CONDA_BUILD_CROSS_COMPILATION="1" + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python$PY_VER + echo "set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE)"> $SRC_DIR/__vinca_shared_lib_patch.cmake + echo "set(CMAKE_STRIP FALSE) # used by default in pybind11 on .so modules">> $SRC_DIR/__vinca_shared_lib_patch.cmake + echo "set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH) # fixes an error where numpy header files are not found correctly">> $SRC_DIR/__vinca_shared_lib_patch.cmake + + # if [ "${PKG_NAME}" == "ros-humble-examples-rclcpp-minimal-publisher" ] || [ "${PKG_NAME}" == "ros-humble-examples-rclcpp-minimal-subscriber" ] || [ "${PKG_NAME}" == "ros-humble-rclcpp-components" ]; then + # echo "set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS \"-s ASSERTIONS=1 -s SIDE_MODULE=1 -sWASM_BIGINT -s USE_PTHREADS=0 -s DEMANGLE_SUPPORT=1 -s ALLOW_MEMORY_GROWTH=1 \")">> $SRC_DIR/__vinca_shared_lib_patch.cmake + # echo "set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS \"-s ASSERTIONS=1 -s SIDE_MODULE=1 -sWASM_BIGINT -s USE_PTHREADS=0 -s DEMANGLE_SUPPORT=1 -s ALLOW_MEMORY_GROWTH=1 -sASYNCIFY -O3 -s ASYNCIFY_STACK_SIZE=24576 \")">> $SRC_DIR/__vinca_shared_lib_patch.cmake + # echo "set(CMAKE_EXE_LINKER_FLAGS \"-sMAIN_MODULE=1 -sASSERTIONS=1 -fexceptions -lembind -sWASM_BIGINT -s USE_PTHREADS=0 -s DEMANGLE_SUPPORT=1 -sALLOW_MEMORY_GROWTH=1 -sASYNCIFY -O3 -s ASYNCIFY_STACK_SIZE=24576 -L$SRC_DIR/build -L$PREFIX/lib\") # remove SIDE_MODULE from exe linker flags">> $SRC_DIR/__vinca_shared_lib_patch.cmake + # else + echo "set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS \"-s ASSERTIONS=1 -s SIDE_MODULE=1 -sWASM_BIGINT -s USE_PTHREADS=0 -s ALLOW_MEMORY_GROWTH=1 -s DEMANGLE_SUPPORT=1 \")">> $SRC_DIR/__vinca_shared_lib_patch.cmake + echo "set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS \"-s ASSERTIONS=1 -s SIDE_MODULE=1 -sWASM_BIGINT -s USE_PTHREADS=0 -s ALLOW_MEMORY_GROWTH=1 -s DEMANGLE_SUPPORT=1 \")">> $SRC_DIR/__vinca_shared_lib_patch.cmake + echo "set(CMAKE_EXE_LINKER_FLAGS \"-sMAIN_MODULE=1 -sASSERTIONS=1 -fexceptions -lembind -sWASM_BIGINT -s USE_PTHREADS=0 -sALLOW_MEMORY_GROWTH=1 -s DEMANGLE_SUPPORT=1 -L$SRC_DIR/build -L$PREFIX/lib\") # remove SIDE_MODULE from exe linker flags">> $SRC_DIR/__vinca_shared_lib_patch.cmake + # fi + + # export USE_WASM=ON + # -DTHREADS_PREFER_PTHREAD_FLAG=TRUE\ + export BUILD_TYPE="Debug" + export EXTRA_CMAKE_ARGS=" \ + -DPYTHON_SOABI="cpython-${ROS_PYTHON_VERSION//./}-wasm32-emscripten" \ + -DRMW_IMPLEMENTATION=rmw_wasm_cpp \ + -DCMAKE_FIND_ROOT_PATH=$PREFIX \ + -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \ + -DCMAKE_PROJECT_INCLUDE=$SRC_DIR/__vinca_shared_lib_patch.cmake \ + " + + unset -f cmake + export CMAKE_GEN="emcmake cmake" + export CMAKE_BLD="cmake" + if [ "${PKG_NAME}" == "ros-humble-rosidl-typesupport-c" ] || [ "${PKG_NAME}" == "ros-humble-rosidl-typesupport-cpp" ] || [ "${PKG_NAME}" == "ros-humble-typesupport-introspection-c" ] || [ "${PKG_NAME}" == "ros-humble-typesupport-introspection-cpp" ]; then + export SHARED_TYPE="ON" + else + export SHARED_TYPE="ON" + fi +else + export BUILD_TYPE="Release" + export CMAKE_GEN="cmake" + export CMAKE_BLD="cmake" + export SHARED_TYPE="ON" +fi; + +if [ "${PKG_NAME}" == "ros-humble-rmw-wasm-cpp" ]; then + WORK_DIR=$SRC_DIR/$PKG_NAME/src/work/rmw_wasm_cpp +elif [ "${PKG_NAME}" == "ros-humble-wasm-cpp" ]; then + WORK_DIR=$SRC_DIR/$PKG_NAME/src/work/wasm_cpp +elif [ "${PKG_NAME}" == "ros-humble-dynmsg" ]; then + WORK_DIR=$SRC_DIR/$PKG_NAME/src/work/dynmsg +else + WORK_DIR=$SRC_DIR/$PKG_NAME/src/work +fi; + +export STATIC_ROSIDL_TYPESUPPORT_C=rosidl_typesupport_introspection_c +export STATIC_ROSIDL_TYPESUPPORT_CPP=rosidl_typesupport_introspection_cpp + +$CMAKE_GEN \ + -G "Ninja" \ + -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=$SHARED_TYPE \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $EXTRA_CMAKE_ARGS \ + $WORK_DIR + +$CMAKE_BLD --build . --config $BUILD_TYPE --target install diff --git a/additional_recipes/ros-humble-rmw-wasm-cpp/recipe.yaml b/additional_recipes/ros-humble-rmw-wasm-cpp/recipe.yaml new file mode 100644 index 000000000..cab2b5c02 --- /dev/null +++ b/additional_recipes/ros-humble-rmw-wasm-cpp/recipe.yaml @@ -0,0 +1,95 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json +schema_version: 1 + +package: + name: ros-humble-rmw-wasm-cpp + version: 0.0.1 + +source: + git: https://github.com/Tobias-Fischer/rmw_wasm + branch: emscripten-async-fixes + target_directory: ros-humble-rmw-wasm-cpp/src/work + +build: + script: + build.sh + number: 12 + skip: + - not emscripten + +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +requirements: + build: + - if: target_platform == 'emscripten-wasm32' + then: + - emscripten_emscripten-wasm32 + else: + - ${{compiler('c')}} + - ${{compiler('cxx')}} + - if: linux64 + then: + - sysroot_linux-64 2.17 + - if: unix + then: + - make + - coreutils + - if: osx + then: tapi + - if: build_platform != target_platform + then: + - pkg-config + - python + - cross-python_${{target_platform}} + - cython + - numpy + - ninja + - setuptools + - cmake + + host: + - numpy + - pip + - if: build_platform == target_platform + then: + - pkg-config + - python + - ros-humble-rcutils + - ros-humble-rcpputils + - ros-humble-rmw + - ros-humble-wasm-cpp + - ros-humble-ament-cmake + - ros-humble-dynmsg + - ros-humble-rosidl-runtime-c + - ros-humble-rosidl-runtime-cpp + - ros-humble-rosidl-typesupport-introspection-c + - ros-humble-rosidl-typesupport-introspection-cpp + - ros-humble-yaml-cpp-vendor + - ros2-distro-mutex 0.6.* humble_* + - sqlite + - bzip2 + - zlib + - libffi + - yaml-cpp + run: + - if: target_platform != 'emscripten-wasm32' + then: + - cmake + - python + - ros-humble-dynmsg + - ros-humble-rmw + - ros-humble-wasm-cpp + - ros-humble-rcutils + - ros-humble-rcpputils + - ros-humble-rosidl-runtime-c + - ros-humble-rosidl-runtime-cpp + - ros-humble-rosidl-typesupport-introspection-c + - ros-humble-rosidl-typesupport-introspection-cpp + - ros2-distro-mutex 0.6.* humble_* + - if: osx and x86_64 + then: + - __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/additional_recipes/ros-humble-test-wasm/build.sh b/additional_recipes/ros-humble-test-wasm/build.sh new file mode 100755 index 000000000..d97668201 --- /dev/null +++ b/additional_recipes/ros-humble-test-wasm/build.sh @@ -0,0 +1,119 @@ +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~${PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using PYTHON_INSTALL_DIR: $PYTHON_INSTALL_DIR" + +if [[ $target_platform =~ emscripten.* ]]; then + export CONDA_BUILD_CROSS_COMPILATION="1" + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python$PY_VER + echo "set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE)"> $SRC_DIR/__vinca_shared_lib_patch.cmake + echo "set(CMAKE_STRIP FALSE) # used by default in pybind11 on .so modules">> $SRC_DIR/__vinca_shared_lib_patch.cmake + echo "set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH) # fixes an error where numpy header files are not found correctly">> $SRC_DIR/__vinca_shared_lib_patch.cmake + + if [ "${PKG_NAME}" == "ros-humble-examples-rclcpp-minimal-publisher" ] || [ "${PKG_NAME}" == "ros-humble-examples-rclcpp-minimal-subscriber" ] || [ "${PKG_NAME}" == "ros-humble-rclcpp-components" ]; then + echo "set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS \"-s ASSERTIONS=1 -s SIDE_MODULE=1 -sWASM_BIGINT -s USE_PTHREADS=0 -s ALLOW_MEMORY_GROWTH=1 -sASYNCIFY -O3 -s ASYNCIFY_STACK_SIZE=24576 \")">> $SRC_DIR/__vinca_shared_lib_patch.cmake + echo "set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS \"-s ASSERTIONS=1 -s SIDE_MODULE=1 -sWASM_BIGINT -s USE_PTHREADS=0 -s ALLOW_MEMORY_GROWTH=1 -sASYNCIFY -O3 -s ASYNCIFY_STACK_SIZE=24576 \")">> $SRC_DIR/__vinca_shared_lib_patch.cmake + echo "set(CMAKE_EXE_LINKER_FLAGS \"-sMAIN_MODULE=1 -sASSERTIONS=1 -fexceptions -lembind -sWASM_BIGINT -s USE_PTHREADS=0 -sALLOW_MEMORY_GROWTH=1 -sASYNCIFY -O3 -s ASYNCIFY_STACK_SIZE=24576 -L$SRC_DIR/build -L$PREFIX/lib\") # remove SIDE_MODULE from exe linker flags">> $SRC_DIR/__vinca_shared_lib_patch.cmake + else + echo "set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS \"-s ASSERTIONS=1 -s SIDE_MODULE=1 -sWASM_BIGINT -s USE_PTHREADS=0 -s ALLOW_MEMORY_GROWTH=1 \")">> $SRC_DIR/__vinca_shared_lib_patch.cmake + echo "set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS \"-s ASSERTIONS=1 -s SIDE_MODULE=1 -sWASM_BIGINT -s USE_PTHREADS=0 -s ALLOW_MEMORY_GROWTH=1 \")">> $SRC_DIR/__vinca_shared_lib_patch.cmake + echo "set(CMAKE_EXE_LINKER_FLAGS \"-v -sMAIN_MODULE=1 -sASSERTIONS=1 -fexceptions -lembind -sWASM_BIGINT -s USE_PTHREADS=0 -sALLOW_MEMORY_GROWTH=1 -s TOTAL_STACK=32MB -s INITIAL_MEMORY=128MB -L$SRC_DIR/build -L$PREFIX/lib\") # remove SIDE_MODULE from exe linker flags">> $SRC_DIR/__vinca_shared_lib_patch.cmake + fi + + # export USE_WASM=ON + # -DTHREADS_PREFER_PTHREAD_FLAG=TRUE\ + export BUILD_TYPE="Release" + export EXTRA_CMAKE_ARGS=" \ + -DPYTHON_SOABI="cpython-${ROS_PYTHON_VERSION//./}-wasm32-emscripten" \ + -DRMW_IMPLEMENTATION=rmw_wasm_cpp \ + -DCMAKE_FIND_ROOT_PATH=$PREFIX \ + -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \ + -DCMAKE_PROJECT_INCLUDE=$SRC_DIR/__vinca_shared_lib_patch.cmake \ + " + + unset -f cmake + export CMAKE_GEN="emcmake cmake" + export CMAKE_BLD="cmake" +else + export BUILD_TYPE="RELEASE" + export CMAKE_GEN="cmake" + export CMAKE_BLD="cmake" +fi; + +$CMAKE_GEN \ + -G "Ninja" \ + -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $EXTRA_CMAKE_ARGS \ + $SRC_DIR/$PKG_NAME/src/work/test_wasm + +$CMAKE_BLD --build . --config $BUILD_TYPE --target install diff --git a/additional_recipes/ros-humble-test-wasm/fix-build.patch b/additional_recipes/ros-humble-test-wasm/fix-build.patch new file mode 100644 index 000000000..0bd44370f --- /dev/null +++ b/additional_recipes/ros-humble-test-wasm/fix-build.patch @@ -0,0 +1,54 @@ +diff --git a/test_wasm/CMakeLists.txt b/test_wasm/CMakeLists.txt +index c6c95b9..0c6e621 100644 +--- a/test_wasm/CMakeLists.txt ++++ b/test_wasm/CMakeLists.txt +@@ -10,21 +10,22 @@ find_package(ament_cmake REQUIRED) + find_package(rclcpp REQUIRED) + find_package(std_msgs REQUIRED) + find_package(example_interfaces REQUIRED) ++find_package(Python COMPONENTS Interpreter Development REQUIRED) + + # Targets and link + include(cmake/WasmBuildOptions.cmake) + + add_executable(talker src/test_publisher.cpp) +-ament_target_dependencies(talker rclcpp std_msgs) ++target_link_libraries(talker PUBLIC ${std_msgs_TARGETS} rclcpp::rclcpp Python::Python) + + add_executable(listener src/test_subscriber.cpp) +-ament_target_dependencies(listener rclcpp std_msgs) ++target_link_libraries(listener PUBLIC ${std_msgs_TARGETS} rclcpp::rclcpp Python::Python) + + add_executable(server src/test_service_server.cpp) +-ament_target_dependencies(server rclcpp example_interfaces) ++target_link_libraries(server PUBLIC example_interfaces::example_interfaces__rosidl_typesupport_c example_interfaces::example_interfaces__rosidl_typesupport_cpp rclcpp::rclcpp Python::Python) + + add_executable(client src/test_service_client.cpp) +-ament_target_dependencies(client rclcpp example_interfaces) ++target_link_libraries(client PUBLIC example_interfaces::example_interfaces__rosidl_typesupport_c example_interfaces::example_interfaces__rosidl_typesupport_cpp rclcpp::rclcpp Python::Python) + + add_compile_options("SHELL:-s USE_PTHREADS") + +diff --git a/test_wasm/cmake/WasmBuildOptions.cmake b/test_wasm/cmake/WasmBuildOptions.cmake +index e6f4aab..4cfd775 100644 +--- a/test_wasm/cmake/WasmBuildOptions.cmake ++++ b/test_wasm/cmake/WasmBuildOptions.cmake +@@ -18,7 +18,7 @@ function(wasm_link_options) + PUBLIC "SHELL: -fexceptions" + PUBLIC "SHELL: -s ASYNCIFY=1" + PUBLIC "SHELL: -s ALLOW_MEMORY_GROWTH=1" +- PUBLIC "SHELL: -s DEMANGLE_SUPPORT=1" ++ # PUBLIC "SHELL: -s DEMANGLE_SUPPORT=1" + PUBLIC "SHELL: -s ASSERTIONS=1" + PUBLIC "SHELL: -s EXIT_RUNTIME=1" + PUBLIC "SHELL: -s WASM=1" +@@ -26,7 +26,8 @@ function(wasm_link_options) + PUBLIC "SHELL: -s TOTAL_STACK=16mb" + PUBLIC "SHELL: -s INITIAL_MEMORY=64mb" + PUBLIC "SHELL: -s ASYNCIFY_STACK_SIZE=24576" +- PUBLIC "SHELL: -03" # Optimize for async ++ PUBLIC "SHELL: -03" # Optimize for async ++ PUBLIC "SHELL: -s MINIFY_HTML=0" + ) + endforeach(arg IN LISTS ARGN) + endfunction() diff --git a/additional_recipes/ros-humble-test-wasm/recipe.yaml b/additional_recipes/ros-humble-test-wasm/recipe.yaml new file mode 100644 index 000000000..043d0779c --- /dev/null +++ b/additional_recipes/ros-humble-test-wasm/recipe.yaml @@ -0,0 +1,85 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json +schema_version: 1 +package: + name: ros-humble-test-wasm + version: 1.0.0 + +source: + git: https://github.com/ihuicatl/rmw_wasm.git + rev: main + target_directory: ros-humble-test-wasm/src/work + patches: + - fix-build.patch + +build: + script: + build.sh + number: 1 + skip: + - not emscripten + +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +requirements: + build: + - if: target_platform == 'emscripten-wasm32' + then: + - emscripten_emscripten-wasm32 + else: + - ${{compiler('c')}} + - ${{compiler('cxx')}} + - if: linux64 + then: + - sysroot_linux-64 2.17 + - if: unix + then: + - make + - coreutils + - if: osx + then: tapi + - if: build_platform != target_platform + then: + - pkg-config + - python + - cross-python_${{target_platform}} + - cython + - numpy + - ninja + - setuptools + - cmake + host: + - numpy + - pip + - if: build_platform == target_platform + then: + - pkg-config + - python + - ros-humble-ament-cmake + - ros-humble-rclcpp + - ros-humble-std-msgs + - ros-humble-example-interfaces + - ros-humble-yaml-cpp-vendor + - yaml + - yaml-cpp + - ros2-distro-mutex 0.6.* humble_* + - sqlite + - bzip2 + - zlib + - ros-humble-rmw-wasm-cpp + - libffi + run: + - if: target_platform != 'emscripten-wasm32' + then: + - cmake + - python + - ros-humble-rclcpp + - ros-humble-std-msgs + - ros-humble-example-interfaces + - ros-humble-yaml-cpp-vendor + - ros2-distro-mutex 0.6.* humble_* + - if: (osx and x86_64) + then: __osx >=${{MACOSX_DEPLOYMENT_TARGET|default('10.14')}} diff --git a/additional_recipes/ros-humble-wasm-cpp/build.sh b/additional_recipes/ros-humble-wasm-cpp/build.sh new file mode 100644 index 000000000..5e90e43fc --- /dev/null +++ b/additional_recipes/ros-humble-wasm-cpp/build.sh @@ -0,0 +1,138 @@ +set -eo pipefail + +rm -rf build +mkdir build +cd build + +# necessary for correctly linking SIP files (from python_qt_bindings) +export LINK=$CXX + +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then + PYTHON_EXECUTABLE=$PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="10.15" +else + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config + OSX_DEPLOYMENT_TARGET="11.0" +fi + +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + export QT_HOST_PATH="$BUILD_PREFIX" +else + export QT_HOST_PATH="$PREFIX" +fi + +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" + +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` +echo "Using Python ${ROS_PYTHON_VERSION}" + +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~${PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true +fi + +if [[ $target_platform =~ linux.* ]]; then + export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1" + export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1" +fi; + +# Needed for qt-gui-cpp .. +if [[ $target_platform =~ linux.* ]]; then + ln -s $GCC ${BUILD_PREFIX}/bin/gcc + ln -s $GXX ${BUILD_PREFIX}/bin/g++ +fi; + +# PYTHON_INSTALL_DIR should be a relative path, see +# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md +# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX, +# but it is not trivial to do this in bash scripting, so let's do it via python +export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"` +echo "Using PYTHON_INSTALL_DIR: $PYTHON_INSTALL_DIR" + +if [[ $target_platform =~ emscripten.* ]]; then + export CONDA_BUILD_CROSS_COMPILATION="1" + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python$PY_VER + echo "set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE)"> $SRC_DIR/__vinca_shared_lib_patch.cmake + echo "set(CMAKE_STRIP FALSE) # used by default in pybind11 on .so modules">> $SRC_DIR/__vinca_shared_lib_patch.cmake + echo "set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH) # fixes an error where numpy header files are not found correctly">> $SRC_DIR/__vinca_shared_lib_patch.cmake + + # if [ "${PKG_NAME}" == "ros-humble-examples-rclcpp-minimal-publisher" ] || [ "${PKG_NAME}" == "ros-humble-examples-rclcpp-minimal-subscriber" ] || [ "${PKG_NAME}" == "ros-humble-rclcpp-components" ]; then + # echo "set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS \"-s ASSERTIONS=1 -s SIDE_MODULE=1 -sWASM_BIGINT -s USE_PTHREADS=0 -s DEMANGLE_SUPPORT=1 -s ALLOW_MEMORY_GROWTH=1 \")">> $SRC_DIR/__vinca_shared_lib_patch.cmake + # echo "set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS \"-s ASSERTIONS=1 -s SIDE_MODULE=1 -sWASM_BIGINT -s USE_PTHREADS=0 -s DEMANGLE_SUPPORT=1 -s ALLOW_MEMORY_GROWTH=1 -sASYNCIFY -O3 -s ASYNCIFY_STACK_SIZE=24576 \")">> $SRC_DIR/__vinca_shared_lib_patch.cmake + # echo "set(CMAKE_EXE_LINKER_FLAGS \"-sMAIN_MODULE=1 -sASSERTIONS=1 -fexceptions -lembind -sWASM_BIGINT -s USE_PTHREADS=0 -s DEMANGLE_SUPPORT=1 -sALLOW_MEMORY_GROWTH=1 -sASYNCIFY -O3 -s ASYNCIFY_STACK_SIZE=24576 -L$SRC_DIR/build -L$PREFIX/lib\") # remove SIDE_MODULE from exe linker flags">> $SRC_DIR/__vinca_shared_lib_patch.cmake + # else + echo "set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS \"-s ASSERTIONS=1 -s SIDE_MODULE=1 -sWASM_BIGINT -s USE_PTHREADS=0 -s ALLOW_MEMORY_GROWTH=1 -s DEMANGLE_SUPPORT=1 \")">> $SRC_DIR/__vinca_shared_lib_patch.cmake + echo "set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS \"-s ASSERTIONS=1 -s SIDE_MODULE=1 -sWASM_BIGINT -s USE_PTHREADS=0 -s ALLOW_MEMORY_GROWTH=1 -s DEMANGLE_SUPPORT=1 \")">> $SRC_DIR/__vinca_shared_lib_patch.cmake + echo "set(CMAKE_EXE_LINKER_FLAGS \"-sMAIN_MODULE=1 -sASSERTIONS=1 -fexceptions -lembind -sWASM_BIGINT -s USE_PTHREADS=0 -sALLOW_MEMORY_GROWTH=1 -s DEMANGLE_SUPPORT=1 -L$SRC_DIR/build -L$PREFIX/lib\") # remove SIDE_MODULE from exe linker flags">> $SRC_DIR/__vinca_shared_lib_patch.cmake + # fi + + # export USE_WASM=ON + # -DTHREADS_PREFER_PTHREAD_FLAG=TRUE\ + export BUILD_TYPE="Debug" + export EXTRA_CMAKE_ARGS=" \ + -DPYTHON_SOABI="cpython-${ROS_PYTHON_VERSION//./}-wasm32-emscripten" \ + -DRMW_IMPLEMENTATION=rmw_wasm_cpp \ + -DCMAKE_FIND_ROOT_PATH=$PREFIX \ + -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \ + -DCMAKE_PROJECT_INCLUDE=$SRC_DIR/__vinca_shared_lib_patch.cmake \ + " + + unset -f cmake + export CMAKE_GEN="emcmake cmake" + export CMAKE_BLD="cmake" + if [ "${PKG_NAME}" == "ros-humble-rosidl-typesupport-c" ] || [ "${PKG_NAME}" == "ros-humble-rosidl-typesupport-cpp" ] || [ "${PKG_NAME}" == "ros-humble-typesupport-introspection-c" ] || [ "${PKG_NAME}" == "ros-humble-typesupport-introspection-cpp" ]; then + export SHARED_TYPE="ON" + else + export SHARED_TYPE="ON" + fi +else + export BUILD_TYPE="Release" + export CMAKE_GEN="cmake" + export CMAKE_BLD="cmake" + export SHARED_TYPE="ON" +fi; + +if [ "${PKG_NAME}" == "ros-humble-rmw-wasm-cpp" ]; then + WORK_DIR=$SRC_DIR/$PKG_NAME/src/work/rmw_wasm_cpp +elif [ "${PKG_NAME}" == "ros-humble-wasm-cpp" ]; then + WORK_DIR=$SRC_DIR/$PKG_NAME/src/work/wasm_cpp +elif [ "${PKG_NAME}" == "ros-humble-dynmsg" ]; then + WORK_DIR=$SRC_DIR/$PKG_NAME/src/work/dynmsg +else + WORK_DIR=$SRC_DIR/$PKG_NAME/src/work +fi; + +export STATIC_ROSIDL_TYPESUPPORT_C=rosidl_typesupport_introspection_c +export STATIC_ROSIDL_TYPESUPPORT_CPP=rosidl_typesupport_introspection_cpp + +$CMAKE_GEN \ + -G "Ninja" \ + -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DAMENT_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ + -DPython3_FIND_STRATEGY=LOCATION \ + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ + -DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ + -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ + -DBUILD_SHARED_LIBS=$SHARED_TYPE \ + -DBUILD_TESTING=OFF \ + -DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ + --compile-no-warning-as-error \ + $EXTRA_CMAKE_ARGS \ + $WORK_DIR + +$CMAKE_BLD --build . --config $BUILD_TYPE --target install diff --git a/additional_recipes/ros-humble-wasm-cpp/recipe.yaml b/additional_recipes/ros-humble-wasm-cpp/recipe.yaml new file mode 100644 index 000000000..f774d7e46 --- /dev/null +++ b/additional_recipes/ros-humble-wasm-cpp/recipe.yaml @@ -0,0 +1,78 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json +schema_version: 1 + +package: + name: ros-humble-wasm-cpp + version: 1.0.0 +source: + git: https://github.com/Tobias-Fischer/rmw_wasm + branch: emscripten-async-fixes + target_directory: ros-humble-wasm-cpp/src/work + # patches: + # - fix-build.patch + +build: + script: + build.sh + number: 12 + skip: + - not emscripten + +about: + homepage: https://www.ros.org/ + license: BSD-3-Clause + summary: | + Robot Operating System + +requirements: + build: + - if: target_platform == 'emscripten-wasm32' + then: + - emscripten_emscripten-wasm32 + else: + - ${{compiler('cxx')}} + - ${{compiler('c')}} + - if: linux64 + then: + - sysroot_linux-64 2.17 + - if: unix + then: + - make + - coreutils + - if: osx + then: tapi + - if: build_platform != target_platform + then: + - pkg-config + - python + - cross-python_${{target_platform}} + - cython + - numpy + - ninja + - setuptools + - cmake + host: + - numpy + - pip + - if: build_platform == target_platform + then: + - pkg-config + - python + - ros-humble-ament-cmake + - ros-humble-rcutils + - ros2-distro-mutex 0.6.* humble_* + - ros-humble-yaml-cpp-vendor + run: + - if: target_platform != 'emscripten-wasm32' + then: + - cmake + - python + - ros-humble-rcutils + - ros2-distro-mutex 0.6.* humble_* + - fmt + - sqlite + - bzip2 + - zlib + - libffi + - if: osx and x86_64 + then: __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }} diff --git a/additional_recipes/ros2-distro-mutex/recipe.yaml b/additional_recipes/ros2-distro-mutex/recipe.yaml index 810468941..d34e0fa7d 100644 --- a/additional_recipes/ros2-distro-mutex/recipe.yaml +++ b/additional_recipes/ros2-distro-mutex/recipe.yaml @@ -1,3 +1,6 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json +schema_version: 1 + package: name: ros2-distro-mutex version: 0.6.0 diff --git a/conda_build_config.yaml b/conda_build_config.yaml index 1127cf7a6..0efe01322 100644 --- a/conda_build_config.yaml +++ b/conda_build_config.yaml @@ -5,7 +5,8 @@ libprotobuf: protobuf: - 5.28.2 spdlog: - - 1.14 + - 1.14 # [not emscripten] + - 1.15 # [emscripten] pugixml: - '1.14' @@ -17,11 +18,17 @@ python: python_impl: - cpython +emscripten_emscripten-wasm32: + - 3.1.45 +cross-python_emscripten-wasm32: + - 3.11.* *_12 + c_compiler: - gcc # [linux] - clang # [osx] - vs2019 # [win and x86_64] - vs2022 # [win and arm64] + - emscripten # [emscripten] c_compiler_version: # [unix] - 13 # [linux] - 18 # [osx] @@ -38,6 +45,7 @@ cxx_compiler: - clangxx # [osx] - vs2019 # [win and x86_64] - vs2022 # [win and arm64] + - emscripten # [emscripten] cxx_compiler_version: # [unix] - 13 # [linux] - 18 # [osx] diff --git a/patch/dependencies.yaml b/patch/dependencies.yaml index 9b88f903f..42b0e3538 100644 --- a/patch/dependencies.yaml +++ b/patch/dependencies.yaml @@ -1,5 +1,5 @@ ament_package: - add_host: ['importlib_resources'] + add_host: ["importlib_resources"] foxglove_bridge: add_host: ["ros-humble-ament-cmake"] ros_ign_interfaces: @@ -155,6 +155,51 @@ ros_image_to_qimage: add_host: ["REQUIRE_OPENGL"] rqt_image_overlay: add_host: ["REQUIRE_OPENGL"] +tracetools: + remove_host: [ "pkg-config" ] +spdlog_vendor: + add_host: ["${{ 'fmt' if emscripten }}"] + add_run: ["${{ 'fmt' if emscripten }}"] +rcl_logging_spdlog: + add_host: ["${{ 'fmt' if emscripten }}"] +rcl: + add_host: [ "ros-humble-yaml-cpp-vendor", "${{ 'fmt' if emscripten }}"] +libstatistics_collector: + add_host: [ "ros-humble-yaml-cpp-vendor", "${{ 'fmt' if emscripten }}"] +rcl_action: + add_host: [ "ros-humble-yaml-cpp-vendor", "${{ 'fmt' if emscripten }}"] +rclc: + add_host: [ "ros-humble-yaml-cpp-vendor", "${{ 'fmt' if emscripten }}"] +rclcpp: + add_host: [ "ros-humble-yaml-cpp-vendor", "${{ 'fmt' if emscripten }}"] +rclcpp_action: + add_host: [ "ros-humble-yaml-cpp-vendor", "${{ 'fmt' if emscripten }}"] +examples_rclcpp_minimal_subscriber: + add_host: + - if: (target_platform == 'emscripten-wasm32') + then: + - ros-humble-rmw-wasm-cpp +examples_rclcpp_minimal_publisher: + add_host: + - if: (target_platform == 'emscripten-wasm32') + then: + - ros-humble-rmw-wasm-cpp +rclcpp_components: + add_host: + - if: (target_platform == 'emscripten-wasm32') + then: + - ros-humble-rmw-wasm-cpp +rmw_implementation: + add_run: + - if: (target_platform == 'emscripten-wasm32') + then: + - ros-humble-rmw-wasm-cpp + add_host: + - if: (target_platform == 'emscripten-wasm32') + then: + - ros-humble-rmw-wasm-cpp + - "ros-humble-yaml-cpp-vendor" + - "fmt" slam_toolbox: add_build: ["${{ 'qt-main' if (build_platform != target_platform) }}"] add_host: ["REQUIRE_OPENGL"] diff --git a/patch/ros-humble-ament-cmake-export-dependencies.patch b/patch/ros-humble-ament-cmake-export-dependencies.patch new file mode 100644 index 000000000..9cc6ada10 --- /dev/null +++ b/patch/ros-humble-ament-cmake-export-dependencies.patch @@ -0,0 +1,15 @@ +diff --git a/cmake/ament_cmake_export_dependencies-extras.cmake.in b/cmake/ament_cmake_export_dependencies-extras.cmake.in +index ab3d1e3f9..58a5ac89a 100644 +--- a/cmake/ament_cmake_export_dependencies-extras.cmake.in ++++ b/cmake/ament_cmake_export_dependencies-extras.cmake.in +@@ -86,7 +86,9 @@ if(NOT _exported_dependencies STREQUAL "") + endif() + if(_libraries) + ament_libraries_deduplicate(_libraries "${_libraries}") +- list(APPEND @PROJECT_NAME@_LIBRARIES "${_libraries}") ++ list(APPEND _libraries ${@PROJECT_NAME@_LIBRARIES}) ++ list(REMOVE_DUPLICATES _libraries) ++ set(@PROJECT_NAME@_LIBRARIES ${_libraries}) + endif() + endforeach() + endif() diff --git a/patch/ros-humble-examples-rclcpp-minimal-publisher.emscripten.patch b/patch/ros-humble-examples-rclcpp-minimal-publisher.emscripten.patch new file mode 100644 index 000000000..9e432d2a7 --- /dev/null +++ b/patch/ros-humble-examples-rclcpp-minimal-publisher.emscripten.patch @@ -0,0 +1,36 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 504411d57..a11cd4ce6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -13,24 +13,25 @@ endif() + find_package(ament_cmake REQUIRED) + find_package(rclcpp REQUIRED) + find_package(std_msgs REQUIRED) ++find_package(Python COMPONENTS Interpreter Development REQUIRED) + + add_executable(publisher_lambda lambda.cpp) +-ament_target_dependencies(publisher_lambda rclcpp std_msgs) ++target_link_libraries(publisher_lambda PUBLIC ${std_msgs_TARGETS} rclcpp::rclcpp Python::Python) + + add_executable(publisher_member_function member_function.cpp) +-ament_target_dependencies(publisher_member_function rclcpp std_msgs) ++target_link_libraries(publisher_member_function PUBLIC ${std_msgs_TARGETS} rclcpp::rclcpp Python::Python) + + add_executable(publisher_member_function_with_type_adapter member_function_with_type_adapter.cpp) +-ament_target_dependencies(publisher_member_function_with_type_adapter rclcpp std_msgs) ++target_link_libraries(publisher_member_function_with_type_adapter PUBLIC ${std_msgs_TARGETS} rclcpp::rclcpp Python::Python) + + add_executable(publisher_member_function_with_unique_network_flow_endpoints member_function_with_unique_network_flow_endpoints.cpp) +-ament_target_dependencies(publisher_member_function_with_unique_network_flow_endpoints rclcpp std_msgs) ++target_link_libraries(publisher_member_function_with_unique_network_flow_endpoints PUBLIC ${std_msgs_TARGETS} rclcpp::rclcpp Python::Python) + + add_executable(publisher_wait_for_all_acked member_function_with_wait_for_all_acked.cpp) +-ament_target_dependencies(publisher_wait_for_all_acked rclcpp std_msgs) ++target_link_libraries(publisher_wait_for_all_acked PUBLIC ${std_msgs_TARGETS} rclcpp::rclcpp Python::Python) + + add_executable(publisher_not_composable not_composable.cpp) +-ament_target_dependencies(publisher_not_composable rclcpp std_msgs) ++target_link_libraries(publisher_not_composable PUBLIC ${std_msgs_TARGETS} rclcpp::rclcpp Python::Python) + + install(TARGETS + publisher_lambda diff --git a/patch/ros-humble-examples-rclcpp-minimal-subscriber.emscripten.patch b/patch/ros-humble-examples-rclcpp-minimal-subscriber.emscripten.patch new file mode 100644 index 000000000..b05d0de1a --- /dev/null +++ b/patch/ros-humble-examples-rclcpp-minimal-subscriber.emscripten.patch @@ -0,0 +1,40 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 617c70014..049458fcc 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -14,27 +14,28 @@ find_package(ament_cmake REQUIRED) + find_package(rclcpp REQUIRED) + find_package(rclcpp_components REQUIRED) + find_package(std_msgs REQUIRED) ++find_package(Python COMPONENTS Interpreter Development REQUIRED) + + add_executable(subscriber_lambda lambda.cpp) +-ament_target_dependencies(subscriber_lambda rclcpp std_msgs) ++target_link_libraries(subscriber_lambda PUBLIC ${std_msgs_TARGETS} rclcpp::rclcpp Python::Python) + + add_executable(subscriber_member_function member_function.cpp) +-ament_target_dependencies(subscriber_member_function rclcpp std_msgs) ++target_link_libraries(subscriber_member_function PUBLIC ${std_msgs_TARGETS} rclcpp::rclcpp Python::Python) + + add_executable(subscriber_member_function_with_topic_statistics member_function_with_topic_statistics.cpp) +-ament_target_dependencies(subscriber_member_function_with_topic_statistics rclcpp std_msgs) ++target_link_libraries(subscriber_member_function_with_topic_statistics PUBLIC ${std_msgs_TARGETS} rclcpp::rclcpp Python::Python) + + add_executable(subscriber_member_function_with_type_adapter member_function_with_type_adapter.cpp) +-ament_target_dependencies(subscriber_member_function_with_type_adapter rclcpp std_msgs) ++target_link_libraries(subscriber_member_function_with_type_adapter PUBLIC ${std_msgs_TARGETS} rclcpp::rclcpp Python::Python) + + add_executable(subscriber_member_function_with_unique_network_flow_endpoints member_function_with_unique_network_flow_endpoints.cpp) +-ament_target_dependencies(subscriber_member_function_with_unique_network_flow_endpoints rclcpp std_msgs) ++target_link_libraries(subscriber_member_function_with_unique_network_flow_endpoints PUBLIC ${std_msgs_TARGETS} rclcpp::rclcpp Python::Python) + + add_executable(subscriber_not_composable not_composable.cpp) +-ament_target_dependencies(subscriber_not_composable rclcpp std_msgs) ++target_link_libraries(subscriber_not_composable PUBLIC ${std_msgs_TARGETS} rclcpp::rclcpp Python::Python) + + add_executable(subscriber_content_filtering content_filtering.cpp) +-ament_target_dependencies(subscriber_content_filtering rclcpp std_msgs) ++target_link_libraries(subscriber_content_filtering PUBLIC ${std_msgs_TARGETS} rclcpp::rclcpp Python::Python) + + add_library(wait_set_subscriber_library SHARED + wait_set_subscriber.cpp diff --git a/patch/ros-humble-osrf-testing-tools-cpp.patch b/patch/ros-humble-osrf-testing-tools-cpp.patch index 78edeacdd..411da2c54 100644 --- a/patch/ros-humble-osrf-testing-tools-cpp.patch +++ b/patch/ros-humble-osrf-testing-tools-cpp.patch @@ -1,21 +1,97 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index e6f56ba..9e1cf50 100644 +index e6f56ba..73669b1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -17,16 +17,6 @@ endif() - - add_subdirectory(src) +@@ -15,17 +15,11 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + -Wshadow -Wnon-virtual-dtor) + endif() +-add_subdirectory(src) +- -include(CTest) -if(BUILD_TESTING) - include(cmake/osrf_testing_tools_cpp_require_googletest.cmake) - # ensures target gtest_main exists - osrf_testing_tools_cpp_require_googletest(VERSION_GTE 1.10 - VENDOR_DIR "${CMAKE_SOURCE_DIR}/vendor") -- ++if (EMSCRIPTEN) ++ set(CMAKE_CXX_FLAGS "-pthread ${CMAKE_CXX_FLAGS}") ++ endif() + - add_subdirectory(test) -endif() -- ++add_subdirectory(src) + configure_file(osrf_testing_tools_cppConfig.cmake.in "${PROJECT_BINARY_DIR}/osrf_testing_tools_cppConfig.cmake" @ONLY) - configure_file(osrf_testing_tools_cppConfigVersion.cmake.in +diff --git a/src/memory_tools/count_function_occurrences_in_backtrace.hpp b/src/memory_tools/count_function_occurrences_in_backtrace.hpp +index c5e0cc2..c3b8cb5 100644 +--- a/src/memory_tools/count_function_occurrences_in_backtrace.hpp ++++ b/src/memory_tools/count_function_occurrences_in_backtrace.hpp +@@ -17,7 +17,7 @@ + + #include "./safe_fwrite.hpp" + +-#if defined(_WIN32) || defined(__QNXNTO__) || defined(__ANDROID__) ++#if defined(_WIN32) || defined(__QNXNTO__) || defined(__ANDROID__) || defined(__EMSCRIPTEN__) + + // Include nothing for now. + +@@ -50,7 +50,7 @@ struct is_function_pointer + > + {}; + +-#if defined(_WIN32) || defined(__QNXNTO__) || defined(__ANDROID__) ++#if defined(_WIN32) || defined(__QNXNTO__) || defined(__ANDROID__) || defined(__EMSCRIPTEN__) + + struct count_function_occurrences_in_backtrace_is_implemented : std::false_type {}; + +diff --git a/src/memory_tools/vendor/bombela/backward-cpp/backward.hpp b/src/memory_tools/vendor/bombela/backward-cpp/backward.hpp +index ac7ad51..442c9de 100644 +--- a/src/memory_tools/vendor/bombela/backward-cpp/backward.hpp ++++ b/src/memory_tools/vendor/bombela/backward-cpp/backward.hpp +@@ -63,7 +63,9 @@ + #elif defined(BACKWARD_SYSTEM_UNKNOWN) + #elif defined(BACKWARD_SYSTEM_WINDOWS) + #else +-#if defined(__linux) || defined(__linux__) ++#if defined(__EMSCRIPTEN__) ++#define BACKWARD_SYSTEM_UNKNOWN // Not supported in emscripten ++#elif defined(__linux) || defined(__linux__) + #define BACKWARD_SYSTEM_LINUX + #elif defined(__APPLE__) + #define BACKWARD_SYSTEM_DARWIN +@@ -393,12 +395,14 @@ typedef SSIZE_T ssize_t; + // anyway. + // + // Luckily we can play on the fact that the guard macros have a different name: ++#ifndef __EMSCRIPTEN__ // Emscripten has the same prototype as gcc + #ifdef __CLANG_UNWIND_H + // In fact, this function still comes from libgcc (on my different linux boxes, + // clang links against libgcc). + #include + extern "C" uintptr_t _Unwind_GetIPInfo(_Unwind_Context *, int *); + #endif ++#endif + + #endif // BACKWARD_HAS_UNWIND == 1 + +diff --git a/src/test_runner/CMakeLists.txt b/src/test_runner/CMakeLists.txt +index ffbc9cf..8bc17a6 100644 +--- a/src/test_runner/CMakeLists.txt ++++ b/src/test_runner/CMakeLists.txt +@@ -1,5 +1,14 @@ + add_executable(test_runner main.cpp) + ++if (DEFINED EMSCRIPTEN) ++ set_target_properties( ++ test_runner ++ PROPERTIES SUFFIX ".wasm" ++ ) ++ ++ target_compile_options(test_runner PUBLIC -fPIC) ++endif (DEFINED EMSCRIPTEN) ++ + install(TARGETS test_runner + EXPORT test_runner + DESTINATION lib/${PROJECT_NAME} diff --git a/patch/ros-humble-rclcpp-components.emscripten.patch b/patch/ros-humble-rclcpp-components.emscripten.patch new file mode 100644 index 000000000..ec9acc8c0 --- /dev/null +++ b/patch/ros-humble-rclcpp-components.emscripten.patch @@ -0,0 +1,68 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0b9cda78..5fe961e9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -19,6 +19,7 @@ find_package(class_loader REQUIRED) + find_package(composition_interfaces REQUIRED) + find_package(rclcpp REQUIRED) + find_package(rcpputils REQUIRED) ++find_package(Python COMPONENTS Interpreter Development REQUIRED) + + # Add an interface library that can be dependend upon by libraries who register components + add_library(component INTERFACE) +@@ -37,12 +38,15 @@ add_library( + target_include_directories(component_manager PUBLIC + "$" + "$") +-ament_target_dependencies(component_manager +- "ament_index_cpp" +- "class_loader" +- "composition_interfaces" +- "rclcpp" +- "rcpputils" ++target_link_libraries(component_manager PUBLIC ++ ${composition_interfaces_TARGETS} ++ rclcpp::rclcpp ++) ++target_link_libraries(component_manager PRIVATE ++ ament_index_cpp::ament_index_cpp ++ class_loader::class_loader ++ rcpputils::rcpputils ++ Python::Python + ) + target_compile_definitions(component_manager + PRIVATE "RCLCPP_COMPONENTS_BUILDING_LIBRARY") +@@ -51,10 +55,7 @@ add_executable( + component_container + src/component_container.cpp + ) +-target_link_libraries(component_container component_manager) +-ament_target_dependencies(component_container +- "rclcpp" +-) ++target_link_libraries(component_container component_manager rclcpp::rclcpp) + + set(node_main_template_install_dir "share/${PROJECT_NAME}") + install(FILES +@@ -65,19 +66,13 @@ add_executable( + component_container_mt + src/component_container_mt.cpp + ) +-target_link_libraries(component_container_mt component_manager) +-ament_target_dependencies(component_container_mt +- "rclcpp" +-) ++target_link_libraries(component_container_mt component_manager rclcpp::rclcpp) + + add_executable( + component_container_isolated + src/component_container_isolated.cpp + ) +-target_link_libraries(component_container_isolated component_manager) +-ament_target_dependencies(component_container_isolated +- "rclcpp" +-) ++target_link_libraries(component_container_isolated component_manager rclcpp::rclcpp) + + + if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") diff --git a/patch/ros-humble-rclpy.emscripten.patch b/patch/ros-humble-rclpy.emscripten.patch new file mode 100644 index 000000000..52e8e2fad --- /dev/null +++ b/patch/ros-humble-rclpy.emscripten.patch @@ -0,0 +1,26 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 3add4d5..c0ce5bb 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -70,7 +70,7 @@ function(configure_build_install_location _library_name) + endfunction() + + # Split from main extension and converted to pybind11 +-pybind11_add_module(_rclpy_pybind11 ++pybind11_add_module(_rclpy_pybind11 MODULE NO_EXTRAS + src/rclpy/_rclpy_logging.cpp + src/rclpy/_rclpy_pybind11.cpp + src/rclpy/action_client.cpp +diff --git a/src/rclpy/_rclpy_logging.cpp b/src/rclpy/_rclpy_logging.cpp +index c510b0a..854e79e 100644 +--- a/src/rclpy/_rclpy_logging.cpp ++++ b/src/rclpy/_rclpy_logging.cpp +@@ -129,7 +129,7 @@ rclpy_logging_rcutils_log( + uint64_t line_number) + { + RCUTILS_LOGGING_AUTOINIT; +- rcutils_log_location_t logging_location = {function_name, file_name, line_number}; ++ rcutils_log_location_t logging_location = {function_name, file_name, static_cast(line_number)}; + rcutils_log(&logging_location, severity, name, "%s", message); + } + diff --git a/patch/ros-humble-rcutils.patch b/patch/ros-humble-rcutils.patch index a30959a29..c4c99f2a5 100644 --- a/patch/ros-humble-rcutils.patch +++ b/patch/ros-humble-rcutils.patch @@ -78,3 +78,39 @@ index 4914c4f..15901e2 100644 sizeof(error_string->str) == ( sizeof(error_state->message) + sizeof(format_1) - 1 /* minus the null-term */ + +diff --git a/src/strerror.c b/src/strerror.c +index a425010..282a107 100644 +--- a/src/strerror.c ++++ b/src/strerror.c +@@ -27,7 +27,7 @@ rcutils_strerror(char * buffer, size_t buffer_length) + { + #if defined(_WIN32) + strerror_s(buffer, buffer_length, errno); +-#elif defined(_GNU_SOURCE) && (!defined(ANDROID) || __ANDROID_API__ >= 23) && !defined(__QNXNTO__) ++#elif defined(_GNU_SOURCE) && (!defined(ANDROID) || __ANDROID_API__ >= 23) && !defined(__QNXNTO__) && !defined(__EMSCRIPTEN__) + /* GNU-specific */ + char * msg = strerror_r(errno, buffer, buffer_length); + if (msg != buffer) { +diff --git a/src/shared_library.c b/src/shared_library.c +index 0190afcc..5e0d023e 100644 +--- a/src/shared_library.c ++++ b/src/shared_library.c +@@ -127,7 +127,7 @@ rcutils_load_shared_library( + goto fail; + } + lib->library_path = rcutils_strdup(image_name, lib->allocator); +-#elif defined(_GNU_SOURCE) && !defined(__QNXNTO__) && !defined(__ANDROID__) ++#elif defined(_GNU_SOURCE) && !defined(__QNXNTO__) && !defined(__ANDROID__) && !defined(__EMSCRIPTEN__) + struct link_map * map = NULL; + if (dlinfo(lib->lib_pointer, RTLD_DI_LINKMAP, &map) != 0) { + RCUTILS_SET_ERROR_MSG_WITH_FORMAT_STRING("dlinfo error: %s", dlerror()); +@@ -294,7 +294,7 @@ rcutils_get_platform_library_name( + + int written = 0; + +-#if defined(__linux__) || defined(__QNXNTO__) ++#if defined(__linux__) || defined(__QNXNTO__) || defined(__EMSCRIPTEN__) + if (debug) { + if (buffer_size >= (strlen(library_name) + 8)) { + written = rcutils_snprintf( + diff --git a/patch/ros-humble-rosidl-generator-py.patch b/patch/ros-humble-rosidl-generator-py.patch index dfc7ad3ae..de1fb3107 100644 --- a/patch/ros-humble-rosidl-generator-py.patch +++ b/patch/ros-humble-rosidl-generator-py.patch @@ -2,15 +2,29 @@ diff --git a/cmake/rosidl_generator_py_generate_interfaces.cmake b/cmake/rosidl_ index a6d8263..f231ea2 100644 --- a/cmake/rosidl_generator_py_generate_interfaces.cmake +++ b/cmake/rosidl_generator_py_generate_interfaces.cmake -@@ -17,10 +17,9 @@ find_package(rosidl_runtime_c REQUIRED) +@@ -17,10 +17,22 @@ find_package(rosidl_runtime_c REQUIRED) find_package(rosidl_typesupport_c REQUIRED) find_package(rosidl_typesupport_interface REQUIRED) -find_package(PythonInterp 3.6 REQUIRED) - find_package(python_cmake_module REQUIRED) - find_package(PythonExtra MODULE REQUIRED) -+find_package(Python3 REQUIRED COMPONENTS Development NumPy) +-find_package(PythonExtra MODULE REQUIRED) ++if (EMSCRIPTEN) ++ # Fixes an error where find_path fails to find numpy headers as it only searches ++ # with the sysroot prefix. An absolute path is appended to the sysroot prefix ++ # and the numpy headers are not found. ++ set(_PREV_CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ${CMAKE_FIND_ROOT_PATH}) ++ set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH) ++ find_package(Python REQUIRED COMPONENTS Interpreter Development NumPy) ++ find_package(PythonExtra REQUIRED) ++ set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ${_PREV_CMAKE_FIND_ROOT_PATH_MODE_INCLUDE}) ++ set(Python_NumPy_INCLUDE_DIRS "$ENV{PREFIX}/lib/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/site-packages/numpy/core/include") ++ message(WARNING "Python_NumPy_INCLUDE_DIRS: ${Python_NumPy_INCLUDE_DIRS}") ++else() ++ find_package(PythonExtra REQUIRED) ++ find_package(Python REQUIRED COMPONENTS Interpreter Development NumPy) ++endif() # Get a list of typesupport implementations from valid rmw implementations. rosidl_generator_py_get_typesupports(_typesupport_impls) @@ -61,11 +75,11 @@ index a6d8263..f231ea2 100644 - endif() - message(STATUS "Using numpy include directory: ${_output}") - target_include_directories(${_target_name_lib} PUBLIC "${_output}") -+if(APPLE) ++if(APPLE OR EMSCRIPTEN) + set_target_properties(${_target_name_lib} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") -+ target_include_directories(${_target_name_lib} PUBLIC ${Python3_INCLUDE_DIRS} ${Python3_NumPy_INCLUDE_DIRS}) ++ target_include_directories(${_target_name_lib} PUBLIC ${Python_INCLUDE_DIRS} ${Python_NumPy_INCLUDE_DIRS}) +else() -+ target_link_libraries(${_target_name_lib} PRIVATE Python3::NumPy Python3::Python) ++ target_link_libraries(${_target_name_lib} PRIVATE Python::NumPy Python::Python) endif() rosidl_get_typesupport_target(c_typesupport_target "${rosidl_generate_interfaces_TARGET}" "rosidl_typesupport_c") @@ -82,7 +96,7 @@ index a6d8263..f231ea2 100644 ${_target_name_lib} - ${PythonExtra_LIBRARIES} ${rosidl_generate_interfaces_TARGET}__${_typesupport_impl} -+ Python3::Module ++ Python::Module ) target_include_directories(${_target_name} diff --git a/patch/ros-humble-rosidl-typesupport-fastrtps-cpp.patch b/patch/ros-humble-rosidl-typesupport-fastrtps-cpp.patch new file mode 100644 index 000000000..ecd127652 --- /dev/null +++ b/patch/ros-humble-rosidl-typesupport-fastrtps-cpp.patch @@ -0,0 +1,29 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d42ce68..0bcd371 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -50,10 +50,19 @@ set_property(TARGET ${PROJECT_NAME} + target_include_directories(${PROJECT_NAME} PUBLIC + "$" + "$") +-target_link_libraries(${PROJECT_NAME} PUBLIC +- fastcdr +- rosidl_runtime_c::rosidl_runtime_c +- rmw::rmw) ++ ++if (EMSCRIPTEN) ++ # Don't explicitly link rosidl_runtime_c here. ++ # It is linked by rmw and emcc produces errors if the library is specified more than once in the input list ++ target_link_libraries(${PROJECT_NAME} PUBLIC ++ fastcdr ++ rmw::rmw) ++else() ++ target_link_libraries(${PROJECT_NAME} PUBLIC ++ fastcdr ++ rosidl_runtime_c::rosidl_runtime_c ++ rmw::rmw) ++endif() + + # Export old-style CMake variables + ament_export_include_directories("include/${PROJECT_NAME}") + diff --git a/patch/ros-humble-spdlog-vendor.patch b/patch/ros-humble-spdlog-vendor.patch new file mode 100644 index 000000000..f5ae34422 --- /dev/null +++ b/patch/ros-humble-spdlog-vendor.patch @@ -0,0 +1,90 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ff36b34..148a5a1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -9,84 +9,7 @@ if(POLICY CMP0135) + cmake_policy(SET CMP0135 NEW) + endif() + +-option(FORCE_BUILD_VENDOR_PKG +- "Build spdlog from source, even if system-installed package is available" +- OFF) +- +-if(NOT FORCE_BUILD_VENDOR_PKG) +- find_package(spdlog QUIET) +-endif() +- +-macro(build_spdlog) +- set(extra_cmake_args) +- if(DEFINED CMAKE_BUILD_TYPE) +- list(APPEND extra_cmake_args -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}) +- endif() +- if(DEFINED CMAKE_TOOLCHAIN_FILE) +- list(APPEND extra_cmake_args "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}") +- if(ANDROID) +- if(DEFINED ANDROID_ABI) +- list(APPEND extra_cmake_args "-DANDROID_ABI=${ANDROID_ABI}") +- endif() +- if(DEFINED ANDROID_CPP_FEATURES) +- list(APPEND extra_cmake_args "-DANDROID_CPP_FEATURES=${ANDROID_CPP_FEATURES}") +- endif() +- if(DEFINED ANDROID_FUNCTION_LEVEL_LINKING) +- list(APPEND extra_cmake_args "-DANDROID_FUNCTION_LEVEL_LINKING=${ANDROID_FUNCTION_LEVEL_LINKING}") +- endif() +- if(DEFINED ANDROID_NATIVE_API_LEVEL) +- list(APPEND extra_cmake_args "-DANDROID_NATIVE_API_LEVEL=${ANDROID_NATIVE_API_LEVEL}") +- endif() +- if(DEFINED ANDROID_NDK) +- list(APPEND extra_cmake_args "-DANDROID_NDK=${ANDROID_NDK}") +- endif() +- if(DEFINED ANDROID_STL) +- list(APPEND extra_cmake_args "-DANDROID_STL=${ANDROID_STL}") +- endif() +- if(DEFINED ANDROID_TOOLCHAIN_NAME) +- list(APPEND extra_cmake_args "-DANDROID_TOOLCHAIN_NAME=${ANDROID_TOOLCHAIN_NAME}") +- endif() +- endif() +- else() +- list(APPEND extra_cmake_args "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}") +- endif() +- list(APPEND extra_cmake_args "-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}") +- list(APPEND extra_cmake_args "-DSPDLOG_BUILD_TESTS=OFF") +- list(APPEND extra_cmake_args "-DSPDLOG_BUILD_EXAMPLE=OFF") +- if(NOT WIN32) +- list(APPEND extra_cmake_args "-DSPDLOG_BUILD_SHARED=ON") +- endif() +- +- include(ExternalProject) +- +- # Get spdlog 1.8.2 +- externalproject_add(spdlog-1.8.2 +- URL https://github.com/gabime/spdlog/archive/v1.8.2.tar.gz +- URL_MD5 22518fb28d4be66c92a703c67d99b1d1 +- TIMEOUT 600 +- CMAKE_ARGS +- -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_install +- ${extra_cmake_args} +- ) +- +- # The external project will install to the build folder, but we'll install that on make install. +- install( +- DIRECTORY +- ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_install/ +- DESTINATION +- ${CMAKE_INSTALL_PREFIX} +- USE_SOURCE_PERMISSIONS +- ) +-endmacro() +- +-if(NOT spdlog_FOUND OR "${spdlog_VERSION}" VERSION_LESS 1.5.0) +- build_spdlog() +-endif() +- +-if(BUILD_TESTING) +- find_package(ament_lint_auto REQUIRED) +- ament_lint_auto_find_test_dependencies() +-endif() ++find_package(spdlog REQUIRED) + + # this ensures that the package has an environment hook setting the PATH + ament_package() diff --git a/patch/ros-humble-tracetools.patch b/patch/ros-humble-tracetools.patch new file mode 100644 index 000000000..af70378e3 --- /dev/null +++ b/patch/ros-humble-tracetools.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a0ec5a2b..3cb4f8b2 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -14,7 +14,7 @@ endif() + + find_package(ament_cmake_ros REQUIRED) + +-if(WIN32) ++if(WIN32 OR EMSCRIPTEN) + set(DISABLED_DEFAULT ON) + set(STATUS_CHECKING_TOOL_DEFAULT OFF) + else() diff --git a/patch/ros-humble-uncrustify-vendor.patch b/patch/ros-humble-uncrustify-vendor.patch new file mode 100644 index 000000000..489825361 --- /dev/null +++ b/patch/ros-humble-uncrustify-vendor.patch @@ -0,0 +1,14 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ca0f133..9c0ebc3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -88,6 +88,9 @@ else() + set(need_local_build TRUE) + endif() + endif() ++if(EMSCRIPTEN) ++ set(need_local_build FALSE) ++endif() + if(FORCE_BUILD_VENDOR_PKG OR need_local_build) + build_uncrustify() + endif() diff --git a/pixi.lock b/pixi.lock index fcc36d182..5677bfa17 100644 --- a/pixi.lock +++ b/pixi.lock @@ -9,19 +9,22 @@ environments: linux-64: - conda: https://repo.prefix.dev/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - conda: https://repo.prefix.dev/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-cli-base-0.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.13.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-25.1.0-pyh71513ae_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/brotli-python-1.1.0-py311hfdbb021_2.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/ca-certificates-2024.12.14-hbcca054_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/ca-certificates-2025.1.31-hbcca054_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2025.1.31-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/cffi-1.17.1-py311hf29c0ef_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.2.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda @@ -29,45 +32,60 @@ environments: - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_4.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/liblzma-5.6.3-hb9d3cd8_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libffi-3.4.6-h2dba641_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libgcc-14.2.0-h767d61c_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libgomp-14.2.0-h767d61c_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/liblzma-5.6.4-hb9d3cd8_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/libsqlite-3.48.0-hee588c1_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libsqlite-3.49.1-hee588c1_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libstdcxx-14.2.0-h8f9b012_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_2.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/ncurses-6.5-h2d0b736_2.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/openssl-3.4.0-h7b32b05_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/openssl-3.4.1-h7b32b05_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/patchelf-0.17.2-h58526e2_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.10.6-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/pydantic-core-2.27.2-py311h9e33e62_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-settings-2.8.1-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/python-3.11.11-h9e4cc4f_1_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/python-3.11.11-h9e4cc4f_2_cpython.conda - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dotenv-1.0.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/python_abi-3.11-5_cp311.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2025.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/pyyaml-6.0.2-py311h2dc5d0c_2.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/rattler-build-0.35.6-hff40e2b_0.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/readline-8.2-h8228510_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/rattler-build-0.38.0-h159367c_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/readchar-4.2.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.36.2-pyh29332c3_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/rpds-py-0.22.3-py311h9e33e62_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/rpds-py-0.23.1-py311h687327b_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.2-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-0.15.2-pyhff008b6_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-0.15.2-pyh29332c3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-standard-0.15.2-h801b22e_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda @@ -79,12 +97,8 @@ environments: - pypi: https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3b/95/88ed47cb7da88569a78b7d6fb9420298df7e99997810c844a924d96d3c08/empy-3.3.4.tar.gz - - pypi: https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/22/32/d0fbc4383a6a213d315c39dda9107f81654d9941c43d6c687e61995ec388/rosdistro-1.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/c1/b0616243c1f922252ceb4513c22abefc1773cf372bfc0b6f7e59c2829f96/rospkg-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl @@ -92,19 +106,22 @@ environments: - pypi: git+https://github.com/robostack/vinca?rev=cbb8eba834ce3834df552977d6b08c325a30768e#cbb8eba834ce3834df552977d6b08c325a30768e linux-aarch64: - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/_openmp_mutex-4.5-2_gnu.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-cli-base-0.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.13.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-25.1.0-pyh71513ae_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/brotli-python-1.1.0-py311h89d996e_2.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/bzip2-1.0.8-h68df207_7.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ca-certificates-2024.12.14-hcefe29a_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ca-certificates-2025.1.31-hcefe29a_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2025.1.31-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/cffi-1.17.1-py311h14e8bb7_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.2.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda @@ -112,45 +129,60 @@ environments: - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.43-h80caac9_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.43-h80caac9_4.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libexpat-2.6.4-h5ad3122_0.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libffi-3.4.2-h3557bc0_5.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgcc-14.2.0-he277a41_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgcc-ng-14.2.0-he9431aa_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgomp-14.2.0-he277a41_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/liblzma-5.6.3-h86ecc28_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libffi-3.4.6-he21f813_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgcc-14.2.0-he277a41_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgcc-ng-14.2.0-he9431aa_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgomp-14.2.0-he277a41_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/liblzma-5.6.4-h86ecc28_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libnsl-2.0.1-h31becfc_0.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libsqlite-3.48.0-h5eb1b54_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libstdcxx-14.2.0-h3f4de04_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libstdcxx-ng-14.2.0-hf1166c9_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libsqlite-3.49.1-h5eb1b54_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libstdcxx-14.2.0-h3f4de04_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libstdcxx-ng-14.2.0-hf1166c9_2.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libuuid-2.38.1-hb4cce97_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libxcrypt-4.4.36-h31becfc_1.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libzlib-1.3.1-h86ecc28_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ncurses-6.5-ha32ae93_2.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/openssl-3.4.0-hd08dc88_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ncurses-6.5-ha32ae93_3.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/openssl-3.4.1-hd08dc88_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/patchelf-0.17.2-h884eca8_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.10.6-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/pydantic-core-2.27.2-py311h0ca61a2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-settings-2.8.1-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/python-3.11.11-h1683364_1_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/python-3.11.11-h1683364_2_cpython.conda - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dotenv-1.0.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/python_abi-3.11-5_cp311.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2025.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/pyyaml-6.0.2-py311h58d527c_2.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rattler-build-0.35.6-h33857bb_0.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/readline-8.2-h8fc344f_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rattler-build-0.38.0-h112f5b8_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/readchar-4.2.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/readline-8.2-h8382b9d_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.36.2-pyh29332c3_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rpds-py-0.22.3-py311h7270cec_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rpds-py-0.23.1-py311h4346fff_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.2-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/tk-8.6.13-h194ca79_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-0.15.2-pyhff008b6_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-0.15.2-pyh29332c3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-standard-0.15.2-h801b22e_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda @@ -162,31 +194,30 @@ environments: - pypi: https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3b/95/88ed47cb7da88569a78b7d6fb9420298df7e99997810c844a924d96d3c08/empy-3.3.4.tar.gz - - pypi: https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/22/32/d0fbc4383a6a213d315c39dda9107f81654d9941c43d6c687e61995ec388/rosdistro-1.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/c1/b0616243c1f922252ceb4513c22abefc1773cf372bfc0b6f7e59c2829f96/rospkg-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3c/d2/b79b7d695e2f21da020bd44c782490578f300dd44f0a4c57a92575758a76/ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux2014_aarch64.whl - pypi: git+https://github.com/robostack/vinca?rev=cbb8eba834ce3834df552977d6b08c325a30768e#cbb8eba834ce3834df552977d6b08c325a30768e osx-64: - - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-cli-base-0.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.13.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-25.1.0-pyh71513ae_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/brotli-python-1.1.0-py311hd89902b_2.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/bzip2-1.0.8-hfdf4475_7.conda - - conda: https://repo.prefix.dev/conda-forge/osx-64/ca-certificates-2024.12.14-h8857fd0_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/ca-certificates-2025.1.31-h8857fd0_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2025.1.31-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/cffi-1.17.1-py311h137bacd_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.2.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda @@ -196,34 +227,49 @@ environments: - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/libcxx-19.1.7-hf95d169_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/libexpat-2.6.4-h240833e_0.conda - - conda: https://repo.prefix.dev/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/osx-64/liblzma-5.6.3-hd471939_1.conda - - conda: https://repo.prefix.dev/conda-forge/osx-64/libsqlite-3.48.0-hdb6dae5_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/libffi-3.4.6-h281671d_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/liblzma-5.6.4-hd471939_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/libsqlite-3.49.1-hdb6dae5_1.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - - conda: https://repo.prefix.dev/conda-forge/osx-64/ncurses-6.5-h0622a9a_2.conda - - conda: https://repo.prefix.dev/conda-forge/osx-64/openssl-3.4.0-hc426f3f_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/openssl-3.4.1-hc426f3f_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.10.6-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/pydantic-core-2.27.2-py311h3b9c2be_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-settings-2.8.1-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://repo.prefix.dev/conda-forge/osx-64/python-3.11.11-h9ccd52b_1_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/python-3.11.11-h9ccd52b_2_cpython.conda - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dotenv-1.0.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/python_abi-3.11-5_cp311.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2025.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/pyyaml-6.0.2-py311ha3cf9ac_2.conda - - conda: https://repo.prefix.dev/conda-forge/osx-64/rattler-build-0.35.6-h625f1b7_0.conda - - conda: https://repo.prefix.dev/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/rattler-build-0.38.0-h05de357_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/readchar-4.2.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/readline-8.2-h7cca4af_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.36.2-pyh29332c3_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda - - conda: https://repo.prefix.dev/conda-forge/osx-64/rpds-py-0.22.3-py311h3b9c2be_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/rpds-py-0.23.1-py311hab9d7c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.2-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-0.15.2-pyhff008b6_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-0.15.2-pyh29332c3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-standard-0.15.2-h801b22e_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda @@ -235,31 +281,30 @@ environments: - pypi: https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3b/95/88ed47cb7da88569a78b7d6fb9420298df7e99997810c844a924d96d3c08/empy-3.3.4.tar.gz - - pypi: https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/22/32/d0fbc4383a6a213d315c39dda9107f81654d9941c43d6c687e61995ec388/rosdistro-1.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/c1/b0616243c1f922252ceb4513c22abefc1773cf372bfc0b6f7e59c2829f96/rospkg-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/20/84/80203abff8ea4993a87d823a5f632e4d92831ef75d404c9fc78d0176d2b5/ruamel.yaml.clib-0.2.12.tar.gz - pypi: git+https://github.com/robostack/vinca?rev=cbb8eba834ce3834df552977d6b08c325a30768e#cbb8eba834ce3834df552977d6b08c325a30768e osx-arm64: - - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-cli-base-0.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.13.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-25.1.0-pyh71513ae_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/brotli-python-1.1.0-py311h3f08180_2.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda - - conda: https://repo.prefix.dev/conda-forge/osx-arm64/ca-certificates-2024.12.14-hf0a4a13_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/ca-certificates-2025.1.31-hf0a4a13_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2025.1.31-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/cffi-1.17.1-py311h3a79f62_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.2.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda @@ -270,33 +315,48 @@ environments: - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libcxx-19.1.7-ha82da77_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libexpat-2.6.4-h286801f_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/osx-arm64/liblzma-5.6.3-h39f12f2_1.conda - - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libsqlite-3.48.0-h3f77e49_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/liblzma-5.6.4-h39f12f2_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libsqlite-3.49.1-h3f77e49_1.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - - conda: https://repo.prefix.dev/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_2.conda - - conda: https://repo.prefix.dev/conda-forge/osx-arm64/openssl-3.4.0-h81ee809_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/openssl-3.4.1-h81ee809_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.10.6-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/pydantic-core-2.27.2-py311h3ff9189_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-settings-2.8.1-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://repo.prefix.dev/conda-forge/osx-arm64/python-3.11.11-hc22306f_1_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/python-3.11.11-hc22306f_2_cpython.conda - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dotenv-1.0.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/python_abi-3.11-5_cp311.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2025.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/pyyaml-6.0.2-py311h4921393_2.conda - - conda: https://repo.prefix.dev/conda-forge/osx-arm64/rattler-build-0.35.6-h3ab7716_0.conda - - conda: https://repo.prefix.dev/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/rattler-build-0.38.0-h8dba533_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/readchar-4.2.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/readline-8.2-h1d1bf99_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.36.2-pyh29332c3_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda - - conda: https://repo.prefix.dev/conda-forge/osx-arm64/rpds-py-0.22.3-py311h3ff9189_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/rpds-py-0.23.1-py311hc9d6b66_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.2-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-0.15.2-pyhff008b6_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-0.15.2-pyh29332c3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-standard-0.15.2-h801b22e_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda @@ -308,33 +368,32 @@ environments: - pypi: https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3b/95/88ed47cb7da88569a78b7d6fb9420298df7e99997810c844a924d96d3c08/empy-3.3.4.tar.gz - - pypi: https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/22/32/d0fbc4383a6a213d315c39dda9107f81654d9941c43d6c687e61995ec388/rosdistro-1.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/c1/b0616243c1f922252ceb4513c22abefc1773cf372bfc0b6f7e59c2829f96/rospkg-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fb/8f/683c6ad562f558cbc4f7c029abcd9599148c51c54b5ef0f24f2638da9fbb/ruamel.yaml.clib-0.2.12-cp311-cp311-macosx_13_0_arm64.whl - pypi: git+https://github.com/robostack/vinca?rev=cbb8eba834ce3834df552977d6b08c325a30768e#cbb8eba834ce3834df552977d6b08c325a30768e win-64: - - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-cli-base-0.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.13.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-25.1.0-pyh71513ae_0.conda - conda: https://repo.prefix.dev/conda-forge/win-64/brotli-python-1.1.0-py311hda3d55a_2.conda - conda: https://repo.prefix.dev/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda - - conda: https://repo.prefix.dev/conda-forge/win-64/ca-certificates-2024.12.14-h56e8100_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/ca-certificates-2025.1.31-h56e8100_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2025.1.31-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/win-64/cffi-1.17.1-py311he736701_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/click-8.1.8-pyh7428d3b_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/cpython-3.11.11-py311hd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/cpython-3.11.11-py311hd8ed1ab_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/win-64/git-2.47.1-h57928b3_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/git-2.48.1-h57928b3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.2.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda @@ -343,43 +402,58 @@ environments: - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh5737063_1.conda - conda: https://repo.prefix.dev/conda-forge/win-64/libexpat-2.6.4-he0c23c2_0.conda - - conda: https://repo.prefix.dev/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/win-64/liblzma-5.6.3-h2466b09_1.conda - - conda: https://repo.prefix.dev/conda-forge/win-64/libsqlite-3.48.0-h67fdade_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/libffi-3.4.6-h537db12_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/liblzma-5.6.4-h2466b09_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/libsqlite-3.49.1-h67fdade_1.conda - conda: https://repo.prefix.dev/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda - conda: https://repo.prefix.dev/conda-forge/win-64/m2-conda-epoch-20230914-0_x86_64.conda - conda: https://repo.prefix.dev/conda-forge/noarch/m2-msys2-runtime-3.4.9.1-hd8ed1ab_4.conda - conda: https://repo.prefix.dev/conda-forge/noarch/m2-patch-2.7.6.2-hd8ed1ab_4.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - - conda: https://repo.prefix.dev/conda-forge/win-64/openssl-3.4.0-ha4e3fda_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/openssl-3.4.1-ha4e3fda_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.10.6-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/pydantic-core-2.27.2-py311h533ab2d_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-settings-2.8.1-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyh09c184e_7.conda - - conda: https://repo.prefix.dev/conda-forge/win-64/python-3.11.11-h3f84c4b_1_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/python-3.11.11-h3f84c4b_2_cpython.conda - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dotenv-1.0.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/win-64/python_abi-3.11-5_cp311.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2025.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/win-64/pywin32-307-py311hda3d55a_3.conda - conda: https://repo.prefix.dev/conda-forge/win-64/pyyaml-6.0.2-py311h5082efb_2.conda - - conda: https://repo.prefix.dev/conda-forge/win-64/rattler-build-0.35.6-ha8cf89e_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/rattler-build-0.38.0-ha073cba_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/readchar-4.2.0-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.36.2-pyh29332c3_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda - - conda: https://repo.prefix.dev/conda-forge/win-64/rpds-py-0.22.3-py311h533ab2d_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/rpds-py-0.23.1-py311ha250665_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.2-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/win-64/tk-8.6.13-h5226925_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-0.15.2-pyhff008b6_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-0.15.2-pyh29332c3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-standard-0.15.2-h801b22e_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda - conda: https://repo.prefix.dev/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda - - conda: https://repo.prefix.dev/conda-forge/win-64/vc-14.3-h5fd82a7_24.conda - - conda: https://repo.prefix.dev/conda-forge/win-64/vc14_runtime-14.42.34433-h6356254_24.conda - - conda: https://repo.prefix.dev/conda-forge/win-64/vs2015_runtime-14.42.34433-hfef2bbc_24.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/vc-14.3-hbf610ac_24.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/vc14_runtime-14.42.34438-hfd919c2_24.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/vs2015_runtime-14.42.34438-h7142326_24.conda - conda: https://repo.prefix.dev/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_8.conda - conda: https://repo.prefix.dev/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2 - conda: https://repo.prefix.dev/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda @@ -389,12 +463,8 @@ environments: - pypi: https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3b/95/88ed47cb7da88569a78b7d6fb9420298df7e99997810c844a924d96d3c08/empy-3.3.4.tar.gz - - pypi: https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/22/32/d0fbc4383a6a213d315c39dda9107f81654d9941c43d6c687e61995ec388/rosdistro-1.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/c1/b0616243c1f922252ceb4513c22abefc1773cf372bfc0b6f7e59c2829f96/rospkg-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl @@ -407,19 +477,22 @@ environments: linux-64: - conda: https://repo.prefix.dev/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - conda: https://repo.prefix.dev/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-cli-base-0.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.13.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-25.1.0-pyh71513ae_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/brotli-python-1.1.0-py311hfdbb021_2.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/ca-certificates-2024.12.14-hbcca054_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/ca-certificates-2025.1.31-hbcca054_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2025.1.31-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/cffi-1.17.1-py311hf29c0ef_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.2.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda @@ -427,45 +500,60 @@ environments: - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_4.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/liblzma-5.6.3-hb9d3cd8_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libffi-3.4.6-h2dba641_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libgcc-14.2.0-h767d61c_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libgomp-14.2.0-h767d61c_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/liblzma-5.6.4-hb9d3cd8_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/libsqlite-3.48.0-hee588c1_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libsqlite-3.49.1-hee588c1_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libstdcxx-14.2.0-h8f9b012_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_2.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/ncurses-6.5-h2d0b736_2.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/openssl-3.4.0-h7b32b05_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/openssl-3.4.1-h7b32b05_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/patchelf-0.17.2-h58526e2_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.10.6-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/pydantic-core-2.27.2-py311h9e33e62_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-settings-2.8.1-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/python-3.11.11-h9e4cc4f_1_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/python-3.11.11-h9e4cc4f_2_cpython.conda - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dotenv-1.0.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/python_abi-3.11-5_cp311.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2025.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/pyyaml-6.0.2-py311h2dc5d0c_2.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/rattler-build-0.35.6-hff40e2b_0.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/readline-8.2-h8228510_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/rattler-build-0.38.0-h159367c_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/readchar-4.2.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.36.2-pyh29332c3_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/rpds-py-0.22.3-py311h9e33e62_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/rpds-py-0.23.1-py311h687327b_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.2-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-0.15.2-pyhff008b6_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-0.15.2-pyh29332c3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-standard-0.15.2-h801b22e_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda @@ -475,19 +563,22 @@ environments: - conda: https://repo.prefix.dev/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda linux-aarch64: - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/_openmp_mutex-4.5-2_gnu.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-cli-base-0.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.13.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-25.1.0-pyh71513ae_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/brotli-python-1.1.0-py311h89d996e_2.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/bzip2-1.0.8-h68df207_7.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ca-certificates-2024.12.14-hcefe29a_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ca-certificates-2025.1.31-hcefe29a_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2025.1.31-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/cffi-1.17.1-py311h14e8bb7_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.2.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda @@ -495,45 +586,60 @@ environments: - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.43-h80caac9_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.43-h80caac9_4.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libexpat-2.6.4-h5ad3122_0.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libffi-3.4.2-h3557bc0_5.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgcc-14.2.0-he277a41_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgcc-ng-14.2.0-he9431aa_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgomp-14.2.0-he277a41_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/liblzma-5.6.3-h86ecc28_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libffi-3.4.6-he21f813_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgcc-14.2.0-he277a41_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgcc-ng-14.2.0-he9431aa_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgomp-14.2.0-he277a41_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/liblzma-5.6.4-h86ecc28_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libnsl-2.0.1-h31becfc_0.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libsqlite-3.48.0-h5eb1b54_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libstdcxx-14.2.0-h3f4de04_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libstdcxx-ng-14.2.0-hf1166c9_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libsqlite-3.49.1-h5eb1b54_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libstdcxx-14.2.0-h3f4de04_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libstdcxx-ng-14.2.0-hf1166c9_2.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libuuid-2.38.1-hb4cce97_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libxcrypt-4.4.36-h31becfc_1.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libzlib-1.3.1-h86ecc28_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ncurses-6.5-ha32ae93_2.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/openssl-3.4.0-hd08dc88_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ncurses-6.5-ha32ae93_3.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/openssl-3.4.1-hd08dc88_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/patchelf-0.17.2-h884eca8_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.10.6-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/pydantic-core-2.27.2-py311h0ca61a2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-settings-2.8.1-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/python-3.11.11-h1683364_1_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/python-3.11.11-h1683364_2_cpython.conda - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dotenv-1.0.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/python_abi-3.11-5_cp311.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2025.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/pyyaml-6.0.2-py311h58d527c_2.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rattler-build-0.35.6-h33857bb_0.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/readline-8.2-h8fc344f_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rattler-build-0.38.0-h112f5b8_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/readchar-4.2.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/readline-8.2-h8382b9d_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.36.2-pyh29332c3_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rpds-py-0.22.3-py311h7270cec_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rpds-py-0.23.1-py311h4346fff_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.2-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/tk-8.6.13-h194ca79_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-0.15.2-pyhff008b6_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-0.15.2-pyh29332c3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-standard-0.15.2-h801b22e_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda @@ -542,19 +648,22 @@ environments: - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/zstandard-0.23.0-py311hd5293d8_1.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/zstd-1.5.6-h02f22dd_0.conda osx-64: - - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-cli-base-0.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.13.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-25.1.0-pyh71513ae_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/brotli-python-1.1.0-py311hd89902b_2.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/bzip2-1.0.8-hfdf4475_7.conda - - conda: https://repo.prefix.dev/conda-forge/osx-64/ca-certificates-2024.12.14-h8857fd0_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/ca-certificates-2025.1.31-h8857fd0_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2025.1.31-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/cffi-1.17.1-py311h137bacd_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.2.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda @@ -564,34 +673,49 @@ environments: - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/libcxx-19.1.7-hf95d169_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/libexpat-2.6.4-h240833e_0.conda - - conda: https://repo.prefix.dev/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/osx-64/liblzma-5.6.3-hd471939_1.conda - - conda: https://repo.prefix.dev/conda-forge/osx-64/libsqlite-3.48.0-hdb6dae5_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/libffi-3.4.6-h281671d_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/liblzma-5.6.4-hd471939_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/libsqlite-3.49.1-hdb6dae5_1.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - - conda: https://repo.prefix.dev/conda-forge/osx-64/ncurses-6.5-h0622a9a_2.conda - - conda: https://repo.prefix.dev/conda-forge/osx-64/openssl-3.4.0-hc426f3f_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/openssl-3.4.1-hc426f3f_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.10.6-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/pydantic-core-2.27.2-py311h3b9c2be_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-settings-2.8.1-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://repo.prefix.dev/conda-forge/osx-64/python-3.11.11-h9ccd52b_1_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/python-3.11.11-h9ccd52b_2_cpython.conda - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dotenv-1.0.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/python_abi-3.11-5_cp311.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2025.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/pyyaml-6.0.2-py311ha3cf9ac_2.conda - - conda: https://repo.prefix.dev/conda-forge/osx-64/rattler-build-0.35.6-h625f1b7_0.conda - - conda: https://repo.prefix.dev/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/rattler-build-0.38.0-h05de357_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/readchar-4.2.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/readline-8.2-h7cca4af_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.36.2-pyh29332c3_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda - - conda: https://repo.prefix.dev/conda-forge/osx-64/rpds-py-0.22.3-py311h3b9c2be_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/rpds-py-0.23.1-py311hab9d7c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.2-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-0.15.2-pyhff008b6_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-0.15.2-pyh29332c3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-standard-0.15.2-h801b22e_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda @@ -600,19 +724,22 @@ environments: - conda: https://repo.prefix.dev/conda-forge/osx-64/zstandard-0.23.0-py311hdf6fcd6_1.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/zstd-1.5.6-h915ae27_0.conda osx-arm64: - - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-cli-base-0.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.13.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-25.1.0-pyh71513ae_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/brotli-python-1.1.0-py311h3f08180_2.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda - - conda: https://repo.prefix.dev/conda-forge/osx-arm64/ca-certificates-2024.12.14-hf0a4a13_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/ca-certificates-2025.1.31-hf0a4a13_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2025.1.31-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/cffi-1.17.1-py311h3a79f62_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.2.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda @@ -623,33 +750,48 @@ environments: - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libcxx-19.1.7-ha82da77_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libexpat-2.6.4-h286801f_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/osx-arm64/liblzma-5.6.3-h39f12f2_1.conda - - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libsqlite-3.48.0-h3f77e49_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/liblzma-5.6.4-h39f12f2_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libsqlite-3.49.1-h3f77e49_1.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - - conda: https://repo.prefix.dev/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_2.conda - - conda: https://repo.prefix.dev/conda-forge/osx-arm64/openssl-3.4.0-h81ee809_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/openssl-3.4.1-h81ee809_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.10.6-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/pydantic-core-2.27.2-py311h3ff9189_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-settings-2.8.1-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://repo.prefix.dev/conda-forge/osx-arm64/python-3.11.11-hc22306f_1_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/python-3.11.11-hc22306f_2_cpython.conda - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dotenv-1.0.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/python_abi-3.11-5_cp311.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2025.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/pyyaml-6.0.2-py311h4921393_2.conda - - conda: https://repo.prefix.dev/conda-forge/osx-arm64/rattler-build-0.35.6-h3ab7716_0.conda - - conda: https://repo.prefix.dev/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/rattler-build-0.38.0-h8dba533_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/readchar-4.2.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/readline-8.2-h1d1bf99_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.36.2-pyh29332c3_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda - - conda: https://repo.prefix.dev/conda-forge/osx-arm64/rpds-py-0.22.3-py311h3ff9189_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/rpds-py-0.23.1-py311hc9d6b66_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.2-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-0.15.2-pyhff008b6_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-0.15.2-pyh29332c3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-standard-0.15.2-h801b22e_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda @@ -658,21 +800,24 @@ environments: - conda: https://repo.prefix.dev/conda-forge/osx-arm64/zstandard-0.23.0-py311ha60cc69_1.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/zstd-1.5.6-hb46c0d2_0.conda win-64: - - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-cli-base-0.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.13.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-25.1.0-pyh71513ae_0.conda - conda: https://repo.prefix.dev/conda-forge/win-64/brotli-python-1.1.0-py311hda3d55a_2.conda - conda: https://repo.prefix.dev/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda - - conda: https://repo.prefix.dev/conda-forge/win-64/ca-certificates-2024.12.14-h56e8100_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/ca-certificates-2025.1.31-h56e8100_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2025.1.31-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/win-64/cffi-1.17.1-py311he736701_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/click-8.1.8-pyh7428d3b_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/cpython-3.11.11-py311hd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/cpython-3.11.11-py311hd8ed1ab_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/win-64/git-2.47.1-h57928b3_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/git-2.48.1-h57928b3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.2.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda @@ -681,48 +826,533 @@ environments: - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh5737063_1.conda - conda: https://repo.prefix.dev/conda-forge/win-64/libexpat-2.6.4-he0c23c2_0.conda - - conda: https://repo.prefix.dev/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 - - conda: https://repo.prefix.dev/conda-forge/win-64/liblzma-5.6.3-h2466b09_1.conda - - conda: https://repo.prefix.dev/conda-forge/win-64/libsqlite-3.48.0-h67fdade_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/libffi-3.4.6-h537db12_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/liblzma-5.6.4-h2466b09_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/libsqlite-3.49.1-h67fdade_1.conda - conda: https://repo.prefix.dev/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda - conda: https://repo.prefix.dev/conda-forge/win-64/m2-conda-epoch-20230914-0_x86_64.conda - conda: https://repo.prefix.dev/conda-forge/noarch/m2-msys2-runtime-3.4.9.1-hd8ed1ab_4.conda - conda: https://repo.prefix.dev/conda-forge/noarch/m2-patch-2.7.6.2-hd8ed1ab_4.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - - conda: https://repo.prefix.dev/conda-forge/win-64/openssl-3.4.0-ha4e3fda_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/openssl-3.4.1-ha4e3fda_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.10.6-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/pydantic-core-2.27.2-py311h533ab2d_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-settings-2.8.1-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyh09c184e_7.conda - - conda: https://repo.prefix.dev/conda-forge/win-64/python-3.11.11-h3f84c4b_1_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/python-3.11.11-h3f84c4b_2_cpython.conda - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dotenv-1.0.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/win-64/python_abi-3.11-5_cp311.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2025.1-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/win-64/pywin32-307-py311hda3d55a_3.conda - conda: https://repo.prefix.dev/conda-forge/win-64/pyyaml-6.0.2-py311h5082efb_2.conda - - conda: https://repo.prefix.dev/conda-forge/win-64/rattler-build-0.35.6-ha8cf89e_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/rattler-build-0.38.0-ha073cba_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/readchar-4.2.0-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.36.2-pyh29332c3_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda - - conda: https://repo.prefix.dev/conda-forge/win-64/rpds-py-0.22.3-py311h533ab2d_0.conda - - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/rpds-py-0.23.1-py311ha250665_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.2-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda - conda: https://repo.prefix.dev/conda-forge/win-64/tk-8.6.13-h5226925_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-0.15.2-pyhff008b6_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-0.15.2-pyh29332c3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-standard-0.15.2-h801b22e_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda - conda: https://repo.prefix.dev/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda - - conda: https://repo.prefix.dev/conda-forge/win-64/vc-14.3-h5fd82a7_24.conda - - conda: https://repo.prefix.dev/conda-forge/win-64/vc14_runtime-14.42.34433-h6356254_24.conda - - conda: https://repo.prefix.dev/conda-forge/win-64/vs2015_runtime-14.42.34433-hfef2bbc_24.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/vc-14.3-hbf610ac_24.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/vc14_runtime-14.42.34438-hfd919c2_24.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/vs2015_runtime-14.42.34438-h7142326_24.conda - conda: https://repo.prefix.dev/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_8.conda - conda: https://repo.prefix.dev/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2 - conda: https://repo.prefix.dev/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/win-64/zstandard-0.23.0-py311h53056dc_1.conda - conda: https://repo.prefix.dev/conda-forge/win-64/zstd-1.5.6-h0ea2cb4_0.conda + emscripten: + channels: + - url: https://repo.prefix.dev/conda-forge/ + indexes: + - https://pypi.org/simple + packages: + linux-64: + - conda: https://repo.prefix.dev/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-cli-base-0.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.13.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-25.1.0-pyh71513ae_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/brotli-python-1.1.0-py311hfdbb021_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/ca-certificates-2025.1.31-hbcca054_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2025.1.31-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/cffi-1.17.1-py311hf29c0ef_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.2.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_4.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libffi-3.4.6-h2dba641_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libgcc-14.2.0-h767d61c_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libgomp-14.2.0-h767d61c_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/liblzma-5.6.4-hb9d3cd8_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libsqlite-3.49.1-hee588c1_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libstdcxx-14.2.0-h8f9b012_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/openssl-3.4.1-h7b32b05_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/patchelf-0.17.2-h58526e2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.10.6-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/pydantic-core-2.27.2-py311h9e33e62_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-settings-2.8.1-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/python-3.11.11-h9e4cc4f_2_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dotenv-1.0.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/python_abi-3.11-5_cp311.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2025.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/pyyaml-6.0.2-py311h2dc5d0c_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/rattler-build-0.38.0-h159367c_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/readchar-4.2.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.36.2-pyh29332c3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/rpds-py-0.23.1-py311h687327b_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.2-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-0.15.2-pyhff008b6_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-0.15.2-pyh29332c3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-standard-0.15.2-h801b22e_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/zstandard-0.23.0-py311hbc35293_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda + - pypi: https://files.pythonhosted.org/packages/91/f7/86d933ec31f00450f513ef110fa9c0e5da4c6e2c992933a35c8d8fe7d01f/catkin_pkg-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3b/95/88ed47cb7da88569a78b7d6fb9420298df7e99997810c844a924d96d3c08/empy-3.3.4.tar.gz + - pypi: https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/32/d0fbc4383a6a213d315c39dda9107f81654d9941c43d6c687e61995ec388/rosdistro-1.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/c1/b0616243c1f922252ceb4513c22abefc1773cf372bfc0b6f7e59c2829f96/rospkg-1.6.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/68/6e/264c50ce2a31473a9fdbf4fa66ca9b2b17c7455b31ef585462343818bd6c/ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: git+https://github.com/nmarticorena/vinca?rev=a402143f0f55964ca0a41884702ce829e7f5013a#a402143f0f55964ca0a41884702ce829e7f5013a + linux-aarch64: + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/_openmp_mutex-4.5-2_gnu.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-cli-base-0.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.13.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-25.1.0-pyh71513ae_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/brotli-python-1.1.0-py311h89d996e_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/bzip2-1.0.8-h68df207_7.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ca-certificates-2025.1.31-hcefe29a_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2025.1.31-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/cffi-1.17.1-py311h14e8bb7_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.2.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.43-h80caac9_4.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libexpat-2.6.4-h5ad3122_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libffi-3.4.6-he21f813_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgcc-14.2.0-he277a41_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgcc-ng-14.2.0-he9431aa_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgomp-14.2.0-he277a41_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/liblzma-5.6.4-h86ecc28_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libnsl-2.0.1-h31becfc_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libsqlite-3.49.1-h5eb1b54_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libstdcxx-14.2.0-h3f4de04_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libstdcxx-ng-14.2.0-hf1166c9_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libuuid-2.38.1-hb4cce97_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libxcrypt-4.4.36-h31becfc_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libzlib-1.3.1-h86ecc28_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ncurses-6.5-ha32ae93_3.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/openssl-3.4.1-hd08dc88_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/patchelf-0.17.2-h884eca8_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.10.6-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/pydantic-core-2.27.2-py311h0ca61a2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-settings-2.8.1-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/python-3.11.11-h1683364_2_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dotenv-1.0.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/python_abi-3.11-5_cp311.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2025.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/pyyaml-6.0.2-py311h58d527c_2.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rattler-build-0.38.0-h112f5b8_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/readchar-4.2.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/readline-8.2-h8382b9d_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.36.2-pyh29332c3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rpds-py-0.23.1-py311h4346fff_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.2-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/tk-8.6.13-h194ca79_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-0.15.2-pyhff008b6_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-0.15.2-pyh29332c3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-standard-0.15.2-h801b22e_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/yaml-0.2.5-hf897c2e_2.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/zstandard-0.23.0-py311hd5293d8_1.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/zstd-1.5.6-h02f22dd_0.conda + - pypi: https://files.pythonhosted.org/packages/91/f7/86d933ec31f00450f513ef110fa9c0e5da4c6e2c992933a35c8d8fe7d01f/catkin_pkg-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3b/95/88ed47cb7da88569a78b7d6fb9420298df7e99997810c844a924d96d3c08/empy-3.3.4.tar.gz + - pypi: https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/32/d0fbc4383a6a213d315c39dda9107f81654d9941c43d6c687e61995ec388/rosdistro-1.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/c1/b0616243c1f922252ceb4513c22abefc1773cf372bfc0b6f7e59c2829f96/rospkg-1.6.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3c/d2/b79b7d695e2f21da020bd44c782490578f300dd44f0a4c57a92575758a76/ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux2014_aarch64.whl + - pypi: git+https://github.com/nmarticorena/vinca?rev=a402143f0f55964ca0a41884702ce829e7f5013a#a402143f0f55964ca0a41884702ce829e7f5013a + osx-64: + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-cli-base-0.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.13.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-25.1.0-pyh71513ae_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/brotli-python-1.1.0-py311hd89902b_2.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/bzip2-1.0.8-hfdf4475_7.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/ca-certificates-2025.1.31-h8857fd0_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2025.1.31-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/cffi-1.17.1-py311h137bacd_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.2.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/libcxx-19.1.7-hf95d169_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/libexpat-2.6.4-h240833e_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/libffi-3.4.6-h281671d_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/liblzma-5.6.4-hd471939_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/libsqlite-3.49.1-hdb6dae5_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/openssl-3.4.1-hc426f3f_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.10.6-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/pydantic-core-2.27.2-py311h3b9c2be_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-settings-2.8.1-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/python-3.11.11-h9ccd52b_2_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dotenv-1.0.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/python_abi-3.11-5_cp311.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2025.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/pyyaml-6.0.2-py311ha3cf9ac_2.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/rattler-build-0.38.0-h05de357_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/readchar-4.2.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/readline-8.2-h7cca4af_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.36.2-pyh29332c3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/rpds-py-0.23.1-py311hab9d7c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.2-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-0.15.2-pyhff008b6_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-0.15.2-pyh29332c3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-standard-0.15.2-h801b22e_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/yaml-0.2.5-h0d85af4_2.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/zstandard-0.23.0-py311hdf6fcd6_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/zstd-1.5.6-h915ae27_0.conda + - pypi: https://files.pythonhosted.org/packages/91/f7/86d933ec31f00450f513ef110fa9c0e5da4c6e2c992933a35c8d8fe7d01f/catkin_pkg-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3b/95/88ed47cb7da88569a78b7d6fb9420298df7e99997810c844a924d96d3c08/empy-3.3.4.tar.gz + - pypi: https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/32/d0fbc4383a6a213d315c39dda9107f81654d9941c43d6c687e61995ec388/rosdistro-1.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/c1/b0616243c1f922252ceb4513c22abefc1773cf372bfc0b6f7e59c2829f96/rospkg-1.6.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/20/84/80203abff8ea4993a87d823a5f632e4d92831ef75d404c9fc78d0176d2b5/ruamel.yaml.clib-0.2.12.tar.gz + - pypi: git+https://github.com/nmarticorena/vinca?rev=a402143f0f55964ca0a41884702ce829e7f5013a#a402143f0f55964ca0a41884702ce829e7f5013a + osx-arm64: + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-cli-base-0.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.13.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-25.1.0-pyh71513ae_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/brotli-python-1.1.0-py311h3f08180_2.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/ca-certificates-2025.1.31-hf0a4a13_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2025.1.31-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/cffi-1.17.1-py311h3a79f62_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.2.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libcxx-19.1.7-ha82da77_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libexpat-2.6.4-h286801f_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/liblzma-5.6.4-h39f12f2_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libsqlite-3.49.1-h3f77e49_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/openssl-3.4.1-h81ee809_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.10.6-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/pydantic-core-2.27.2-py311h3ff9189_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-settings-2.8.1-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/python-3.11.11-hc22306f_2_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dotenv-1.0.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/python_abi-3.11-5_cp311.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2025.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/pyyaml-6.0.2-py311h4921393_2.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/rattler-build-0.38.0-h8dba533_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/readchar-4.2.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/readline-8.2-h1d1bf99_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.36.2-pyh29332c3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/rpds-py-0.23.1-py311hc9d6b66_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.2-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-0.15.2-pyhff008b6_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-0.15.2-pyh29332c3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-standard-0.15.2-h801b22e_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/yaml-0.2.5-h3422bc3_2.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/zstandard-0.23.0-py311ha60cc69_1.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/zstd-1.5.6-hb46c0d2_0.conda + - pypi: https://files.pythonhosted.org/packages/91/f7/86d933ec31f00450f513ef110fa9c0e5da4c6e2c992933a35c8d8fe7d01f/catkin_pkg-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3b/95/88ed47cb7da88569a78b7d6fb9420298df7e99997810c844a924d96d3c08/empy-3.3.4.tar.gz + - pypi: https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/32/d0fbc4383a6a213d315c39dda9107f81654d9941c43d6c687e61995ec388/rosdistro-1.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/c1/b0616243c1f922252ceb4513c22abefc1773cf372bfc0b6f7e59c2829f96/rospkg-1.6.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fb/8f/683c6ad562f558cbc4f7c029abcd9599148c51c54b5ef0f24f2638da9fbb/ruamel.yaml.clib-0.2.12-cp311-cp311-macosx_13_0_arm64.whl + - pypi: git+https://github.com/nmarticorena/vinca?rev=a402143f0f55964ca0a41884702ce829e7f5013a#a402143f0f55964ca0a41884702ce829e7f5013a + win-64: + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-cli-base-0.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.13.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-25.1.0-pyh71513ae_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/brotli-python-1.1.0-py311hda3d55a_2.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/ca-certificates-2025.1.31-h56e8100_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2025.1.31-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/cffi-1.17.1-py311he736701_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/click-8.1.8-pyh7428d3b_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/conda-package-streaming-0.11.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/cpython-3.11.11-py311hd8ed1ab_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/win-64/git-2.48.1-h57928b3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.2.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/jupyter_core-5.7.2-pyh5737063_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/libexpat-2.6.4-he0c23c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/libffi-3.4.6-h537db12_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/liblzma-5.6.4-h2466b09_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/libsqlite-3.49.1-h67fdade_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/m2-conda-epoch-20230914-0_x86_64.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/m2-msys2-runtime-3.4.9.1-hd8ed1ab_4.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/m2-patch-2.7.6.2-hd8ed1ab_4.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/openssl-3.4.1-ha4e3fda_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.10.6-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/pydantic-core-2.27.2-py311h533ab2d_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-settings-2.8.1-pyh3cfb1c2_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pysocks-1.7.1-pyh09c184e_7.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/python-3.11.11-h3f84c4b_2_cpython.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-dotenv-1.0.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/python_abi-3.11-5_cp311.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2025.1-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/pywin32-307-py311hda3d55a_3.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/pyyaml-6.0.2-py311h5082efb_2.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/rattler-build-0.38.0-ha073cba_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/readchar-4.2.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.36.2-pyh29332c3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/rpds-py-0.23.1-py311ha250665_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.2-pyhff2d567_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/tk-8.6.13-h5226925_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-0.15.2-pyhff008b6_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-0.15.2-pyh29332c3_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-standard-0.15.2-h801b22e_0.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/vc-14.3-hbf610ac_24.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/vc14_runtime-14.42.34438-hfd919c2_24.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/vs2015_runtime-14.42.34438-h7142326_24.conda + - conda: https://repo.prefix.dev/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_8.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/yaml-0.2.5-h8ffe710_2.tar.bz2 + - conda: https://repo.prefix.dev/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/zstandard-0.23.0-py311h53056dc_1.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/zstd-1.5.6-h0ea2cb4_0.conda + - pypi: https://files.pythonhosted.org/packages/91/f7/86d933ec31f00450f513ef110fa9c0e5da4c6e2c992933a35c8d8fe7d01f/catkin_pkg-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3b/95/88ed47cb7da88569a78b7d6fb9420298df7e99997810c844a924d96d3c08/empy-3.3.4.tar.gz + - pypi: https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/32/d0fbc4383a6a213d315c39dda9107f81654d9941c43d6c687e61995ec388/rosdistro-1.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/c1/b0616243c1f922252ceb4513c22abefc1773cf372bfc0b6f7e59c2829f96/rospkg-1.6.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b4/4f/b52f634c9548a9291a70dfce26ca7ebce388235c93588a1068028ea23fcc/ruamel.yaml.clib-0.2.12-cp311-cp311-win_amd64.whl + - pypi: git+https://github.com/nmarticorena/vinca?rev=a402143f0f55964ca0a41884702ce829e7f5013a#a402143f0f55964ca0a41884702ce829e7f5013a packages: - conda: https://repo.prefix.dev/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726 @@ -758,30 +1388,63 @@ packages: purls: [] size: 23712 timestamp: 1650670790230 -- conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda - sha256: 28218e24143d81597b0165977f230301cd8a4e3bb09ac2b5fac6052b71e84998 - md5: 92b52daa795f159861487b3be6a2a7ea +- conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-cli-base-0.5.2-pyhd8ed1ab_0.conda + sha256: 71686843e664a333e82c6d1cf07c98e57519218b0aaba12f00109204d082ab73 + md5: 646956ef9e853e03045639b57b7ece7b depends: + - click + - pydantic-settings >=2.3 + - python >=3.9 + - readchar + - rich + - tomli + - typer + constrains: + - anaconda-client >=1.13.0 + - anaconda-cloud-cli >=0.3.0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/anaconda-cli-base?source=hash-mapping + size: 17608 + timestamp: 1740833333114 +- conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.13.0-pyhd8ed1ab_0.conda + sha256: 0579025789d9d5b21bf1070246d7823966c7fa77ac16466f60120f2cc682c632 + md5: efd4aa9d62e17351054a4d6ec096d7a3 + depends: + - anaconda-cli-base >=0.4.0 - conda-package-handling >=1.7.3 + - conda-package-streaming >=0.9.0 - defusedxml >=0.7.1 - nbformat >=4.4.0 - platformdirs >=3.10.0,<5.0 - - python >=3.8 + - python >=3.9 - python-dateutil >=2.6.1 - pytz >=2021.3 - pyyaml >=3.12 - requests >=2.20.0 - requests-toolbelt >=0.9.1 - setuptools >=58.0.4 - - six >=1.15.0 - tqdm >=4.56.0 - urllib3 >=1.26.4 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/anaconda-client?source=hash-mapping - size: 72548 - timestamp: 1719693590229 + size: 74960 + timestamp: 1741326600297 +- conda: https://repo.prefix.dev/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda + sha256: e0ea1ba78fbb64f17062601edda82097fcf815012cf52bb704150a2668110d48 + md5: 2934f256a8acfe48f6ebb4fce6cde29c + depends: + - python >=3.9 + - typing-extensions >=4.0.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/annotated-types?source=hash-mapping + size: 18074 + timestamp: 1733247158254 - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-25.1.0-pyh71513ae_0.conda sha256: 1f267886522dfb9ae4e5ebbc3135b5eb13cff27bdbfe8d881a4d893459166ab4 md5: 2cc3f588512f04f3a0c64b4e9bedc02d @@ -930,41 +1593,41 @@ packages: purls: [] size: 54927 timestamp: 1720974860185 -- conda: https://repo.prefix.dev/conda-forge/linux-64/ca-certificates-2024.12.14-hbcca054_0.conda - sha256: 1afd7274cbc9a334d6d0bc62fa760acc7afdaceb0b91a8df370ec01fd75dc7dd - md5: 720523eb0d6a9b0f6120c16b2aa4e7de +- conda: https://repo.prefix.dev/conda-forge/linux-64/ca-certificates-2025.1.31-hbcca054_0.conda + sha256: bf832198976d559ab44d6cdb315642655547e26d826e34da67cbee6624cda189 + md5: 19f3a56f68d2fd06c516076bff482c52 license: ISC purls: [] - size: 157088 - timestamp: 1734208393264 -- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ca-certificates-2024.12.14-hcefe29a_0.conda - sha256: ad7b43211051332a5a4e788bb4619a2d0ecb5be73e0f76be17f733a87d7effd1 - md5: 83b4ad1e6dc14df5891f3fcfdeb44351 + size: 158144 + timestamp: 1738298224464 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ca-certificates-2025.1.31-hcefe29a_0.conda + sha256: 66c6408ee461593cfdb2d78d82e6ed74d04a04ccb51df3ef8a5f35148c9c6eec + md5: 462cb166cd2e26a396f856510a3aff67 license: ISC purls: [] - size: 157096 - timestamp: 1734209301744 -- conda: https://repo.prefix.dev/conda-forge/osx-64/ca-certificates-2024.12.14-h8857fd0_0.conda - sha256: ddaafdcd1b8ace6ffeea22b6824ca9db8a64cf0a2652a11d7554ece54935fa06 - md5: b7b887091c99ed2e74845e75e9128410 + size: 158290 + timestamp: 1738299057652 +- conda: https://repo.prefix.dev/conda-forge/osx-64/ca-certificates-2025.1.31-h8857fd0_0.conda + sha256: 42e911ee2d8808eacedbec46d99b03200a6138b8e8a120bd8acabe1cac41c63b + md5: 3418b6c8cac3e71c0bc089fc5ea53042 license: ISC purls: [] - size: 156925 - timestamp: 1734208413176 -- conda: https://repo.prefix.dev/conda-forge/osx-arm64/ca-certificates-2024.12.14-hf0a4a13_0.conda - sha256: 256be633fd0882ccc1a7a32bc278547e1703f85082c0789a87a603ee3ab8fb82 - md5: 7cb381a6783d91902638e4ed1ebd478e + size: 158408 + timestamp: 1738298385933 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/ca-certificates-2025.1.31-hf0a4a13_0.conda + sha256: 7e12816618173fe70f5c638b72adf4bfd4ddabf27794369bb17871c5bb75b9f9 + md5: 3569d6a9141adc64d2fe4797f3289e06 license: ISC purls: [] - size: 157091 - timestamp: 1734208344343 -- conda: https://repo.prefix.dev/conda-forge/win-64/ca-certificates-2024.12.14-h56e8100_0.conda - sha256: 424d82db36cd26234bc4772426170efd60e888c2aed0099a257a95e131683a5e - md5: cb2eaeb88549ddb27af533eccf9a45c1 + size: 158425 + timestamp: 1738298167688 +- conda: https://repo.prefix.dev/conda-forge/win-64/ca-certificates-2025.1.31-h56e8100_0.conda + sha256: 1bedccdf25a3bd782d6b0e57ddd97cdcda5501716009f2de4479a779221df155 + md5: 5304a31607974dfc2110dfbb662ed092 license: ISC purls: [] - size: 157422 - timestamp: 1734208404685 + size: 158690 + timestamp: 1738298232550 - pypi: https://files.pythonhosted.org/packages/91/f7/86d933ec31f00450f513ef110fa9c0e5da4c6e2c992933a35c8d8fe7d01f/catkin_pkg-1.0.0-py3-none-any.whl name: catkin-pkg version: 1.0.0 @@ -985,16 +1648,16 @@ packages: - flake8-quotes ; extra == 'test' - pytest ; extra == 'test' requires_python: '>=3.6' -- conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda - sha256: 048c16a9cbcb1fbad02083414d3bc7c1d0eea4b39aee6aa6bf8d1d5089ca8bad - md5: 6feb87357ecd66733be3279f16a8c400 +- conda: https://repo.prefix.dev/conda-forge/noarch/certifi-2025.1.31-pyhd8ed1ab_0.conda + sha256: 42a78446da06a2568cb13e69be3355169fbd0ea424b00fc80b7d840f5baaacf3 + md5: c207fa5ac7ea99b149344385a9c0880d depends: - python >=3.9 license: ISC purls: - - pkg:pypi/certifi?source=hash-mapping - size: 161642 - timestamp: 1734380604767 + - pkg:pypi/certifi?source=compressed-mapping + size: 162721 + timestamp: 1739515973129 - conda: https://repo.prefix.dev/conda-forge/linux-64/cffi-1.17.1-py311hf29c0ef_0.conda sha256: bc47aa39c8254e9e487b8bcd74cfa3b4a3de3648869eb1a0b89905986b668e35 md5: 55553ecd5328336368db611f350b7039 @@ -1084,6 +1747,31 @@ packages: - pkg:pypi/charset-normalizer?source=hash-mapping size: 47438 timestamp: 1735929811779 +- conda: https://repo.prefix.dev/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda + sha256: c920d23cd1fcf565031c679adb62d848af60d6fbb0edc2d50ba475cea4f0d8ab + md5: f22f4d4970e09d68a10b922cbb0408d3 + depends: + - __unix + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/click?source=hash-mapping + size: 84705 + timestamp: 1734858922844 +- conda: https://repo.prefix.dev/conda-forge/noarch/click-8.1.8-pyh7428d3b_0.conda + sha256: c889ed359ae47eead4ffe8927b7206b22c55e67d6e74a9044c23736919d61e8d + md5: 90e5571556f7a45db92ee51cb8f97af6 + depends: + - __win + - colorama + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/click?source=hash-mapping + size: 85169 + timestamp: 1734858972635 - conda: https://repo.prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda sha256: ab29d57dc70786c1269633ba3dff20288b81664d3ff8d21af995742e2bb03287 md5: 962b9857ee8e7018c22f2776ffa0b2d7 @@ -1121,17 +1809,17 @@ packages: - pkg:pypi/conda-package-streaming?source=hash-mapping size: 20582 timestamp: 1729004160440 -- conda: https://repo.prefix.dev/conda-forge/noarch/cpython-3.11.11-py311hd8ed1ab_1.conda +- conda: https://repo.prefix.dev/conda-forge/noarch/cpython-3.11.11-py311hd8ed1ab_2.conda noarch: generic - sha256: b9bb4486ba7b81d7264e92f346c9fa2d4a6c9678c28b33fb5d1652ecc7f82e26 - md5: 6aab9c45010dc5ed92215f89cdafa201 + sha256: 52e462716ff6b062bf6992f9e95fcb65a0b95a47db73f0478bd0ceab8a37036a + md5: fb7bc3f1bccb39021a53309e83bce28d depends: - python 3.11.11.* - python_abi * *_cp311 license: Python-2.0 purls: [] - size: 46068 - timestamp: 1733407866862 + size: 46889 + timestamp: 1741034069952 - conda: https://repo.prefix.dev/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 sha256: 9717a059677553562a8f38ff07f3b9f61727bd614f505658b0a5ecbcf8df89be md5: 961b3a227b437d82ad7054484cfa71b2 @@ -1157,26 +1845,26 @@ packages: name: empy version: 3.3.4 sha256: 73ac49785b601479df4ea18a7c79bc1304a8a7c34c02b9472cf1206ae88f01b3 -- conda: https://repo.prefix.dev/conda-forge/win-64/git-2.47.1-h57928b3_0.conda - sha256: e140c2348b2a967bb7259c22420201e9dcac5b75aca3881e30f2a3f6c88e44d0 - md5: 84cd6e6a2d60974df8c954eafdf72f2b +- conda: https://repo.prefix.dev/conda-forge/win-64/git-2.48.1-h57928b3_0.conda + sha256: 706425ef0b18d23edcd3c6791e8db9b5fbcc01466063e5c7ef3ce08db78a0fa6 + md5: 9e4f02797e0dc75bbd556139109f79d2 license: GPL-2.0-or-later and LGPL-2.1-or-later purls: [] - size: 122064793 - timestamp: 1732612079527 -- conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda - sha256: 843ddad410c370672a8250470697027618f104153612439076d4d7b91eeb7b5c - md5: 825927dc7b0f287ef8d4d0011bb113b1 + size: 123514548 + timestamp: 1739540066099 +- conda: https://repo.prefix.dev/conda-forge/noarch/h2-4.2.0-pyhd8ed1ab_0.conda + sha256: 0aa1cdc67a9fe75ea95b5644b734a756200d6ec9d0dff66530aec3d1c1e9df75 + md5: b4754fb1bdcb70c8fd54f918301582c6 depends: - - hpack >=4.0,<5 - - hyperframe >=6.0,<7 + - hpack >=4.1,<5 + - hyperframe >=6.1,<7 - python >=3.9 license: MIT license_family: MIT purls: - pkg:pypi/h2?source=hash-mapping - size: 52000 - timestamp: 1733298867359 + size: 53888 + timestamp: 1738578623567 - conda: https://repo.prefix.dev/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda sha256: 6ad78a180576c706aabeb5b4c8ceb97c0cb25f1e112d76495bff23e3779948ba md5: 0a802cb9888dd14eeefc611f05c40b6e @@ -1283,9 +1971,9 @@ packages: - pkg:pypi/jupyter-core?source=hash-mapping size: 58269 timestamp: 1727164026641 -- conda: https://repo.prefix.dev/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda - sha256: 7c91cea91b13f4314d125d1bedb9d03a29ebbd5080ccdea70260363424646dbe - md5: 048b02e3962f066da18efe3a21b77672 +- conda: https://repo.prefix.dev/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_4.conda + sha256: db73f38155d901a610b2320525b9dd3b31e4949215c870685fd92ea61b5ce472 + md5: 01f8d123c96816249efd255a31ad7712 depends: - __glibc >=2.17,<3.0.a0 constrains: @@ -1293,18 +1981,18 @@ packages: license: GPL-3.0-only license_family: GPL purls: [] - size: 669211 - timestamp: 1729655358674 -- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.43-h80caac9_2.conda - sha256: 80ec7e8f006196808fac5bd4b3773a652847f97bbf08044cd87731424ac64f8b - md5: fcbde5ea19d55468953bf588770c0501 + size: 671240 + timestamp: 1740155456116 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.43-h80caac9_4.conda + sha256: 016832a70b0aa97e1c4e47e23c00b0c34def679de25146736df353199f684f0d + md5: 80c9ad5e05e91bb6c0967af3880c9742 constrains: - binutils_impl_linux-aarch64 2.43 license: GPL-3.0-only license_family: GPL purls: [] - size: 698245 - timestamp: 1729655345825 + size: 699058 + timestamp: 1740155620594 - conda: https://repo.prefix.dev/conda-forge/osx-64/libcxx-19.1.7-hf95d169_0.conda sha256: 6b2fa3fb1e8cd2000b0ed259e0c4e49cbef7b76890157fac3e494bc659a20330 md5: 4b8f8dc448d814169dbc58fc7286057d @@ -1388,34 +2076,37 @@ packages: purls: [] size: 139068 timestamp: 1730967442102 -- conda: https://repo.prefix.dev/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 - sha256: ab6e9856c21709b7b517e940ae7028ae0737546122f83c2aa5d692860c3b149e - md5: d645c6d2ac96843a2bfaccd2d62b3ac3 +- conda: https://repo.prefix.dev/conda-forge/linux-64/libffi-3.4.6-h2dba641_0.conda + sha256: 67a6c95e33ebc763c1adc3455b9a9ecde901850eb2fceb8e646cc05ef3a663da + md5: e3eb7806380bc8bcecba6d749ad5f026 depends: - - libgcc-ng >=9.4.0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 license: MIT license_family: MIT purls: [] - size: 58292 - timestamp: 1636488182923 -- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libffi-3.4.2-h3557bc0_5.tar.bz2 - sha256: 7e9258a102480757fe3faeb225a3ca04dffd10fecd2a958c65cdb4cdf75f2c3c - md5: dddd85f4d52121fab0a8b099c5e06501 + size: 53415 + timestamp: 1739260413716 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libffi-3.4.6-he21f813_0.conda + sha256: 41568066beefe7b319ff27d85952242e5b77fb753d705b8716041959e17c35c2 + md5: 966084fccf3ad62a3160666cda869f28 depends: - - libgcc-ng >=9.4.0 + - libgcc >=13 license: MIT license_family: MIT purls: [] - size: 59450 - timestamp: 1636488255090 -- conda: https://repo.prefix.dev/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 - sha256: 7a2d27a936ceee6942ea4d397f9c7d136f12549d86f7617e8b6bad51e01a941f - md5: ccb34fb14960ad8b125962d3d79b31a9 + size: 51513 + timestamp: 1739260449772 +- conda: https://repo.prefix.dev/conda-forge/osx-64/libffi-3.4.6-h281671d_0.conda + sha256: 7805fdc536a3da7fb63dc48e040105cd4260c69a1d2bf5804dadd31bde8bab51 + md5: b8667b0d0400b8dcb6844d8e06b2027d + depends: + - __osx >=10.13 license: MIT license_family: MIT purls: [] - size: 51348 - timestamp: 1636488394370 + size: 47258 + timestamp: 1739260651925 - conda: https://repo.prefix.dev/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 sha256: 41b3d13efb775e340e4dba549ab5c029611ea6918703096b2eaa9c015c0750ca md5: 086914b672be056eb70fd4285b6783b6 @@ -1424,140 +2115,131 @@ packages: purls: [] size: 39020 timestamp: 1636488587153 -- conda: https://repo.prefix.dev/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 - sha256: 1951ab740f80660e9bc07d2ed3aefb874d78c107264fd810f24a1a6211d4b1a5 - md5: 2c96d1b6915b408893f9472569dee135 +- conda: https://repo.prefix.dev/conda-forge/win-64/libffi-3.4.6-h537db12_0.conda + sha256: 77922d8dd2faf88ac6accaeebf06409d1820486fde710cff6b554d12273e46be + md5: 31d5107f75b2f204937728417e2e39e5 depends: - - vc >=14.1,<15.0a0 - - vs2015_runtime >=14.16.27012 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 license: MIT license_family: MIT purls: [] - size: 42063 - timestamp: 1636489106777 -- conda: https://repo.prefix.dev/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda - sha256: 53eb8a79365e58849e7b1a068d31f4f9e718dc938d6f2c03e960345739a03569 - md5: 3cb76c3f10d3bc7f1105b2fc9db984df + size: 40830 + timestamp: 1739260917585 +- conda: https://repo.prefix.dev/conda-forge/linux-64/libgcc-14.2.0-h767d61c_2.conda + sha256: 3a572d031cb86deb541d15c1875aaa097baefc0c580b54dc61f5edab99215792 + md5: ef504d1acbd74b7cc6849ef8af47dd03 depends: - - _libgcc_mutex 0.1 conda_forge + - __glibc >=2.17,<3.0.a0 - _openmp_mutex >=4.5 constrains: - - libgomp 14.2.0 h77fa898_1 - - libgcc-ng ==14.2.0=*_1 + - libgomp 14.2.0 h767d61c_2 + - libgcc-ng ==14.2.0=*_2 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 848745 - timestamp: 1729027721139 -- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgcc-14.2.0-he277a41_1.conda - sha256: 5d56757ccad208c79214395b00d006d8d18929a4ba49c47bd9460789a7620943 - md5: 511b511c5445e324066c3377481bcab8 + size: 847885 + timestamp: 1740240653082 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgcc-14.2.0-he277a41_2.conda + sha256: a57f7f9ba2a12f56eafdcd25b6d75f7be10b8fc1a802a58b76a77ca8c66f4503 + md5: 6b4268a60b10f29257b51b9b67ff8d76 depends: - _openmp_mutex >=4.5 constrains: - - libgcc-ng ==14.2.0=*_1 - - libgomp 14.2.0 he277a41_1 + - libgcc-ng ==14.2.0=*_2 + - libgomp 14.2.0 he277a41_2 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 535243 - timestamp: 1729089435134 -- conda: https://repo.prefix.dev/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda - sha256: 3a76969c80e9af8b6e7a55090088bc41da4cffcde9e2c71b17f44d37b7cb87f7 - md5: e39480b9ca41323497b05492a63bc35b + size: 535507 + timestamp: 1740241069780 +- conda: https://repo.prefix.dev/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_2.conda + sha256: fb7558c328b38b2f9d2e412c48da7890e7721ba018d733ebdfea57280df01904 + md5: a2222a6ada71fb478682efe483ce0f92 depends: - - libgcc 14.2.0 h77fa898_1 + - libgcc 14.2.0 h767d61c_2 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 54142 - timestamp: 1729027726517 -- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgcc-ng-14.2.0-he9431aa_1.conda - sha256: 9b5cf168a6c7361cae869cb74b716766ee7c6d6b3f6172b32ba9bf91135efdc4 - md5: 0694c249c61469f2c0f7e2990782af21 + size: 53758 + timestamp: 1740240660904 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgcc-ng-14.2.0-he9431aa_2.conda + sha256: 9647f75cddc18b07eebe6e1f21500eed50a6af2c43c84e831b4c7a597e10d226 + md5: 692c2bb75f32cfafb6799cf6d1c5d0e0 depends: - - libgcc 14.2.0 he277a41_1 + - libgcc 14.2.0 he277a41_2 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 54104 - timestamp: 1729089444587 -- conda: https://repo.prefix.dev/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda - sha256: 1911c29975ec99b6b906904040c855772ccb265a1c79d5d75c8ceec4ed89cd63 - md5: cc3573974587f12dda90d96e3e55a702 + size: 53622 + timestamp: 1740241074834 +- conda: https://repo.prefix.dev/conda-forge/linux-64/libgomp-14.2.0-h767d61c_2.conda + sha256: 1a3130e0b9267e781b89399580f3163632d59fe5b0142900d63052ab1a53490e + md5: 06d02030237f4d5b3d9a7e7d348fe3c6 depends: - - _libgcc_mutex 0.1 conda_forge + - __glibc >=2.17,<3.0.a0 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 460992 - timestamp: 1729027639220 -- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgomp-14.2.0-he277a41_1.conda - sha256: 5aa53874a5e57a00f2e0c2e2910684eb674429cd5fcb803619b226a73e89aedf - md5: 376f0e73abbda6d23c0cb749adc195ef + size: 459862 + timestamp: 1740240588123 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libgomp-14.2.0-he277a41_2.conda + sha256: 4e303711fb7413bf98995beac58e731073099d7a669a3b81e49330ca8da05174 + md5: b11c09d9463daf4cae492d29806b1889 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 463521 - timestamp: 1729089357313 -- conda: https://repo.prefix.dev/conda-forge/linux-64/liblzma-5.6.3-hb9d3cd8_1.conda - sha256: e6e425252f3839e2756e4af1ea2074dffd3396c161bf460629f9dfd6a65f15c6 - md5: 2ecf2f1c7e4e21fcfe6423a51a992d84 + size: 462783 + timestamp: 1740241005079 +- conda: https://repo.prefix.dev/conda-forge/linux-64/liblzma-5.6.4-hb9d3cd8_0.conda + sha256: cad52e10319ca4585bc37f0bc7cce99ec7c15dc9168e42ccb96b741b0a27db3f + md5: 42d5b6a0f30d3c10cd88cb8584fda1cb depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 - constrains: - - xz ==5.6.3=*_1 license: 0BSD purls: [] - size: 111132 - timestamp: 1733407410083 -- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/liblzma-5.6.3-h86ecc28_1.conda - sha256: d1cce0b7d62d1e54e2164d3e0667ee808efc6c3870256e5b47a150cd0bf46824 - md5: eb08b903681f9f2432c320e8ed626723 + size: 111357 + timestamp: 1738525339684 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/liblzma-5.6.4-h86ecc28_0.conda + sha256: 96413664f0fade54a4931940d18749cfc8e6308349dbb0cb83adb2394ca1f730 + md5: b88244e0a115cc34f7fbca9b11248e76 depends: - libgcc >=13 - constrains: - - xz ==5.6.3=*_1 license: 0BSD purls: [] - size: 124138 - timestamp: 1733409137214 -- conda: https://repo.prefix.dev/conda-forge/osx-64/liblzma-5.6.3-hd471939_1.conda - sha256: c70639ff3cb034a8e31cb081c907879b6a639bb12b0e090069a68eb69125b10e - md5: f9e9205fed9c664421c1c09f0b90ce6d + size: 124197 + timestamp: 1738528201520 +- conda: https://repo.prefix.dev/conda-forge/osx-64/liblzma-5.6.4-hd471939_0.conda + sha256: a895b5b16468a6ed436f022d72ee52a657f9b58214b91fabfab6230e3592a6dd + md5: db9d7b0152613f097cdb61ccf9f70ef5 depends: - __osx >=10.13 - constrains: - - xz ==5.6.3=*_1 license: 0BSD purls: [] - size: 103745 - timestamp: 1733407504892 -- conda: https://repo.prefix.dev/conda-forge/osx-arm64/liblzma-5.6.3-h39f12f2_1.conda - sha256: d863b8257406918ffdc50ae65502f2b2d6cede29404d09a094f59509d6a0aaf1 - md5: b2553114a7f5e20ccd02378a77d836aa + size: 103749 + timestamp: 1738525448522 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/liblzma-5.6.4-h39f12f2_0.conda + sha256: 560c59d3834cc652a84fb45531bd335ad06e271b34ebc216e380a89798fe8e2c + md5: e3fd1f8320a100f2b210e690a57cd615 depends: - __osx >=11.0 - constrains: - - xz ==5.6.3=*_1 license: 0BSD purls: [] - size: 99129 - timestamp: 1733407496073 -- conda: https://repo.prefix.dev/conda-forge/win-64/liblzma-5.6.3-h2466b09_1.conda - sha256: 24d04bd55adfa44c421c99ce169df38cb1ad2bba5f43151bc847fc802496a1fa - md5: 015b9c0bd1eef60729ab577a38aaf0b5 + size: 98945 + timestamp: 1738525462560 +- conda: https://repo.prefix.dev/conda-forge/win-64/liblzma-5.6.4-h2466b09_0.conda + sha256: 3f552b0bdefdd1459ffc827ea3bf70a6a6920c7879d22b6bfd0d73015b55227b + md5: c48f6ad0ef0a555b27b233dfcab46a90 depends: - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - constrains: - - xz ==5.6.3=*_1 license: 0BSD purls: [] - size: 104332 - timestamp: 1733407872569 + size: 104465 + timestamp: 1738525557254 - conda: https://repo.prefix.dev/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6 md5: 30fd6e37fe21f86f4bd26d6ee73eeec7 @@ -1578,98 +2260,99 @@ packages: purls: [] size: 34501 timestamp: 1697358973269 -- conda: https://repo.prefix.dev/conda-forge/linux-64/libsqlite-3.48.0-hee588c1_1.conda - sha256: 22853d289ef6ec8a5b20f1aa261895b06525439990d3b139f8bfd0b5c5e32a3a - md5: 3fa05c528d8a1e2a67bbf1e36f22d3bc +- conda: https://repo.prefix.dev/conda-forge/linux-64/libsqlite-3.49.1-hee588c1_1.conda + sha256: 7a09eef804ef7cf4d88215c2297eabb72af8ad0bd5b012060111c289f14bbe7d + md5: 73cea06049cc4174578b432320a003b8 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 - libzlib >=1.3.1,<2.0a0 license: Unlicense purls: [] - size: 878223 - timestamp: 1737564987837 -- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libsqlite-3.48.0-h5eb1b54_1.conda - sha256: 81dd9bf66c7f1d9064e007e2c787133100c406e7ca2de61dba9fb7b87372f255 - md5: 4f3a61fe206f20b27c385ee608bcdfda + size: 915956 + timestamp: 1739953155793 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libsqlite-3.49.1-h5eb1b54_1.conda + sha256: 920fb3b7d3b873babf79a3e392cc82d43b8bd02a573ccaff34219efb5cf7b51e + md5: 150d64241fa27d9d35a7f421ca968a6c depends: - libgcc >=13 - libzlib >=1.3.1,<2.0a0 license: Unlicense purls: [] - size: 1044879 - timestamp: 1737565049785 -- conda: https://repo.prefix.dev/conda-forge/osx-64/libsqlite-3.48.0-hdb6dae5_1.conda - sha256: ccff3309ed7b1561d3bb00f1e4f36d9d1323af998013e3182a13bf0b5dcef4ec - md5: 6c4d367a4916ea169d614590bdf33b7c + size: 915118 + timestamp: 1739953101699 +- conda: https://repo.prefix.dev/conda-forge/osx-64/libsqlite-3.49.1-hdb6dae5_1.conda + sha256: 859e5f1a39e320b3575b98b7a80ab7c62b337465b12b181c8bbe305fecc9430b + md5: 7958168c20fbbc5014e1fbda868ed700 depends: - __osx >=10.13 - libzlib >=1.3.1,<2.0a0 license: Unlicense purls: [] - size: 926014 - timestamp: 1737565233282 -- conda: https://repo.prefix.dev/conda-forge/osx-arm64/libsqlite-3.48.0-h3f77e49_1.conda - sha256: 17c06940cc2a13fd6a17effabd6881b1477db38b2cd3ee2571092d293d3fdd75 - md5: 4c55169502ecddf8077973a987d08f08 + size: 977598 + timestamp: 1739953439197 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/libsqlite-3.49.1-h3f77e49_1.conda + sha256: 266639fb10ca92287961574b0b4d6031fa40dd9d723d64a0fcb08513a24dab03 + md5: c83357a21092bd952933c36c5cb4f4d6 depends: - __osx >=11.0 - libzlib >=1.3.1,<2.0a0 license: Unlicense purls: [] - size: 852831 - timestamp: 1737564996616 -- conda: https://repo.prefix.dev/conda-forge/win-64/libsqlite-3.48.0-h67fdade_1.conda - sha256: eb889b9ea754d30268fa740f91e62fae6c30ca40f9769051dd42390d2470a7ff - md5: 5a7a8f7f68ce1bdb7b58219786436f30 + size: 898767 + timestamp: 1739953312379 +- conda: https://repo.prefix.dev/conda-forge/win-64/libsqlite-3.49.1-h67fdade_1.conda + sha256: 08669790e4de89201079e93e8a8d8c51a3cd57a19dd559bb0d5bc6c9a7970b99 + md5: 88931435901c1f13d4e3a472c24965aa depends: - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: Unlicense purls: [] - size: 897026 - timestamp: 1737565547561 -- conda: https://repo.prefix.dev/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda - sha256: 4661af0eb9bdcbb5fb33e5d0023b001ad4be828fccdcc56500059d56f9869462 - md5: 234a5554c53625688d51062645337328 + size: 1081190 + timestamp: 1739953491995 +- conda: https://repo.prefix.dev/conda-forge/linux-64/libstdcxx-14.2.0-h8f9b012_2.conda + sha256: 8f5bd92e4a24e1d35ba015c5252e8f818898478cb3bc50bd8b12ab54707dc4da + md5: a78c856b6dc6bf4ea8daeb9beaaa3fb0 depends: - - libgcc 14.2.0 h77fa898_1 + - __glibc >=2.17,<3.0.a0 + - libgcc 14.2.0 h767d61c_2 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 3893695 - timestamp: 1729027746910 -- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libstdcxx-14.2.0-h3f4de04_1.conda - sha256: 519556d2c93f1b487091ce046d62e762286177f4a670ec10e16005177d0bcab3 - md5: 37f489acd39e22b623d2d1e5ac6d195c + size: 3884556 + timestamp: 1740240685253 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libstdcxx-14.2.0-h3f4de04_2.conda + sha256: c30a74bc996013907f6d9f344da007c26d98ef9a0831151cd50aece3125c45d5 + md5: eadee2cda99697e29411c1013c187b92 depends: - - libgcc 14.2.0 he277a41_1 + - libgcc 14.2.0 he277a41_2 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 3816794 - timestamp: 1729089463404 -- conda: https://repo.prefix.dev/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda - sha256: 25bb30b827d4f6d6f0522cc0579e431695503822f144043b93c50237017fffd8 - md5: 8371ac6457591af2cf6159439c1fd051 + size: 3810779 + timestamp: 1740241094774 +- conda: https://repo.prefix.dev/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_2.conda + sha256: e86f38b007cf97cc2c67cd519f2de12a313c4ee3f5ef11652ad08932a5e34189 + md5: c75da67f045c2627f59e6fcb5f4e3a9b depends: - - libstdcxx 14.2.0 hc0a3c3a_1 + - libstdcxx 14.2.0 h8f9b012_2 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 54105 - timestamp: 1729027780628 -- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libstdcxx-ng-14.2.0-hf1166c9_1.conda - sha256: 9f97461bd55a2745a7a0941f3502a047f15bfe7bb2952dc7fb204b3202f866fd - md5: 0e75771b8a03afae5a2c6ce71bc733f5 + size: 53830 + timestamp: 1740240722530 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/libstdcxx-ng-14.2.0-hf1166c9_2.conda + sha256: 0107886ead6f255956d8e520f8dff260f9ab3d0d51512f18c52710c406e4b2df + md5: c934c1fddad582fcc385b608eb06a70c depends: - - libstdcxx 14.2.0 h3f4de04_1 + - libstdcxx 14.2.0 h3f4de04_2 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 54133 - timestamp: 1729089498541 + size: 53715 + timestamp: 1740241126343 - conda: https://repo.prefix.dev/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda sha256: 787eb542f055a2b3de553614b25f09eefb0a0931b0c87dbcce6efdfd92f04f18 md5: 40b61aab5c7ba9ff276c41cfffe6b80b @@ -1803,42 +2486,29 @@ packages: purls: [] size: 132160 timestamp: 1719980487208 -- pypi: https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl - name: markdown-it-py - version: 3.0.0 - sha256: 355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1 - requires_dist: - - mdurl~=0.1 - - psutil ; extra == 'benchmarking' - - pytest ; extra == 'benchmarking' - - pytest-benchmark ; extra == 'benchmarking' - - pre-commit~=3.0 ; extra == 'code-style' - - commonmark~=0.9 ; extra == 'compare' - - markdown~=3.4 ; extra == 'compare' - - mistletoe~=1.0 ; extra == 'compare' - - mistune~=2.0 ; extra == 'compare' - - panflute~=2.3 ; extra == 'compare' - - linkify-it-py>=1,<3 ; extra == 'linkify' - - mdit-py-plugins ; extra == 'plugins' - - gprof2dot ; extra == 'profiling' - - mdit-py-plugins ; extra == 'rtd' - - myst-parser ; extra == 'rtd' - - pyyaml ; extra == 'rtd' - - sphinx ; extra == 'rtd' - - sphinx-copybutton ; extra == 'rtd' - - sphinx-design ; extra == 'rtd' - - sphinx-book-theme ; extra == 'rtd' - - jupyter-sphinx ; extra == 'rtd' - - coverage ; extra == 'testing' - - pytest ; extra == 'testing' - - pytest-cov ; extra == 'testing' - - pytest-regressions ; extra == 'testing' - requires_python: '>=3.8' -- pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl - name: mdurl - version: 0.1.2 - sha256: 84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 - requires_python: '>=3.7' +- conda: https://repo.prefix.dev/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + sha256: 0fbacdfb31e55964152b24d5567e9a9996e1e7902fb08eb7d91b5fd6ce60803a + md5: fee3164ac23dfca50cfcc8b85ddefb81 + depends: + - mdurl >=0.1,<1 + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/markdown-it-py?source=hash-mapping + size: 64430 + timestamp: 1733250550053 +- conda: https://repo.prefix.dev/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda + sha256: 78c1bbe1723449c52b7a9df1af2ee5f005209f67e40b6e1d3c7619127c43b1c7 + md5: 592132998493b3ff25fd7479396e8351 + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/mdurl?source=hash-mapping + size: 14465 + timestamp: 1733255681319 - conda: https://repo.prefix.dev/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda sha256: 7a5bd30a2e7ddd7b85031a5e2e14f290898098dc85bea5b3a5bf147c25122838 md5: bbe1963f1e47f594070ffe87cdf612ea @@ -1854,43 +2524,43 @@ packages: - pkg:pypi/nbformat?source=hash-mapping size: 100945 timestamp: 1733402844974 -- conda: https://repo.prefix.dev/conda-forge/linux-64/ncurses-6.5-h2d0b736_2.conda - sha256: 17fe6afd8a00446010220d52256bd222b1e4fcb93bd587e7784b03219f3dc358 - md5: 04b34b9a40cdc48cfdab261ab176ff74 +- conda: https://repo.prefix.dev/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda + sha256: 3fde293232fa3fca98635e1167de6b7c7fda83caf24b9d6c91ec9eefb4f4d586 + md5: 47e340acb35de30501a76c7c799c41d7 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 license: X11 AND BSD-3-Clause purls: [] - size: 894452 - timestamp: 1736683239706 -- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ncurses-6.5-ha32ae93_2.conda - sha256: 9fd726174dde993c560dd6fa1a383e61d546d380e98e0b0348d22512e5d86e24 - md5: 779046fb585c71373e8a051be06c6011 + size: 891641 + timestamp: 1738195959188 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/ncurses-6.5-ha32ae93_3.conda + sha256: 91cfb655a68b0353b2833521dc919188db3d8a7f4c64bea2c6a7557b24747468 + md5: 182afabe009dc78d8b73100255ee6868 depends: - libgcc >=13 license: X11 AND BSD-3-Clause purls: [] - size: 928402 - timestamp: 1736683192463 -- conda: https://repo.prefix.dev/conda-forge/osx-64/ncurses-6.5-h0622a9a_2.conda - sha256: 507456591054ff83a0179c6b3804dbf6ea7874ac07b68bdf6ab5f23f2065e067 - md5: 7eb0c4be5e4287a3d6bfef015669a545 + size: 926034 + timestamp: 1738196018799 +- conda: https://repo.prefix.dev/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda + sha256: ea4a5d27ded18443749aefa49dc79f6356da8506d508b5296f60b8d51e0c4bd9 + md5: ced34dd9929f491ca6dab6a2927aff25 depends: - __osx >=10.13 license: X11 AND BSD-3-Clause purls: [] - size: 822835 - timestamp: 1736683439206 -- conda: https://repo.prefix.dev/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_2.conda - sha256: b45c73348ec9841d5c893acc2e97adff24127548fe8c786109d03c41ed564e91 - md5: f6f7c5b7d0983be186c46c4f6f8f9af8 + size: 822259 + timestamp: 1738196181298 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda + sha256: 2827ada40e8d9ca69a153a45f7fd14f32b2ead7045d3bbb5d10964898fe65733 + md5: 068d497125e4bf8a66bf707254fff5ae depends: - __osx >=11.0 license: X11 AND BSD-3-Clause purls: [] - size: 796754 - timestamp: 1736683572099 + size: 797030 + timestamp: 1738196177597 - pypi: https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl name: networkx version: 3.4.2 @@ -1926,9 +2596,9 @@ packages: - pytest>=7.2 ; extra == 'test' - pytest-cov>=4.0 ; extra == 'test' requires_python: '>=3.10' -- conda: https://repo.prefix.dev/conda-forge/linux-64/openssl-3.4.0-h7b32b05_1.conda - sha256: f62f6bca4a33ca5109b6d571b052a394d836956d21b25b7ffd03376abf7a481f - md5: 4ce6875f75469b2757a65e10a5d05e31 +- conda: https://repo.prefix.dev/conda-forge/linux-64/openssl-3.4.1-h7b32b05_0.conda + sha256: cbf62df3c79a5c2d113247ddea5658e9ff3697b6e741c210656e239ecaf1768f + md5: 41adf927e746dc75ecf0ef841c454e48 depends: - __glibc >=2.17,<3.0.a0 - ca-certificates @@ -1936,44 +2606,44 @@ packages: license: Apache-2.0 license_family: Apache purls: [] - size: 2937158 - timestamp: 1736086387286 -- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/openssl-3.4.0-hd08dc88_1.conda - sha256: 60d34454b861501d7355f25a7b39fdb5de8d56fca49b5bcbe8b8142b7d82dce4 - md5: e21c4767e783a58c373fdb99de6211bf + size: 2939306 + timestamp: 1739301879343 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/openssl-3.4.1-hd08dc88_0.conda + sha256: d80b52b56b2206053968270069616868cbeb289ef855cf1584b1bb0fef61b37c + md5: 09036190605c57eaecf01218e0e9542d depends: - ca-certificates - libgcc >=13 license: Apache-2.0 license_family: Apache purls: [] - size: 3469279 - timestamp: 1736088141230 -- conda: https://repo.prefix.dev/conda-forge/osx-64/openssl-3.4.0-hc426f3f_1.conda - sha256: 879a960d586cf8a64131ac0c060ef575cfb8aa9f6813093cba92042a86ee867c - md5: eaae23dbfc9ec84775097898526c72ea + size: 3476570 + timestamp: 1739303256089 +- conda: https://repo.prefix.dev/conda-forge/osx-64/openssl-3.4.1-hc426f3f_0.conda + sha256: 505a46671dab5d66df8e684f99a9ae735a607816b12810b572d63caa512224df + md5: a7d63f8e7ab23f71327ea6d27e2d5eae depends: - __osx >=10.13 - ca-certificates license: Apache-2.0 license_family: Apache purls: [] - size: 2590210 - timestamp: 1736086530077 -- conda: https://repo.prefix.dev/conda-forge/osx-arm64/openssl-3.4.0-h81ee809_1.conda - sha256: 97772762abc70b3a537683ca9fc3ff3d6099eb64e4aba3b9c99e6fce48422d21 - md5: 22f971393637480bda8c679f374d8861 + size: 2591479 + timestamp: 1739302628009 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/openssl-3.4.1-h81ee809_0.conda + sha256: 4f8e2389e1b711b44182a075516d02c80fa7a3a7e25a71ff1b5ace9eae57a17a + md5: 75f9f0c7b1740017e2db83a53ab9a28e depends: - __osx >=11.0 - ca-certificates license: Apache-2.0 license_family: Apache purls: [] - size: 2936415 - timestamp: 1736086108693 -- conda: https://repo.prefix.dev/conda-forge/win-64/openssl-3.4.0-ha4e3fda_1.conda - sha256: 519a06eaab7c878fbebb8cab98ea4a4465eafb1e9ed8c6ce67226068a80a92f0 - md5: fb45308ba8bfe1abf1f4a27bad24a743 + size: 2934522 + timestamp: 1739301896733 +- conda: https://repo.prefix.dev/conda-forge/win-64/openssl-3.4.1-ha4e3fda_0.conda + sha256: 56dcc2b4430bfc1724e32661c34b71ae33a23a14149866fc5645361cfd3b3a6a + md5: 0730f8094f7088592594f9bf3ae62b3f depends: - ca-certificates - ucrt >=10.0.20348.0 @@ -1982,8 +2652,8 @@ packages: license: Apache-2.0 license_family: Apache purls: [] - size: 8462960 - timestamp: 1736088436984 + size: 8515197 + timestamp: 1739304103653 - conda: https://repo.prefix.dev/conda-forge/linux-64/patchelf-0.17.2-h58526e2_0.conda sha256: eb355ac225be2f698e19dba4dcab7cb0748225677a9799e9cc8e4cadc3cb738f md5: ba76a6a448819560b5f8b08a9c74f415 @@ -2038,13 +2708,128 @@ packages: purls: [] size: 110100 timestamp: 1733195786147 -- pypi: https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl - name: pygments - version: 2.19.1 - sha256: 9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c - requires_dist: - - colorama>=0.4.6 ; extra == 'windows-terminal' - requires_python: '>=3.8' +- conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-2.10.6-pyh3cfb1c2_0.conda + sha256: 9a78801a28959edeb945e8270a4e666577b52fac0cf4e35f88cf122f73d83e75 + md5: c69f87041cf24dfc8cb6bf64ca7133c7 + depends: + - annotated-types >=0.6.0 + - pydantic-core 2.27.2 + - python >=3.9 + - typing-extensions >=4.6.1 + - typing_extensions >=4.12.2 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pydantic?source=hash-mapping + size: 296841 + timestamp: 1737761472006 +- conda: https://repo.prefix.dev/conda-forge/linux-64/pydantic-core-2.27.2-py311h9e33e62_0.conda + sha256: 8ead97151b2f349cd327456fe4a6fcf7c51a3ab6c06f48f4330f86de0d848bd1 + md5: 675cb6079b6b3b4ef4f20399fedf6666 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - typing-extensions >=4.6.0,!=4.7.0 + constrains: + - __glibc >=2.17 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pydantic-core?source=hash-mapping + size: 1640287 + timestamp: 1734571788310 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/pydantic-core-2.27.2-py311h0ca61a2_0.conda + sha256: bae487615db914258d64e44ddb698f8826a3785e97989b37ca2d310069e86e28 + md5: a082086545ee0bcb6c3e7e393532fe03 + depends: + - libgcc >=13 + - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython + - python_abi 3.11.* *_cp311 + - typing-extensions >=4.6.0,!=4.7.0 + constrains: + - __glibc >=2.17 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pydantic-core?source=hash-mapping + size: 1504928 + timestamp: 1734572100526 +- conda: https://repo.prefix.dev/conda-forge/osx-64/pydantic-core-2.27.2-py311h3b9c2be_0.conda + sha256: 51cee7f401be36e8492ce265f8543dbe790e49e63ff15b9c41ba93d06372558c + md5: 0a9d04f67aa75f92236e7c25afc370ed + depends: + - __osx >=10.13 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - typing-extensions >=4.6.0,!=4.7.0 + constrains: + - __osx >=10.13 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pydantic-core?source=hash-mapping + size: 1563845 + timestamp: 1734571853212 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/pydantic-core-2.27.2-py311h3ff9189_0.conda + sha256: 5163982ef229292ca5b9fe96e756ac29b6c6453d56c9f1dfaf48f5796de78d05 + md5: b96fba96baad08b81c57fd157b481b22 + depends: + - __osx >=11.0 + - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython + - python_abi 3.11.* *_cp311 + - typing-extensions >=4.6.0,!=4.7.0 + constrains: + - __osx >=11.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pydantic-core?source=hash-mapping + size: 1595471 + timestamp: 1734572148778 +- conda: https://repo.prefix.dev/conda-forge/win-64/pydantic-core-2.27.2-py311h533ab2d_0.conda + sha256: d1f641a6f2c9fe6413674dd4e1f7dd5bbd06d26532d6e19f83c56a747d54b667 + md5: e9420c025ea324d06255fc34b7e3928e + depends: + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - typing-extensions >=4.6.0,!=4.7.0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pydantic-core?source=hash-mapping + size: 1603214 + timestamp: 1734572073939 +- conda: https://repo.prefix.dev/conda-forge/noarch/pydantic-settings-2.8.1-pyh3cfb1c2_0.conda + sha256: 84b78dcdc75d7dacd8c85df9a7fef42ff5684897217b46beef6c516afb2550dc + md5: 88715188749bfac9fa92aec9c747d62c + depends: + - pydantic >=2.7.0 + - python >=3.9 + - python-dotenv >=0.21.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pydantic-settings?source=compressed-mapping + size: 32632 + timestamp: 1740672054181 +- conda: https://repo.prefix.dev/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda + sha256: 28a3e3161390a9d23bc02b4419448f8d27679d9e2c250e29849e37749c8de86b + md5: 232fb4577b6687b2d503ef8e254270c9 + depends: + - python >=3.9 + license: BSD-2-Clause + license_family: BSD + purls: + - pkg:pypi/pygments?source=hash-mapping + size: 888600 + timestamp: 1736243563082 - pypi: https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl name: pyparsing version: 3.2.1 @@ -2078,10 +2863,10 @@ packages: - pkg:pypi/pysocks?source=hash-mapping size: 21085 timestamp: 1733217331982 -- conda: https://repo.prefix.dev/conda-forge/linux-64/python-3.11.11-h9e4cc4f_1_cpython.conda - build_number: 1 - sha256: b29ce0836fce55bdff8d5c5b71c4921a23f87d3b950aea89a9e75784120b06b0 - md5: 8387070aa413ce9a8cc35a509fae938b +- conda: https://repo.prefix.dev/conda-forge/linux-64/python-3.11.11-h9e4cc4f_2_cpython.conda + build_number: 2 + sha256: e0be7ad95a034d10e021f15317bf5c70fc1161564fa47844984c245505cde36c + md5: 81dd3e521f9b9eaa58d06213e28aaa9b depends: - __glibc >=2.17,<3.0.a0 - bzip2 >=1.0.8,<2.0a0 @@ -2089,14 +2874,14 @@ packages: - libexpat >=2.6.4,<3.0a0 - libffi >=3.4,<4.0a0 - libgcc >=13 - - liblzma >=5.6.3,<6.0a0 + - liblzma >=5.6.4,<6.0a0 - libnsl >=2.0.1,<2.1.0a0 - - libsqlite >=3.47.0,<4.0a0 + - libsqlite >=3.49.1,<4.0a0 - libuuid >=2.38.1,<3.0a0 - libxcrypt >=4.4.36 - libzlib >=1.3.1,<2.0a0 - ncurses >=6.5,<7.0a0 - - openssl >=3.4.0,<4.0a0 + - openssl >=3.4.1,<4.0a0 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata @@ -2104,26 +2889,26 @@ packages: - python_abi 3.11.* *_cp311 license: Python-2.0 purls: [] - size: 30624804 - timestamp: 1733409665928 -- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/python-3.11.11-h1683364_1_cpython.conda - build_number: 1 - sha256: b39a2253510b26213093cb29e27722cb33782aec213c020dfd17cd74d58f68e7 - md5: 7e8786cbe7b83e7011e681a4780c9b7f + size: 30594389 + timestamp: 1741036299726 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/python-3.11.11-h1683364_2_cpython.conda + build_number: 2 + sha256: 94ff790b2958d45b442d02d6c01fec738a2622fbc59b3b79b4e4e83ae0a0be6f + md5: c5b520ba534c31691853f351225c5060 depends: - bzip2 >=1.0.8,<2.0a0 - ld_impl_linux-aarch64 >=2.36.1 - libexpat >=2.6.4,<3.0a0 - libffi >=3.4,<4.0a0 - libgcc >=13 - - liblzma >=5.6.3,<6.0a0 + - liblzma >=5.6.4,<6.0a0 - libnsl >=2.0.1,<2.1.0a0 - - libsqlite >=3.47.0,<4.0a0 + - libsqlite >=3.49.1,<4.0a0 - libuuid >=2.38.1,<3.0a0 - libxcrypt >=4.4.36 - libzlib >=1.3.1,<2.0a0 - ncurses >=6.5,<7.0a0 - - openssl >=3.4.0,<4.0a0 + - openssl >=3.4.1,<4.0a0 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata @@ -2131,22 +2916,22 @@ packages: - python_abi 3.11.* *_cp311 license: Python-2.0 purls: [] - size: 15234582 - timestamp: 1733407838276 -- conda: https://repo.prefix.dev/conda-forge/osx-64/python-3.11.11-h9ccd52b_1_cpython.conda - build_number: 1 - sha256: 4c53c4c48a0f42577ae405553ab899b3ef5ee23b2a1bf4fbbc694c46f884f6fc - md5: 9b20fb7c571405d29f33ae2fc5990d8d + size: 15238800 + timestamp: 1741034197299 +- conda: https://repo.prefix.dev/conda-forge/osx-64/python-3.11.11-h9ccd52b_2_cpython.conda + build_number: 2 + sha256: 2c34d988cdb364665478ca3d93a43b2a5bf149e822215ad3fa6a5342627374a9 + md5: 8d73135b48597cc13715a34bc79654b7 depends: - __osx >=10.13 - bzip2 >=1.0.8,<2.0a0 - libexpat >=2.6.4,<3.0a0 - libffi >=3.4,<4.0a0 - - liblzma >=5.6.3,<6.0a0 - - libsqlite >=3.47.0,<4.0a0 + - liblzma >=5.6.4,<6.0a0 + - libsqlite >=3.49.1,<4.0a0 - libzlib >=1.3.1,<2.0a0 - ncurses >=6.5,<7.0a0 - - openssl >=3.4.0,<4.0a0 + - openssl >=3.4.1,<4.0a0 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata @@ -2154,22 +2939,22 @@ packages: - python_abi 3.11.* *_cp311 license: Python-2.0 purls: [] - size: 14221518 - timestamp: 1733409959819 -- conda: https://repo.prefix.dev/conda-forge/osx-arm64/python-3.11.11-hc22306f_1_cpython.conda - build_number: 1 - sha256: 94e198f6a5affa1431401fca7e3b27fda68c59f5ee726083288bff1f6bed8c7f - md5: 8d81dcd0be5bdcdd98e0f2482bf63784 + size: 15472260 + timestamp: 1741035097532 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/python-3.11.11-hc22306f_2_cpython.conda + build_number: 2 + sha256: 6f3c20b8666301fc27e6d1095f1e0f12a093bacf483e992cb56169127e989630 + md5: 4bd51247ba4dd5958eb8f1e593edfe00 depends: - __osx >=11.0 - bzip2 >=1.0.8,<2.0a0 - libexpat >=2.6.4,<3.0a0 - libffi >=3.4,<4.0a0 - - liblzma >=5.6.3,<6.0a0 - - libsqlite >=3.47.0,<4.0a0 + - liblzma >=5.6.4,<6.0a0 + - libsqlite >=3.49.1,<4.0a0 - libzlib >=1.3.1,<2.0a0 - ncurses >=6.5,<7.0a0 - - openssl >=3.4.0,<4.0a0 + - openssl >=3.4.1,<4.0a0 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata @@ -2177,20 +2962,20 @@ packages: - python_abi 3.11.* *_cp311 license: Python-2.0 purls: [] - size: 14647146 - timestamp: 1733409012105 -- conda: https://repo.prefix.dev/conda-forge/win-64/python-3.11.11-h3f84c4b_1_cpython.conda - build_number: 1 - sha256: 5be6181ab6d655ad761490b7808584c5e78e5d7139846685b1850a8b7ef6c5df - md5: 4d490a426481298bdd89a502253a7fd4 + size: 14579450 + timestamp: 1741035010673 +- conda: https://repo.prefix.dev/conda-forge/win-64/python-3.11.11-h3f84c4b_2_cpython.conda + build_number: 2 + sha256: d9a31998083225dcbef7c10cf0d379b1f64176cf1d0f8ad7f29941d2eb293d25 + md5: 8959f363205d55bb6ada26bdfd6ce8c7 depends: - bzip2 >=1.0.8,<2.0a0 - libexpat >=2.6.4,<3.0a0 - libffi >=3.4,<4.0a0 - - liblzma >=5.6.3,<6.0a0 - - libsqlite >=3.47.0,<4.0a0 + - liblzma >=5.6.4,<6.0a0 + - libsqlite >=3.49.1,<4.0a0 - libzlib >=1.3.1,<2.0a0 - - openssl >=3.4.0,<4.0a0 + - openssl >=3.4.1,<4.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata - ucrt >=10.0.20348.0 @@ -2200,8 +2985,8 @@ packages: - python_abi 3.11.* *_cp311 license: Python-2.0 purls: [] - size: 18161635 - timestamp: 1733408064601 + size: 18221686 + timestamp: 1741034476958 - conda: https://repo.prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda sha256: a50052536f1ef8516ed11a844f9413661829aa083304dc624c5925298d078d79 md5: 5ba79d7c71f03c678c8ead841f347d6e @@ -2214,6 +2999,17 @@ packages: - pkg:pypi/python-dateutil?source=hash-mapping size: 222505 timestamp: 1733215763718 +- conda: https://repo.prefix.dev/conda-forge/noarch/python-dotenv-1.0.1-pyhd8ed1ab_1.conda + sha256: 99713f6b534fef94995c6c16fd21d59f3548784e9111775d692bdc7c44678f02 + md5: e5c6ed218664802d305e79cc2d4491de + depends: + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/python-dotenv?source=hash-mapping + size: 24215 + timestamp: 1733243277223 - conda: https://repo.prefix.dev/conda-forge/noarch/python-fastjsonschema-2.21.1-pyhd8ed1ab_0.conda sha256: 1b09a28093071c1874862422696429d0d35bd0b8420698003ac004746c5e82a2 md5: 38e34d2d1d9dca4fb2b9a0a04f604e2c @@ -2280,17 +3076,17 @@ packages: purls: [] size: 6707 timestamp: 1723823225752 -- conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda - sha256: 0a7c706b2eb13f7da5692d9ddf1567209964875710b471de6f2743b33d1ba960 - md5: f26ec986456c30f6dff154b670ae140f +- conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2025.1-pyhd8ed1ab_0.conda + sha256: bc35995ecbd38693567fc143d3e6008e53cff900b453412cae48ffa535f25d1f + md5: d451ccded808abf6511f0a2ac9bb9dcc depends: - python >=3.9 license: MIT license_family: MIT purls: - pkg:pypi/pytz?source=hash-mapping - size: 185890 - timestamp: 1733215766006 + size: 186859 + timestamp: 1738317649432 - conda: https://repo.prefix.dev/conda-forge/win-64/pywin32-307-py311hda3d55a_3.conda sha256: 78a4ede098bbc122a3dff4e0e27255e30b236101818e8f499779c89670c58cd6 md5: 1bc10dbe3b8d03071070c962a2bdf65f @@ -2381,36 +3177,38 @@ packages: - pkg:pypi/pyyaml?source=hash-mapping size: 187430 timestamp: 1737454904007 -- conda: https://repo.prefix.dev/conda-forge/linux-64/rattler-build-0.35.6-hff40e2b_0.conda - sha256: 0c8c82fd3cf13e69f5c600767b7ba60db38c4cdea0cbad66fdb624ada52a7f27 - md5: c926bc2b91cdb32687e9a9f5909a4aa9 +- conda: https://repo.prefix.dev/conda-forge/linux-64/rattler-build-0.38.0-h159367c_0.conda + sha256: 4e12278090c75987dd16f7815b0d6bd8fb2bcd7fe83df80a399c7476aebc3c57 + md5: 79a97c20fc68276b650b289f41623305 depends: - patchelf + - libgcc >=13 - __glibc >=2.17,<3.0.a0 - - openssl >=3.4.0,<4.0a0 + - openssl >=3.4.1,<4.0a0 constrains: - __glibc >=2.17 license: BSD-3-Clause license_family: BSD purls: [] - size: 10747673 - timestamp: 1737419180461 -- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rattler-build-0.35.6-h33857bb_0.conda - sha256: 3ab4069c59ad3cd749258ab29e03072f8c1bc719428bc742046c5e2deaf41af5 - md5: 58aacf133b01307e660f5521b9dd6e53 + size: 15112655 + timestamp: 1741203078493 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rattler-build-0.38.0-h112f5b8_0.conda + sha256: 5dcca8ba903d2bbf1f648532786d7687ff09c2ef145bab746ca7ac5d12356d63 + md5: 688bcf5e00d178be35517806cd17adf4 depends: - patchelf - - openssl >=3.4.0,<4.0a0 + - libgcc >=13 + - openssl >=3.4.1,<4.0a0 constrains: - __glibc >=2.17 license: BSD-3-Clause license_family: BSD purls: [] - size: 11002462 - timestamp: 1737419203421 -- conda: https://repo.prefix.dev/conda-forge/osx-64/rattler-build-0.35.6-h625f1b7_0.conda - sha256: 5bc1d0180f986da4cf0282b5848afc70c5587242571871a5f0f915b3c7377ecc - md5: 1ac44d901cbc43e92eb26a5ae66f98e3 + size: 15104511 + timestamp: 1741203094866 +- conda: https://repo.prefix.dev/conda-forge/osx-64/rattler-build-0.38.0-h05de357_0.conda + sha256: 54010a8673d24ab2f2ae50c241c6be8399986c7976d5e88c4bdcd871842a1923 + md5: f89441c03b3f592b75f3ed6c3acda5e7 depends: - __osx >=10.13 constrains: @@ -2418,11 +3216,11 @@ packages: license: BSD-3-Clause license_family: BSD purls: [] - size: 9263112 - timestamp: 1737419217243 -- conda: https://repo.prefix.dev/conda-forge/osx-arm64/rattler-build-0.35.6-h3ab7716_0.conda - sha256: 9247021b374a0744ec26fc5130e75def2ddbe88212a804df72c1b256cc9c9393 - md5: 2c1ad2d4c0bfcc7e83c49e4aff1ecc14 + size: 13369833 + timestamp: 1741203072099 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/rattler-build-0.38.0-h8dba533_0.conda + sha256: ba294ba3e4bed0f98b194d6e7e438e3aa58044fd82a062ffd7666fe74c5321ed + md5: 4526be88604ef65143d9dbc027f6ff05 depends: - __osx >=11.0 constrains: @@ -2430,62 +3228,76 @@ packages: license: BSD-3-Clause license_family: BSD purls: [] - size: 8654822 - timestamp: 1737419214645 -- conda: https://repo.prefix.dev/conda-forge/win-64/rattler-build-0.35.6-ha8cf89e_0.conda - sha256: aaa21fe06d851d9a2c9ecccba4b5790ae79c01c5be9378c9a81f162be69d1bad - md5: 3ae382d651e20263ae9dc1dd32f69841 + size: 12647164 + timestamp: 1741203078815 +- conda: https://repo.prefix.dev/conda-forge/win-64/rattler-build-0.38.0-ha073cba_0.conda + sha256: 0046072b33c6fc3a413a96e2194009e4201fa80deb55c15d793c2692d28ed858 + md5: 07d7fd2e4ac00be8a2ca8a4a4d569c1c depends: - - vc >=14.3,<15 - - vc14_runtime >=14.42.34433 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 - ucrt >=10.0.20348.0 license: BSD-3-Clause license_family: BSD purls: [] - size: 8615244 - timestamp: 1737419207280 -- conda: https://repo.prefix.dev/conda-forge/linux-64/readline-8.2-h8228510_1.conda - sha256: 5435cf39d039387fbdc977b0a762357ea909a7694d9528ab40f005e9208744d7 - md5: 47d31b792659ce70f470b5c82fdfb7a4 + size: 12258754 + timestamp: 1741203184794 +- conda: https://repo.prefix.dev/conda-forge/noarch/readchar-4.2.0-pyhd8ed1ab_1.conda + sha256: 370bb44b7e9bb446f163e3c096378385509900878865a7ab11f40d18cb0c5470 + md5: 03476f20cbb666a090074d37e4c3faa9 depends: - - libgcc-ng >=12 - - ncurses >=6.3,<7.0a0 + - python >=3.8 + license: MIT + license_family: MIT + purls: + - pkg:pypi/readchar?source=hash-mapping + size: 14551 + timestamp: 1730725499093 +- conda: https://repo.prefix.dev/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda + sha256: 2d6d0c026902561ed77cd646b5021aef2d4db22e57a5b0178dfc669231e06d2c + md5: 283b96675859b20a825f8fa30f311446 + depends: + - libgcc >=13 + - ncurses >=6.5,<7.0a0 license: GPL-3.0-only license_family: GPL purls: [] - size: 281456 - timestamp: 1679532220005 -- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/readline-8.2-h8fc344f_1.conda - sha256: 4c99f7417419734e3797d45bc355e61c26520e111893b0d7087a01a7fbfbe3dd - md5: 105eb1e16bf83bfb2eb380a48032b655 + size: 282480 + timestamp: 1740379431762 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/readline-8.2-h8382b9d_2.conda + sha256: 54bed3a3041befaa9f5acde4a37b1a02f44705b7796689574bcf9d7beaad2959 + md5: c0f08fc2737967edde1a272d4bf41ed9 depends: - - libgcc-ng >=12 - - ncurses >=6.3,<7.0a0 + - libgcc >=13 + - ncurses >=6.5,<7.0a0 license: GPL-3.0-only license_family: GPL purls: [] - size: 294092 - timestamp: 1679532238805 -- conda: https://repo.prefix.dev/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda - sha256: 41e7d30a097d9b060037f0c6a2b1d4c4ae7e942c06c943d23f9d481548478568 - md5: f17f77f2acf4d344734bda76829ce14e + size: 291806 + timestamp: 1740380591358 +- conda: https://repo.prefix.dev/conda-forge/osx-64/readline-8.2-h7cca4af_2.conda + sha256: 53017e80453c4c1d97aaf78369040418dea14cf8f46a2fa999f31bd70b36c877 + md5: 342570f8e02f2f022147a7f841475784 depends: - - ncurses >=6.3,<7.0a0 + - ncurses >=6.5,<7.0a0 license: GPL-3.0-only license_family: GPL purls: [] - size: 255870 - timestamp: 1679532707590 -- conda: https://repo.prefix.dev/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda - sha256: a1dfa679ac3f6007362386576a704ad2d0d7a02e98f5d0b115f207a2da63e884 - md5: 8cbb776a2f641b943d413b3e19df71f4 + size: 256712 + timestamp: 1740379577668 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/readline-8.2-h1d1bf99_2.conda + sha256: 7db04684d3904f6151eff8673270922d31da1eea7fa73254d01c437f49702e34 + md5: 63ef3f6e6d6d5c589e64f11263dc5676 depends: - - ncurses >=6.3,<7.0a0 + - ncurses >=6.5,<7.0a0 license: GPL-3.0-only license_family: GPL purls: [] - size: 250351 - timestamp: 1679532511311 + size: 252359 + timestamp: 1740379663071 - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.36.2-pyh29332c3_0.conda sha256: e20909f474a6cece176dfc0dc1addac265deb5fa92ea90e975fbca48085b20c3 md5: 9140f1c09dd5489549c6a33931b943c7 @@ -2530,16 +3342,20 @@ packages: - pkg:pypi/requests-toolbelt?source=hash-mapping size: 44285 timestamp: 1733734886897 -- pypi: https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl - name: rich - version: 13.9.4 - sha256: 6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90 - requires_dist: - - ipywidgets>=7.5.1,<9 ; extra == 'jupyter' - - markdown-it-py>=2.2.0 - - pygments>=2.13.0,<3.0.0 - - typing-extensions>=4.0.0,<5.0 ; python_full_version < '3.11' - requires_python: '>=3.8.0' +- conda: https://repo.prefix.dev/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda + sha256: 06a760c5ae572e72e865d5a87e9fe3cc171e1a9c996e63daf3db52ff1a0b4457 + md5: 7aed65d4ff222bfb7335997aa40b7da5 + depends: + - markdown-it-py >=2.2.0 + - pygments >=2.13.0,<3.0.0 + - python >=3.9 + - typing_extensions >=4.0.0,<5.0.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/rich?source=hash-mapping + size: 185646 + timestamp: 1733342347277 - pypi: https://files.pythonhosted.org/packages/22/32/d0fbc4383a6a213d315c39dda9107f81654d9941c43d6c687e61995ec388/rosdistro-1.0.1-py3-none-any.whl name: rosdistro version: 1.0.1 @@ -2561,13 +3377,13 @@ packages: - distro>=1.4.0 ; python_full_version >= '3.8' - pytest ; extra == 'test' requires_python: '>=3.6' -- conda: https://repo.prefix.dev/conda-forge/linux-64/rpds-py-0.22.3-py311h9e33e62_0.conda - sha256: 0908ac4acb1a10fe63046e947a96c77cea0d392619ef965944da86c3574b68ec - md5: b1f5799ae0cc22198928f09879da01f5 +- conda: https://repo.prefix.dev/conda-forge/linux-64/rpds-py-0.23.1-py311h687327b_0.conda + sha256: 754d8eff118a6a01f4eb0e8bc6be7be8872f54826d6ff0402eac08d308b01099 + md5: d35b446856b4d6644a469fd01838baff depends: + - python - __glibc >=2.17,<3.0.a0 - libgcc >=13 - - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 constrains: - __glibc >=2.17 @@ -2575,14 +3391,14 @@ packages: license_family: MIT purls: - pkg:pypi/rpds-py?source=hash-mapping - size: 351650 - timestamp: 1733366766805 -- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rpds-py-0.22.3-py311h7270cec_0.conda - sha256: ea5c5dd50ec3c22fb1d37af67d1a1a92b1db258be48d07e5201afa85229b6f76 - md5: e2235bd1223f3eaf22cc50e1578e26f4 + size: 391827 + timestamp: 1740153282893 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rpds-py-0.23.1-py311h4346fff_0.conda + sha256: fc17a18bd9db39669170e49f99d96ce05dbf53dee92b80d49085c1a5f856aa6d + md5: 09548da69813af3dc013f723107fbd51 depends: + - python - libgcc >=13 - - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 constrains: - __glibc >=2.17 @@ -2590,14 +3406,14 @@ packages: license_family: MIT purls: - pkg:pypi/rpds-py?source=hash-mapping - size: 345860 - timestamp: 1733369036541 -- conda: https://repo.prefix.dev/conda-forge/osx-64/rpds-py-0.22.3-py311h3b9c2be_0.conda - sha256: 435d6ddb0a1625b91e83573b17fcd543ebedffc81d912cacb53d48a8cb59a861 - md5: 19f12b2368042654dbc26036f036483b + size: 395058 + timestamp: 1740153579506 +- conda: https://repo.prefix.dev/conda-forge/osx-64/rpds-py-0.23.1-py311hab9d7c2_0.conda + sha256: d83ef060f75ea5b87ee1142c6e54140fcd7f34b21cd7cd55c78bdcce457f19af + md5: d4d43afca6dd6e0667ce236df9d942e3 depends: + - python - __osx >=10.13 - - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 constrains: - __osx >=10.13 @@ -2605,15 +3421,15 @@ packages: license_family: MIT purls: - pkg:pypi/rpds-py?source=hash-mapping - size: 329432 - timestamp: 1733367026508 -- conda: https://repo.prefix.dev/conda-forge/osx-arm64/rpds-py-0.22.3-py311h3ff9189_0.conda - sha256: 8b1e693f3bb84f1152858bba9e15a6717cad02f70b45df3538078c22e67f5a06 - md5: 16669f8098b2f4a8560727efb9e65afd + size: 383768 + timestamp: 1740153197689 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/rpds-py-0.23.1-py311hc9d6b66_0.conda + sha256: 2f97abcca90080703b8f9a8975c72c2d7bf7b67b2c7bc3467b63ed0f7bdb6c59 + md5: 743cfbdfbf99ca9edf519514acde5efa depends: + - python + - python 3.11.* *_cpython - __osx >=11.0 - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - python_abi 3.11.* *_cp311 constrains: - __osx >=11.0 @@ -2621,23 +3437,26 @@ packages: license_family: MIT purls: - pkg:pypi/rpds-py?source=hash-mapping - size: 324661 - timestamp: 1733366968758 -- conda: https://repo.prefix.dev/conda-forge/win-64/rpds-py-0.22.3-py311h533ab2d_0.conda - sha256: c74b3a4430706dfb63176429cc31410dcb86a15e1d35463aae04733c4700b8d8 - md5: 40c964a32833f3ad13ba4183cd180577 + size: 374118 + timestamp: 1740153123035 +- conda: https://repo.prefix.dev/conda-forge/win-64/rpds-py-0.23.1-py311ha250665_0.conda + sha256: 72ca8e7d54f79e6a99827576e53a277796ab8f4d912eba33e3b949cd757a77f7 + md5: 8fd1344d7369c84eb7cf4c316ab86518 depends: - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 + - python + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 + - ucrt >=10.0.20348.0 + - python_abi 3.11.* *_cp311 license: MIT license_family: MIT purls: - pkg:pypi/rpds-py?source=hash-mapping - size: 222035 - timestamp: 1733367148577 + size: 251649 + timestamp: 1740153100034 - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl name: ruamel-yaml version: 0.17.40 @@ -2673,17 +3492,28 @@ packages: version: 0.2.12 sha256: 4a6679521a58256a90b0d89e03992c15144c5f3858f40d7c18886023d7943db6 requires_python: '>=3.9' -- conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.0-pyhff2d567_0.conda - sha256: e0778e4f276e9a81b51c56f51ec22a27b4d8fc955abc0be77ad09ca9bea06bb9 - md5: 8f28e299c11afdd79e0ec1e279dcdc52 +- conda: https://repo.prefix.dev/conda-forge/noarch/setuptools-75.8.2-pyhff2d567_0.conda + sha256: 91d664ace7c22e787775069418daa9f232ee8bafdd0a6a080a5ed2395a6fa6b2 + md5: 9bddfdbf4e061821a1a443f93223be61 depends: - python >=3.9 license: MIT license_family: MIT purls: - - pkg:pypi/setuptools?source=hash-mapping - size: 775598 - timestamp: 1736512753595 + - pkg:pypi/setuptools?source=compressed-mapping + size: 777736 + timestamp: 1740654030775 +- conda: https://repo.prefix.dev/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda + sha256: 0557c090913aa63cdbe821dbdfa038a321b488e22bc80196c4b3b1aace4914ef + md5: 7c3c2a0f3ebdea2bbc35538d162b43bf + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/shellingham?source=compressed-mapping + size: 14462 + timestamp: 1733301007770 - conda: https://repo.prefix.dev/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda sha256: 41db0180680cc67c3fa76544ffd48d6a5679d96f4b71d7498a759e94edc9a2db md5: a451d576819089b0d672f18768be0f65 @@ -2749,6 +3579,17 @@ packages: purls: [] size: 3503410 timestamp: 1699202577803 +- conda: https://repo.prefix.dev/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda + sha256: 18636339a79656962723077df9a56c0ac7b8a864329eb8f847ee3d38495b863e + md5: ac944244f1fed2eb49bae07193ae8215 + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/tomli?source=hash-mapping + size: 19167 + timestamp: 1733256819729 - conda: https://repo.prefix.dev/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda sha256: 11e2c85468ae9902d24a27137b6b39b4a78099806e551d390e394a8c34b48e40 md5: 9efbfdc37242619130ea42b1cc4ed861 @@ -2771,6 +3612,60 @@ packages: - pkg:pypi/traitlets?source=hash-mapping size: 110051 timestamp: 1733367480074 +- conda: https://repo.prefix.dev/conda-forge/noarch/typer-0.15.2-pyhff008b6_0.conda + sha256: fa6eeb42e3bddff74126dd61b01b21a3f4f4791368e93bc5a5775563542b2d4e + md5: 1152565b06e3dc27794c3c11f1050005 + depends: + - typer-slim-standard ==0.15.2 h801b22e_0 + - python >=3.9 + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/typer?source=hash-mapping + size: 76158 + timestamp: 1740697495168 +- conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-0.15.2-pyh29332c3_0.conda + sha256: c094713560bfacab0539c863010a5223171d9980cbd419cc799e474ae15aca08 + md5: 7c8d9609e2cfe08dd7672e10fe7e7de9 + depends: + - python >=3.9 + - click >=8.0.0 + - typing_extensions >=3.7.4.3 + - python + constrains: + - typer 0.15.2.* + - rich >=10.11.0 + - shellingham >=1.3.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/typer-slim?source=hash-mapping + size: 45866 + timestamp: 1740697495167 +- conda: https://repo.prefix.dev/conda-forge/noarch/typer-slim-standard-0.15.2-h801b22e_0.conda + sha256: 79b6b34e90e50e041908939d53053f69285714b0082a0370fba6ab3b38315c8d + md5: ea164fc4e03f61f7ff3c1166001969af + depends: + - typer-slim ==0.15.2 pyh29332c3_0 + - rich + - shellingham + license: MIT + license_family: MIT + purls: [] + size: 5409 + timestamp: 1740697495168 +- conda: https://repo.prefix.dev/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda + noarch: python + sha256: c8e9c1c467b5f960b627d7adc1c65fece8e929a3de89967e91ef0f726422fd32 + md5: b6a408c64b78ec7b779a3e5c7a902433 + depends: + - typing_extensions 4.12.2 pyha770c72_1 + license: PSF-2.0 + license_family: PSF + purls: [] + size: 10075 + timestamp: 1733188758872 - conda: https://repo.prefix.dev/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda sha256: 337be7af5af8b2817f115b3b68870208b30c31d3439bec07bfb2d8f4823e3568 md5: d17f13df8b65464ca316cbc000a3cb64 @@ -2813,30 +3708,42 @@ packages: - pkg:pypi/urllib3?source=hash-mapping size: 100102 timestamp: 1734859520452 -- conda: https://repo.prefix.dev/conda-forge/win-64/vc-14.3-h5fd82a7_24.conda - sha256: 7ce178cf139ccea5079f9c353b3d8415d1d49b0a2f774662c355d3f89163d7b4 - md5: 00cf3a61562bd53bd5ea99e6888793d0 +- conda: https://repo.prefix.dev/conda-forge/win-64/vc-14.3-hbf610ac_24.conda + sha256: 8ef83b62f9f0b885882d0dd41cbe47c2308f7ac0537fd508a5bbe6d3953a176e + md5: 9098c5cfb418fc0b0204bf2efc1e9afa depends: - - vc14_runtime >=14.40.33810 + - vc14_runtime >=14.42.34438 track_features: - vc14 license: BSD-3-Clause license_family: BSD purls: [] - size: 17693 - timestamp: 1737627189024 -- conda: https://repo.prefix.dev/conda-forge/win-64/vc14_runtime-14.42.34433-h6356254_24.conda - sha256: abda97b8728cf6e3c37df8f1178adde7219bed38b96e392cb3be66336386d32e - md5: 2441e010ee255e6a38bf16705a756e94 + size: 17469 + timestamp: 1741043406253 +- conda: https://repo.prefix.dev/conda-forge/win-64/vc14_runtime-14.42.34438-hfd919c2_24.conda + sha256: fb36814355ac12dcb4a55b75b5ef0d49ec219ad9df30d7955f2ace88bd6919c4 + md5: 5fceb7d965d59955888d9a9732719aa8 depends: - ucrt >=10.0.20348.0 constrains: - - vs2015_runtime 14.42.34433.* *_24 + - vs2015_runtime 14.42.34438.* *_24 license: LicenseRef-MicrosoftVisualCpp2015-2022Runtime license_family: Proprietary purls: [] - size: 753531 - timestamp: 1737627061911 + size: 751362 + timestamp: 1741043402335 +- pypi: git+https://github.com/nmarticorena/vinca?rev=a402143f0f55964ca0a41884702ce829e7f5013a#a402143f0f55964ca0a41884702ce829e7f5013a + name: vinca + version: 0.0.4 + requires_dist: + - catkin-pkg>=0.4.16 + - ruamel-yaml>=0.16.6,<0.18.0 + - rosdistro>=0.8.0 + - empy>=3.3.4,<4.0.0 + - requests>=2.24.0 + - networkx>=2.5 + - rich>=10 + requires_python: '>=3.6' - pypi: git+https://github.com/robostack/vinca?rev=cbb8eba834ce3834df552977d6b08c325a30768e#cbb8eba834ce3834df552977d6b08c325a30768e name: vinca version: 0.0.4 @@ -2849,16 +3756,16 @@ packages: - networkx>=2.5 - rich>=10 requires_python: '>=3.6' -- conda: https://repo.prefix.dev/conda-forge/win-64/vs2015_runtime-14.42.34433-hfef2bbc_24.conda - sha256: 09102e0bd283af65772c052d85028410b0c31989b3cd96c260485d28e270836e - md5: 117fcc5b86c48f3b322b0722258c7259 +- conda: https://repo.prefix.dev/conda-forge/win-64/vs2015_runtime-14.42.34438-h7142326_24.conda + sha256: a7104d3d605d191c8ee8d85d4175df3630d61830583494a5d1e62cd9f1260420 + md5: 1dd2e838eb13190ae1f1e2760c036fdc depends: - - vc14_runtime >=14.42.34433 + - vc14_runtime >=14.42.34438 license: BSD-3-Clause license_family: BSD purls: [] - size: 17669 - timestamp: 1737627066773 + size: 17474 + timestamp: 1741043406612 - conda: https://repo.prefix.dev/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_8.conda sha256: 93807369ab91f230cf9e6e2a237eaa812492fe00face5b38068735858fba954f md5: 46e441ba871f524e2b067929da3051c2 diff --git a/pixi.toml b/pixi.toml index b9ae8bfdb..23a3c826d 100644 --- a/pixi.toml +++ b/pixi.toml @@ -27,15 +27,18 @@ git = "*" [feature.beta.pypi-dependencies] # This is tipically the latest commit on main branch -vinca = { git = "https://github.com/RoboStack/vinca.git", rev = "cbb8eba834ce3834df552977d6b08c325a30768e" } +vinca = { git = "https://github.com/RoboStack/vinca.git", rev = "9d6af673f3957c00fe99f274e075ef7c371ea5f0" } # Uncomment this line to work with a local vinca for faster iteration, but remember to comment it back # (and regenerate the pixi.lock) once you push the modified commit to the repo #vinca = { path = "../vinca", editable = true } [feature.beta.tasks] +rename-file-emscripten = { cmd = "ln -s vinca_emscripten32.yaml vinca.yaml", depends-on = ["remove-file"] } generate-recipes = { cmd = "vinca -m", depends-on = ["rename-file"] } +generate-recipes-emscripten = { cmd = "vinca -m --platform emscripten-wasm32", depends-on = ["rename-file-emscripten"] } remove-file = { cmd = "rm vinca.yaml; rm -rf recipes; mkdir recipes" } build_additional_recipes = { cmd = "rattler-build build --recipe-dir ./additional_recipes -m ./conda_build_config.yaml -c robostack-staging -c https://repo.prefix.dev/conda-forge --skip-existing" } +copy_additional_recipes = { cmd = "sh -c 'find additional_recipes/* -maxdepth 0 -type d -exec ln -s ../{} recipes/ \\;'" } build = { cmd = "rattler-build build --recipe-dir ./recipes -m ./conda_build_config.yaml -c robostack-staging -c https://repo.prefix.dev/conda-forge --skip-existing", depends-on = ["build_additional_recipes", "generate-recipes"] } build_one_package = { cmd = "cp ./patch/$PACKAGE.*patch ./recipes/$PACKAGE/patch/; rattler-build build --recipe ./recipes/$PACKAGE/recipe.yaml -m ./conda_build_config.yaml -c robostack-staging -c https://repo.prefix.dev/conda-forge", env = { PACKAGE = "ros-humble-ros-workspace" } } create_snapshot = { cmd = "vinca-snapshot -d humble -o snapshot_$(date +\"%Y-%m-%d-%H-%M-%S\").yaml" } @@ -43,6 +46,21 @@ create_snapshot = { cmd = "vinca-snapshot -d humble -o snapshot_$(date +\"%Y-%m- [environments] beta = ["beta"] +[feature.beta.tasks.build-emscripten] + cmd = [ + "rattler-build", "build", + "--package-format", "tar-bz2", + "--recipe-dir", "./recipes", + "-m", "./conda_build_config.yaml", + "-c", "https://repo.prefix.dev/conda-forge", + "-c", "https://repo.mamba.pm/emscripten-forge", + "-c", "robostack-staging", + "--target-platform", "emscripten-wasm32", + "--skip-existing", + "--test", "skip" + ] + depends-on = ["generate-recipes-emscripten", "copy_additional_recipes"] + [target.linux-64.tasks] rename-file = { cmd = "ln -s vinca_linux_64.yaml vinca.yaml", depends-on = ["remove-file"] } diff --git a/robostack.yaml b/robostack.yaml index ed6d49cae..035849638 100644 --- a/robostack.yaml +++ b/robostack.yaml @@ -132,7 +132,11 @@ glut: osx: [] win64: [freeglut] google-mock: - robostack: [gmock] + robostack: + linux: [gmock] + osx: [gmock] + win64: [gmock] + emscripten: [] graphicsmagick: robostack: [graphicsmagick] graphviz: diff --git a/vinca_emscripten32.yaml b/vinca_emscripten32.yaml new file mode 100644 index 000000000..a2f1c4a37 --- /dev/null +++ b/vinca_emscripten32.yaml @@ -0,0 +1,85 @@ +ros_distro: humble + +# mapping for package keys +conda_index: + - robostack.yaml + - packages-ignore.yaml + +build_number: 12 + +mutex_package: ros2-distro-mutex 0.6.* humble_* + +skip_all_deps: false + +# If full rebuild, the build number of the existing package has +# to match the selected build number for skipping +full_rebuild: true + +packages_skip_by_deps: + - cartographer + - octomap + - fastrtps_cmake_module + - rmw_fastrtps_cpp + - rosidl_typesupport_fastrtps_c + - rosidl_typesupport_fastrtps_cpp + - rmw_cyclonedds_cpp + - rmw_connextdds + - rmw_fastrtps_shared_cpp + - rmw_fastrtps_dynamic_cpp + - rmw_fastrtps_dds_common + - mimick_vendor + - ament_xmllint + - ament_cmake_xmllint + - performance_test_fixture + - rmw_connextdds + - rmw_cyclonedds_cpp + - osrf_testing_tools_cpp + +packages_remove_from_deps: + - cartographer + - octomap + - warehouse_ros_mongo + - ament_xmllint + - ament_cmake_xmllint + - performance_test_fixture + - rosidl_typesupport_fastrtps_c + - rosidl_typesupport_fastrtps_cpp + - fastrtps_cmake_module + - rmw_connextdds + - rmw_cyclonedds_cpp + - rmw_fastrtps_cpp + - rmw_fastrtps_dynamic_cpp + - osrf_testing_tools_cpp + +skip_existing: + # - https://conda.anaconda.org/nmarticorena + # - https://repo.mamba.pm/robostack-wasm + + +packages_select_by_deps: + # only subset of packages to reduce maintainer load + - rclpy + - ros_workspace + - ros_environment + - ament_cmake + - ament_pep257 + - ament_flake8 + - ament_lint + - ament_lint_common + - ament_pycodestyle + - rmw + - rclc + - rclcpp + # - examples_rclcpp_minimal_subscriber + # - examples_rclcpp_minimal_publisher + - builtin_interfaces + - rcutils + - rcpputils + - rosidl_runtime_c + - rosidl_runtime_cpp + - rosidl_typesupport_introspection_c + - rosidl_typesupport_introspection_cpp + - yaml_cpp_vendor + - osrf_testing_tools_cpp + +patch_dir: patch