rocky / pycdio

Python interface to the libcdio - the CD Input and Control library
GNU General Public License v3.0
15 stars 8 forks source link

Please consider providing manylinux wheels for pycdio #6

Closed arcctgx closed 5 months ago

arcctgx commented 6 months ago

Hi,

Currently pycdio provides wheels, but these are linux_x86_64 not manylinux wheels, and they are not installed with pip install pycdio command. Issuing that command will download the pycdio source distribution from PyPI, and attempt to build pycdio from it. This is not convenient for the end user, because it requires having some prerequisites (libcdio, swig and a C compiler) in the system.

The usual approach to building Python wheels nowadays is to use a Docker container provided by the Python Packaging Authority (PyPA) to first build a linux_x86_64 wheel file, and convert it to manylinux wheel using auditwheel tool. These manylinux wheels can be uploaded to PyPI (AFAIK PyPI refuses to accept linux_x86_64 wheels anymore), and can be installed with pip install without having to build anything on end user's machine.

I created a proof of concept Docker container that builds manylinux wheels for pycdio. It is available in a branch in my pycdio fork: https://github.com/rocky/pycdio/compare/master...arcctgx:pycdio:wheel. If you're interested, I can clean up the history of that branch and create a pull request. Please let me know what you think.

rocky commented 6 months ago

I would greatly appreciate it you would clean it up and put in a PR. Thanks.

Open source is only as good as the effort that people are willing to spend on it.

(I am halfway around the world from where I live, but I'll return soon.)

arcctgx commented 6 months ago

Sure, I just opened #7. Have a look once you're back, and let's discuss further there.

rocky commented 5 months ago

After thinking about this further, looking at the PR in https://github.com/rocky/pycdio/pull/7 , and discussing a little there, I think this is best done in a separate repository.

If this were adding a few build flags or adjusting code in a very small way, and if it had very little maintenance impact, then it could be added to the main repository. However it looks right now that this is not the situation here.

Although this package has some code around packaging, the packaging code is kept pretty minimum.

In the past, I have had such requests to add a fair bit of code to general software to make it handle somewhat specific targets. In each case, it didn't work out well. I think that is why, in general, there is a distinction between those who packages, and those who write the software. Most software comes with a little bit of packaging. And this software comes with source code which can is what those how want more elaborate forms of packaging can use.

arcctgx commented 5 months ago

I see. It's unfortunate you didn't tell me you are not interested in adding code related to distributing Python wheels when I first asked.

rocky commented 5 months ago

I see. I didn't understand whether this was a small change such as a tweak in flags or a large one as it seems to be here. So I suppose it is unfortunate that the magnitude, and fragileness of a changes wasn't communicated when you first asked.

I am always amazed by the ease and quickness people are willing to request the level of service others might provide that they would not be willing to provide themselves.

When faced with the responsibility of supporting a facet of this project that you express interest in, you walk away and show regret for having spent a small bit of time on (compared to the effort to create this and maintain it).

Personally, I have very little need and use for this facet, although I would be willing to use it adding to the release burden. Personally though, I am glad not to have to do this.

Overall though writing the project and maintaining to the level that I do has been done has been more for others use than my use.