tulip-control/dd

Publishing Wheels

Closed this issue · 4 comments

Hello,

Perhaps I'm missing something, but wheels don't appear to be being published.

Would it be possible to use travis to keep wheels up to date?

https://docs.travis-ci.com/user/deployment/pypi/

Thank you for the suggestion. Indeed, wheels are currently not available on PyPI, contrary to what the file README.md describes. I will consider creating wheels using Travis CI (creating wheels for dd involves using the docker images from https://github.com/pypa/manylinux).

Makes sense. I'd like to point out the cibuildwheel project as well which helps a bit for targeting more than manylinux.

Thank you for pointing to cibuildwheel. Following d08c6e4, dd == 0.5.6 has been released including a manylinux2014_x86_64 wheel file. It turned out that preparing manylinux2014_x86_64-compatible wheels is possible in a Debian GNU/Linux 10 (i.e., outside the docker images mentioned above).

About distributing wheels for operating systems other than GNU/Linux:

  • macOS: dd builds on macOS, but when creating wheels on macOS I am not sure what the licensing terms are, so whether distribution of macOS wheels is allowed. Looking inside a macOS wheel, for example with otool -L cudd.cpython-39-darwin.so shows dependence on /usr/lib/libSystem.B.dylib (in addition to /opt/local/lib/libgcc/libgcc_s.1.dylib, namely libgcc from MacPorts). It appears that the Free Software Foundation considers that dynamic linking creates a derivative work, and so dynamic linking to /usr/lib/libSystem.B.dylib would require knowing under what license this macOS system library is provided.

  • Windows: dd has been developed on GNU/Linux and works also on macOS. dd is not configured to build on Windows (building may work with a suitable configuration under WSL or Cygwin). In any case, I am not sure what the licensing situation would be for binaries built on Windows.

For the above reasons, currently PyPI does not include wheels for macOS and Windows. A wheel file for GNU/Linux is distributed on PyPI.