Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iDynTree PyPI binary packaging: Migrate from manylinux_2_24 to manylinux_2_28 and disable IDYNTREE_USES_IPOPT DIDYNTREE_USES_ASSIMP:BOOL IDYNTREE_USES_IRRLICHT options on PyPI #1068

Merged
merged 5 commits into from
May 2, 2023

Conversation

traversaro
Copy link
Member

Fix #1067 .

manylinux_2_24 was EOL since the beginnng of 2023: pypa/manylinux#1369 .

…nux_2_28

manylinux_2_24 was EOL since the beginnng of 2023: pypa/manylinux#1369 .
@traversaro traversaro requested a review from diegoferigo April 28, 2023 09:02
@traversaro
Copy link
Member Author

Apparently manylinux_2_24 is Debian-based, while manylinux_2_28 is Almalinux (i.e. RHEL clone) based (see https://github.com/pypa/manylinux#docker-images), so we need also to change the installation of dependencies.

@traversaro
Copy link
Member Author

traversaro commented Apr 28, 2023

At a first glance, almalinux does not have assimp, irrlicht and ipopt packages, while it has eigen and libxml2 . Probably we can wait for @diegoferigo to be back to discuss the way forward here.

At a first glance options are:

  • Build wheels with only eigen and libxml2 options enabled,
  • Disable wheels generation at all.

@diegoferigo
Copy link
Member

At a first glance options are:

* Build wheels with only eigen and libxml2 options enabled,

* Disable wheels generation at all.

The PyPI wheels seem to me quite effortless to maintain. Rather than removing the support of the wheels entirely, I'd proceed with just eigen and libxml2 for now.

If anyone needs features based on assimp|irrlicht|ipopt, they can either rely on conda / source-based installation, or add the support to the wheel. It's not straightforward but not too complicated.

The only feature that could be missed is the NLP IK that is based on ipopt. Maybe this can be addressed using coin-or/coinbrew that might simplify building everything from sources.

@diegoferigo
Copy link
Member

@traversaro you should also update the following options:

idyntree/setup.py

Lines 18 to 32 in e555c58

cmake_configure_options=[
"-DBUILD_SHARED_LIBS:BOOL=OFF",
"-DIDYNTREE_USES_PYTHON:BOOL=ON",
"-DIDYNTREE_COMPILE_TESTS:BOOL=OFF",
"-DIDYNTREE_PACKAGE_FOR_PYPI:BOOL=ON",
"-DIDYNTREE_USES_IPOPT:BOOL=ON",
"-DIDYNTREE_USES_ASSIMP:BOOL=ON",
"-DIDYNTREE_USES_IRRLICHT:BOOL=ON",
"-DIDYNTREE_USES_OSQPEIGEN:BOOL=OFF",
"-DIDYNTREE_USES_ALGLIB:BOOL=OFF",
"-DIDYNTREE_USES_WORHP:BOOL=OFF",
"-DIDYNTREE_USES_YARP:BOOL=OFF",
"-DIDYNTREE_USES_ICUB_MAIN:BOOL=OFF",
"-DIDYNTREE_PYTHON_PIP_METADATA_INSTALL:BOOL=OFF",
]

@traversaro
Copy link
Member Author

@traversaro you should also update the following options:

idyntree/setup.py

Lines 18 to 32 in e555c58

cmake_configure_options=[
"-DBUILD_SHARED_LIBS:BOOL=OFF",
"-DIDYNTREE_USES_PYTHON:BOOL=ON",
"-DIDYNTREE_COMPILE_TESTS:BOOL=OFF",
"-DIDYNTREE_PACKAGE_FOR_PYPI:BOOL=ON",
"-DIDYNTREE_USES_IPOPT:BOOL=ON",
"-DIDYNTREE_USES_ASSIMP:BOOL=ON",
"-DIDYNTREE_USES_IRRLICHT:BOOL=ON",
"-DIDYNTREE_USES_OSQPEIGEN:BOOL=OFF",
"-DIDYNTREE_USES_ALGLIB:BOOL=OFF",
"-DIDYNTREE_USES_WORHP:BOOL=OFF",
"-DIDYNTREE_USES_YARP:BOOL=OFF",
"-DIDYNTREE_USES_ICUB_MAIN:BOOL=OFF",
"-DIDYNTREE_PYTHON_PIP_METADATA_INSTALL:BOOL=OFF",
]

Thanks, done in 4378bbe .

@traversaro
Copy link
Member Author

Ok, the PR is ready for review and for now we disable ipopt, assimp and irrlicht support in binary wheels. Contributition to enable back (and mantain) the support for them is welcome if anyone needs such support.

Copy link
Member

@diegoferigo diegoferigo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, thanks @traversaro!

@traversaro traversaro changed the title iDynTree PyPI binary packaging: Migrate from manylinux_2_24 to manylinux_2_28 iDynTree PyPI binary packaging: Migrate from manylinux_2_24 to manylinux_2_28 and disable IDYNTREE_USES_IPOPT DIDYNTREE_USES_ASSIMP:BOOL IDYNTREE_USES_IRRLICHT options on PyPI May 2, 2023
@traversaro traversaro merged commit 1924bc8 into master May 2, 2023
@traversaro traversaro deleted the traversaro-patch-4 branch May 2, 2023 12:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Python CI/CD Build wheels [ubuntu-22.04] step is failing end of April 2023
2 participants