dd
dd copied to clipboard
setuptools installs release candidates, unlike pip
The recommended way to fetch and compile CUDD and its Cython bindings is python setup.py install --fetch --cudd. This uses setuptools for installing dependencies, so it allows release candidates, as it happened with networkx == 1.11rc2. In contrast, pip does not allow release candidates by default. This inconsistency can cause confusion, especially between local and CI builds. Fix the behavior of pip --install-option to avoid running python setup.py directly.
Is it correct that this issue depends on https://github.com/pypa/pip/issues/1883 ?
Yes, if pip does not propagate dd-specific --install-options to packages that dd depends on (which don't recognize them, raising errors), then it will be possible to instruct dd to fetch and compile CUDD. When that becomes possible, then pip install can be used instead of python setup.py (which makes a difference only for installing in an environment where dependencies are absent).
(Remark: invoking pip install --pre allows release candidates.)
For Linux systems with Python 3.5 or 3.6, dd >= 0.5.3 wheels that contain CUDD are available from PyPI, so in those use cases passing --fetch and --cudd is unnecessary.