-
Notifications
You must be signed in to change notification settings - Fork 67
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
Upload only linux_x86_64 wheels instead of manylinux2014 #777
Upload only linux_x86_64 wheels instead of manylinux2014 #777
Conversation
Let me try the wheel before merging, I let you know if it is ok. |
Ok! |
In #776 (comment) I wrote that is In any case, using auditwheel to vendor the external dependencies would in any case result with a wheel with libraries with the old ABI, taken from CentOS. I think that there is no escape here. Let's revert to what we used to do until now in other projects: building on an ubuntu system and upload the wheel as it is, just performing the renaming workaround. We loose the vendoring of the dependencies, but this is the price we have to pay. I think we learnt a lot in these days and faced many of the challenges related to a PEP compliant PyPI packaging. The next standard has been finalized in PEP600 (other infos here), I guess we have to wait its adoption by the build tools and the update of all the tooling (pypa/manylinux#542). Alternatively, conda is already available. Here below I leave the reference code I used to build the old wheels with cibuildwheel snippet # The following can be adapted to build wheels on macOS and Windows
build_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
python-version:
- 3.8
os:
# - macos-latest
# - windows-latest
steps:
- uses: actions/checkout@master
- run: git fetch --prune --unshallow
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install cibuildwheel
run: pip install cibuildwheel
- name: Build wheels
run: python -m cibuildwheel --output-dir wheelhouse
env:
CIBW_BUILD_VERBOSITY: 1
CIBW_BUILD: cp38-manylinux_x86_64
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014
CIBW_BEFORE_BUILD: "yum install -y eigen3-devel assimp-devel libxml2-devel coin-or-Ipopt-devel swig3"
CIBW_TEST_COMMAND: "python -c 'import idyntree.bindings'"
# Note: here we repair the wheel maintaining the linux_x86_64 platform
CIBW_REPAIR_WHEEL_COMMAND_LINUX: "auditwheel repair --plat linux_x86_64 -w {dest_dir} {wheel}"
- uses: actions/upload-artifact@v2
if: github.repository == 'robotology/idyntree'
with:
path: ./wheelhouse/*.whl |
Ok for me. Can you make a PR to refer to the old case? I think the automatic publishing on PyPI is still great, even if just in source form. |
You anticipated me, when you commented I was editing the comment above with the old code. Is it fine? |
301007e
to
b4c816d
Compare
b4c816d
to
4084859
Compare
Good to go as soon as CI turns green. I tested the wheels bu downloading the artifact and they work well 🎉 |
Just to clarify for iDynTree on PyPI this is still a change, right? Before we were posting on PyPI source archives, so anyone doing |
To clarify, I am totally ok with this change, I just want to make sure that I got correctly change. |
There is no real change, what you wrote here (with small modifications) is correct:
My point is that we upload both the For the records, this is the expected ABI, that could be available also on other distributions, not specifically only for Ubuntu 20.04:
|
I updated my previous #777 (comment) with new links and resources if anyone is interested in the upcoming |
Ok thanks! |
Closes #776