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

doc: Document how to deal with dynamic linking #1022

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

LecrisUT
Copy link
Collaborator

I split the general documentation from #1009

Signed-off-by: Cristian Le <[email protected]>
Comment on lines +31 to +32
One downside of these tools is that all dependencies are duplicated and bundled
in each project.
Copy link
Collaborator

@henryiii henryiii Mar 19, 2025

Choose a reason for hiding this comment

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

These tools also do name mangling, which ensures that each wheel is independent, as required to be a valid manylinux wheel. Wheels are not allowed to have binary dependencies on each other. This irritates some packages like scipy and numpy, which would love to be able to share thread pools, for example, but that isn't allowed. It is allowed with Conda.

(A few wheels do fake it, though, namely wheels using CUDA, making a "manylinux" wheel that technically is invalid. The WheelNext project is hoping to help with all this.)

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Hmm, any reading that I can look at? The only reference I found is about avoiding global libraries and clashes, but not on binary dependence. I've only looked at PEP600 and PEP513.

Yeah WheelNext would be great. Any indication if this would be available for build-backends to experiments first or will it need pip install frontends interface first?

Yeah more caveats would be in order for this section. I am thinking that this would be useful when the dependent package has a good SOVERSION matching with the pyproject file and the consumer has a good version pinning. Yeah if you do a pip upgrade of the dependency it would potentially break things, but that's true for pure python as well.

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.

2 participants