diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml index bcd84b7..bb30452 100644 --- a/.ci_support/linux_64_.yaml +++ b/.ci_support/linux_64_.yaml @@ -1,5 +1,5 @@ cdt_name: -- cos7 +- conda channel_sources: - conda-forge channel_targets: @@ -8,5 +8,18 @@ docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 idyntree: - '13' +numpy: +- '1.26' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.12.* *_cpython +python_min: +- '3.9' pytorch: - '2.4' +zip_keys: +- - python + - numpy diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 51a09ee..f8051ab 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -43,19 +43,7 @@ setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" source run_conda_forge_build_setup -( -# Due to https://bugzilla.redhat.com/show_bug.cgi?id=1537564 old versions of rpm -# are drastically slowed down when the number of file descriptors is very high. -# This can be visible during a `yum install` step of a feedstock build. -# => Set a lower limit in a subshell for the `yum install`s only. -ulimit -n 1024 - -# Install the yum requirements defined canonically in the -# "recipe/yum_requirements.txt" file. After updating that file, -# run "conda smithy rerender" and this line will be updated -# automatically. -/usr/bin/sudo -n yum install -y mesa-libGL libselinux libXdamage libXxf86vm libXext -) + # make the build number clobber make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" diff --git a/README.md b/README.md index 35581f4..ccac99d 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,10 @@ Current release info | Name | Downloads | Version | Platforms | | --- | --- | --- | --- | | [![Conda Recipe](https://img.shields.io/badge/recipe-adam--robotics-green.svg)](https://anaconda.org/conda-forge/adam-robotics) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/adam-robotics.svg)](https://anaconda.org/conda-forge/adam-robotics) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/adam-robotics.svg)](https://anaconda.org/conda-forge/adam-robotics) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/adam-robotics.svg)](https://anaconda.org/conda-forge/adam-robotics) | +| [![Conda Recipe](https://img.shields.io/badge/recipe-adam--robotics--all-green.svg)](https://anaconda.org/conda-forge/adam-robotics-all) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/adam-robotics-all.svg)](https://anaconda.org/conda-forge/adam-robotics-all) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/adam-robotics-all.svg)](https://anaconda.org/conda-forge/adam-robotics-all) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/adam-robotics-all.svg)](https://anaconda.org/conda-forge/adam-robotics-all) | +| [![Conda Recipe](https://img.shields.io/badge/recipe-adam--robotics--casadi-green.svg)](https://anaconda.org/conda-forge/adam-robotics-casadi) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/adam-robotics-casadi.svg)](https://anaconda.org/conda-forge/adam-robotics-casadi) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/adam-robotics-casadi.svg)](https://anaconda.org/conda-forge/adam-robotics-casadi) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/adam-robotics-casadi.svg)](https://anaconda.org/conda-forge/adam-robotics-casadi) | +| [![Conda Recipe](https://img.shields.io/badge/recipe-adam--robotics--jax-green.svg)](https://anaconda.org/conda-forge/adam-robotics-jax) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/adam-robotics-jax.svg)](https://anaconda.org/conda-forge/adam-robotics-jax) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/adam-robotics-jax.svg)](https://anaconda.org/conda-forge/adam-robotics-jax) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/adam-robotics-jax.svg)](https://anaconda.org/conda-forge/adam-robotics-jax) | +| [![Conda Recipe](https://img.shields.io/badge/recipe-adam--robotics--pytorch-green.svg)](https://anaconda.org/conda-forge/adam-robotics-pytorch) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/adam-robotics-pytorch.svg)](https://anaconda.org/conda-forge/adam-robotics-pytorch) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/adam-robotics-pytorch.svg)](https://anaconda.org/conda-forge/adam-robotics-pytorch) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/adam-robotics-pytorch.svg)](https://anaconda.org/conda-forge/adam-robotics-pytorch) | Installing adam-robotics ======================== @@ -39,16 +43,16 @@ conda config --add channels conda-forge conda config --set channel_priority strict ``` -Once the `conda-forge` channel has been enabled, `adam-robotics` can be installed with `conda`: +Once the `conda-forge` channel has been enabled, `adam-robotics, adam-robotics-all, adam-robotics-casadi, adam-robotics-jax, adam-robotics-pytorch` can be installed with `conda`: ``` -conda install adam-robotics +conda install adam-robotics adam-robotics-all adam-robotics-casadi adam-robotics-jax adam-robotics-pytorch ``` or with `mamba`: ``` -mamba install adam-robotics +mamba install adam-robotics adam-robotics-all adam-robotics-casadi adam-robotics-jax adam-robotics-pytorch ``` It is possible to list all of the versions of `adam-robotics` available on your platform with `conda`: diff --git a/recipe/01-allow_long_paths.patch b/recipe/01-allow_long_paths.patch new file mode 100644 index 0000000..2253687 --- /dev/null +++ b/recipe/01-allow_long_paths.patch @@ -0,0 +1,23 @@ +diff --git a/src/adam/model/std_factories/std_model.py b/src/adam/model/std_factories/std_model.py +index 9f3a1dc..2574b78 100644 +--- a/src/adam/model/std_factories/std_model.py ++++ b/src/adam/model/std_factories/std_model.py +@@ -28,16 +28,10 @@ def get_xml_string(path: str | pathlib.Path): + isPath = isinstance(path, pathlib.Path) + isUrdf = False + +- # Extract the maximum path length for the current OS +- try: +- from ctypes.wintypes import MAX_PATH +- except ValueError: +- MAX_PATH = os.pathconf("/", "PC_PATH_MAX") +- + # Checking if it is a path or an urdf + if not isPath: +- if len(path) <= MAX_PATH and "=3.7 - - pip - - wheel - - setuptools + - python run: - - python >=3.7 - - numpy - - scipy - - casadi - - prettytable - - urdfdom-py - - jax2torch - -test: - source_files: - - tests - imports: - - adam - commands: - # Workaround for glibc <= 2.25 problems, - # See https://github.com/ami-iit/ADAM/pull/38#issuecomment-1546909762 - - pytest ./tests/ -v -k "not gravity" # [not win] - - pytest ./tests/ -v --ignore-glob=*Jax* --ignore-glob=*pytorch* # [win] - requires: - - pip - - pytest - - icub-models - - gym-ignition-models - - pytorch # [not win] - - jax # [not win] - - idyntree - - git - - gitpython + - python + +outputs: + - name: {{ name|lower }} + build: + noarch: python + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + requirements: + host: + - python {{ python_min }} + - pip + - wheel + - setuptools + run: + - python >={{ python_min }} + - numpy + - scipy + - prettytable + - urdfdom-py + test: + source_files: + - tests + commands: + - pytest ./tests/ -v -k "not gravity" --ignore-glob=*Jax* --ignore-glob=*pytorch* --ignore-glob=*CasADi* --ignore-glob=*idyntree* + requires: + - python {{ python_min }} + - pip + - pytest + - icub-models + - gym-ignition-models + - idyntree + - git + - gitpython + + - name: {{ name|lower }}-casadi + build: + noarch: python + requirements: + host: + - python {{ python_min }} + run: + - {{ pin_subpackage('adam-robotics', max_pin='x.x.x') }} + - casadi + - python >={{ python_min }} + test: + source_files: + - tests + commands: + - pytest ./tests/ -v -k "not gravity" --ignore-glob=*Jax* --ignore-glob=*pytorch* + requires: + - python {{ python_min }} + - pip + - pytest + - icub-models + - gym-ignition-models + - idyntree + - git + - gitpython + - casadi + + - name: {{ name|lower }}-jax + build: + noarch: python + requirements: + host: + - python {{ python_min }} + run: + - {{ pin_subpackage('adam-robotics', max_pin='x.x.x') }} + - jax + - python >={{ python_min }} + test: + source_files: + - tests + commands: + - pytest ./tests/ -v -k "not gravity" --ignore-glob=*pytorch* --ignore-glob=*CasADi* --ignore-glob=*idyntree* + requires: + - python {{ python_min }} + - pip + - pytest + - icub-models + - gym-ignition-models + - idyntree + - git + - gitpython + - jax >0.3.0 + + - name: {{ name|lower }}-pytorch + build: + noarch: python + requirements: + host: + - python {{ python_min }} + run: + - {{ pin_subpackage('adam-robotics', max_pin='x.x.x') }} + - jax2torch + - pytorch + - python >={{ python_min }} + test: + source_files: + - tests + commands: + - pytest ./tests/ -v -k "not gravity" --ignore-glob=*Jax* --ignore-glob=*CasADi* --ignore-glob=*idyntree* + requires: + - python {{ python_min }} + - pip + - pytest + - icub-models + - gym-ignition-models + - idyntree + - git + - gitpython + - pytorch + - jax >0.3.0 + + - name: {{ name|lower }}-all + build: + noarch: python + requirements: + host: + - python {{ python_min }} + run: + - {{ pin_subpackage('adam-robotics-casadi', max_pin='x.x.x') }} + - {{ pin_subpackage('adam-robotics-jax', max_pin='x.x.x') }} + - {{ pin_subpackage('adam-robotics-pytorch', max_pin='x.x.x') }} + - python >={{ python_min }} + test: + source_files: + - tests + commands: + - pytest ./tests/ -v -k "not gravity" + - pytest ./tests/ -v -k "not gravity" --ignore-glob=*Jax* + requires: + - python {{ python_min }} + - pip + - pytest + - icub-models + - gym-ignition-models + - idyntree + - git + - gitpython + - casadi + - pytorch + - jax >0.3.0 about: home: https://github.com/ami-iit/ADAM diff --git a/recipe/yum_requirements.txt b/recipe/yum_requirements.txt deleted file mode 100644 index 4e003c7..0000000 --- a/recipe/yum_requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -mesa-libGL -libselinux -libXdamage -libXxf86vm -libXext