rez-pip

Modern rez-pip


Keywords
package-manager, pip, python, rez, wheel
License
Other
Install
pip install rez-pip==0.3.2

Documentation

rez-pip

Coverage

Modern rez-pip implementation. Very WIP.

TODOs

  • Install packages without using pip
  • Specify Python version to use
  • Better logs and CLI experience
    • Use logging
    • Progress bars for download?
  • Confirm that Python 2 is supported
    • It is not...
  • Confirm that the theory works as expected
  • Windows support
  • Hook into rez
    • Install each package in a different --target
    • Create rez package
    • Copy distribution files to rez package.
    • Make it available as a rez plugin/sub-command
    • Discover Python package using rez and use that when available. I think it's still fine to support non-rezified Python interpreters though.
    • Only download+convert package if it's not already in the rez repositories.
    • etc
  • Accept multiple package names as input
  • Accept requirements files as input
  • Accept wheel files as input
  • Properly support platform tags (wheels tags) so that GLIBC is respected, min macOS is also supported.
  • Correctly handle Requires-Python metadata.
  • Review all TODOs in the code.
  • What whould we do with rez.system and rez.vendor.version?
  • Gather a list of problematic packages from GitHub and test against them.
  • Go through GitHub issues and summarize what needs to be covered by the new rez-pip.
  • Support abi3 wheels (to avoid having to re-install C extensions for every python version).

Tips

For now, it can be run like this:

rez-pip2 pytest

By default, rez packages will be released. You can choose a different path by passing the --install-path argument to rez-pip2.

Packages to test against