ManimCommunity / ManimPango

Binding for Pango, to use with Manim.
https://manimpango.manim.community
MIT License
43 stars 13 forks source link

Removing Linux Wheels #27

Closed naveen521kk closed 3 years ago

naveen521kk commented 3 years ago

This issue is for tracking and discussing removing the manylinux wheel provided by us and uploaded to PyPI. We had already been warning users about this here.

Issue

On Linux, Pango is something that is part of the system itself being GNOME, so us packing Pango in wheels provided causes weird issues.

There could be many more please feel free to inform me.

Cause

The main cause of this problem is providing wheels which contain Pango and pip preferring to install wheel rather than compiling from source. The main reason I was tempted to build wheels was because of ReadtheDocs builds in ManimCommunity Docs doesn't have the Pango dev version installed...

Solution

Not to upload manylinux wheels to PyPI. Instead of that, uploading those wheels to Github Release can be done. On the ReadtheDocs build for ManimCommunity docs, those wheels can be hyperlinked in the requirements.txt file or set up a Conda Env so that Pango is provided by Conda.

Process

There could be much more work feel free to edit this message.

einarf commented 3 years ago

Thanks for creating this issue. I've had several people poking me about it. With wheels on Ubuntu/Debian there is stack corruption happening for some reason. The outcome is pretty random. Deadlock, segfault or it magically working out of pure luck. Compiling from source solved the issue.

I'm guessing Grant should be notified that the install instructions for Linux are slightly different? Can just add a link to manimpango readme in the 3b1b/manim. Anything to avoid 1000 new questions and issues 😄

naveen521kk commented 3 years ago

I'm guessing Grant should be notified that the install instructions for Linux are slightly different? Can just add a link to panimpango readme in the 3b1b/manim. Anything to avoid 1000 new questions and issues smile

That can be done, I will make a PR to update their install instructions, but I am more on removing it if it is useless and cause problems.

Also, will removing the wheels cause any problems, I think only readthedocs build has, and I had a solution for that in the original comment, if not I will remove them in the next release. Also, on a side note, I have noticed that pip prefers wheels by default, in that case not publishing wheel for a version, will pip download wheels of old release then?

einarf commented 3 years ago

Yup. Pip will look for wheels first, then fall back to source distribution. I think setup.py install might only grab source distribution still. If no version constraint it will pick the latest release regardless of wheels or not.

naveen521kk commented 3 years ago

Thanks, then I think wheels can be removed in the next release and I am working on it.

naveen521kk commented 3 years ago

There will be a new release after #31 is merged which will not have wheels.

naveen521kk commented 3 years ago

@einarf This shouldn't be a problem now, there is a new release published a few minutes ago, which didn't upload wheels for linux.