Issue #6642
Updated by mdepaulo@redhat.com over 4 years ago
Consider the following scenario: 1. Pulp & pulp-file were installed prior to the pre-flight check being implemented in pulp_installer 3.2.0. pulp_installer, like Pulp 3.0. 2. The user runs the latest pulp_installer (3.3), to upgrade pulpcore (3.3) & the overall pulp install. 3. The user specifies to install pulp-file in pulp_install_plugins, but does not specify "upgrade" or "version" for it. This instructs the installer to not upgrade pulp-file. This causes the following to happen 1. /usr/local/lib/pulp/requirements.txt does not already exist from the Pulp 3.0 install run. 2. pip-compile sees "pulp-file" in requirements.in that pulp_installer generates, but no pulp-file in requirements.txt. It therefore assumes that no pulp-file is installed, and the latest pulp-file will be installed by our later install task. The pip-compile pre-flight check passes. 3. When pip goes to install, it sees that an older pulp-file is installed, and leaves it at the older version. 4. The old pulp-file is actually incompatible with current pulpcore 3.3, and later tasks fail with a failed import. Similar mishap could happen if the user modified the virtualenv manually with pip commands and not pip-compile. I propose we address this by always generating requirements.txt via `pip freeze`.