-
-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
Only force gnureadline in setup.py with bdist_wheel #7047
Conversation
The inconsistency (asymmetry) of unconditionally adding gnureadline as a dependency of binary distributions can cause issues like reported at paylogic/pip-accel#34
The reason for bdist is that making a wheel on a machine that has readline should not exclude gnureadline from the dependency list, because it's still a dependency on the machines on which the wheel (or egg, etc.) will be installed. |
This PR makes the behavior of creating a bdist less consistent because the resulting bdist is different depending on the computer building the bdist. In master, bdists always have the same dependencies, regardless of the compiling host. There is a fundamental difference between installing from sdists and bdists because when installing from sdist, the environment can be checked at the destination. With bdists, dependencies are computed without sufficient knowledge of the destination, so the least common denominator choice is taken. Since IPython actually only cares about wheel bdists, and pip-accel uses bdist_dumb for some reason, if you change the check from |
At the time, it was true of eggs as well, and it remains the right behavior for all bdists intended for distribution. But the only official bdists of IPython from now on are wheels, so the reality is that most bdists other than our own wheels are meant for private re-use (e.g. pip-accel), where the least-common-denominator behavior is not helpful. |
Only force gnureadline in setup.py with bdist_wheel instead of all bdists
@minrk: Thanks for the feedback and for the quick merge! |
The asymmetry (inconsistency) of unconditionally adding
gnureadline
as a dependency of binary (but not source) distributions insetup.py
can cause issues like reported at paylogic/pip-accel/issues/34. Would you be willing to accept this pull request to remove the asymmetry? For reference, it seems that this was introduced in ba0cd52 with the following comment:I guess it's kind of ironic that the original reasoning was consistency and now I'm calling this inconsistent :-). I'm interested to hear whether you agree about the asymmetry though. If you need more context about why I want to fix the asymmetry please refer to paylogic/pip-accel/issues/34, I'm posting a detailed explanation there.