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

python: remove _manylinux.py #75763

Merged
merged 1 commit into from Dec 16, 2019
Merged

python: remove _manylinux.py #75763

merged 1 commit into from Dec 16, 2019

Conversation

andir
Copy link
Member

@andir andir commented Dec 16, 2019

Motivation for this change
This will turn manylinux support back on by default.

PIP will now do runtime checks against the compatible glibc version to
determine if the current interpreter is compatible with a given
manylinux specification. However it will not check if any of the
required libraries are present.

The motivation here is that we want to support building python packages
with wheels that require manylinux support. There is no real change for
users of source builds as they are still buildings packages from source.

The real noticeable(?) change is that impure usages (e.g. running `pip
install package`) will install manylinux packages that previously
refused to install.
Previously we did claim that we were not compatible with manylinux and
thus they wouldn't be installed at all.

Now impure users will have basically the same situation as before: If
you require some wheel only package it didn't work before and will not
properly work now. Now the program will fail during runtime vs during
installation time.

I think it is a reasonable trade-off since it allows us to install
manylinux packages with nix expressions and enables tools like
poetry2nix.

This should be a net win for users as it allows wheels, that we
previously couldn't really support, to be used.
Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.
Notify maintainers

cc @FRidh

@FRidh
Copy link
Member

FRidh commented Dec 16, 2019

As discussed, the change is good, however, I would like the commit to describe a bit more the motivation (so what we discussed per chat).

@andir
Copy link
Member Author

andir commented Dec 16, 2019

As discussed, the change is good, however, I would like the commit to describe a bit more the motivation (so what we discussed per chat).

Yeah, will update that once we have that ;)

This will turn manylinux support back on by default.

PIP will now do runtime checks against the compatible glibc version to
determine if the current interpreter is compatible with a given
manylinux specification. However it will not check if any of the
required libraries are present.

The motivation here is that we want to support building python packages
with wheels that require manylinux support. There is no real change for
users of source builds as they are still buildings packages from source.

The real noticeable(?) change is that impure usages (e.g. running `pip
install package`) will install manylinux packages that previously
refused to install.
Previously we did claim that we were not compatible with manylinux and
thus they wouldn't be installed at all.

Now impure users will have basically the same situation as before: If
you require some wheel only package it didn't work before and will not
properly work now. Now the program will fail during runtime vs during
installation time.

I think it is a reasonable trade-off since it allows us to install
manylinux packages with nix expressions and enables tools like
poetry2nix.

This should be a net win for users as it allows wheels, that we
previously couldn't really support, to be used.
@ofborg ofborg bot requested a review from andersk December 16, 2019 15:47
gilligan added a commit to nix-community/poetry2nix that referenced this pull request Dec 16, 2019
As per NixOS/nixpkgs#75763 this environment
variable is not needed anymore. Instead python interpreters are now
assuming compatibility by default.
@andir
Copy link
Member Author

andir commented Dec 16, 2019

@FRidh let me know if the current commit message is good enough

@FRidh
Copy link
Member

FRidh commented Dec 16, 2019

Commit message looks good to me! Maybe also add an entry in the change log.

@andir andir merged commit 8185415 into NixOS:staging Dec 16, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants