The way I read [0], the new resolver is already enabled and the legacy resolver is already removed!

I think that the resolver will have a hard time detecting package inconsistencies prior to upgrade when the installer calls pip for all the pulp modules individually.

With rpm, you have a better experience by passing all the upgrade rpms in one transaction, to avoid dependency analysing intermediate states. I want to know if the final configuration is inconsistent before making any changes to my installation (which is the claimed behavior of the pulp installer...).

Ben.

On 2 June 2021 8:38:46 am Daniel Alley <[email protected]> wrote:
It turns out that pulp-2to3-migration and pulp-ansible are not yet compatible with pulpcore-3.13.0.

Unfortunately there were some delays with the pulp_ansible release, but it should be up tomorrow, and the pulp-2to3-migration release some time this week. Sincere apologies for the frustration.

This brings up a good point though. The reason this is a problem is that Python has historically done a bad job of resolving dependencies and avoiding updates that break packages. They have recently done a lot of work improving that [0] but until it's enabled by default we should be more careful about our releasing, or adjust the instructions to avoid upgrade issues.

Maybe we can opt-in to the new resolver in the installer? Probably something to investigate.

[0] https://pyfound.blogspot.com/2020/11/pip-20-3-new-resolver.html

On Tue, Jun 1, 2021 at 3:12 AM Ben Stanley <[email protected]> wrote:
Hello Daniel,
I attempted to upgrade my pulp installation using these instructions.
I upgraded the pulp_installer as described.
Note that I am behind a proxy server, and I have to edit the file
~/.ansible/collections/ansible_collections/pulp_installer/roles/pulp_common/tasks/repos.yml to remove the rpm_key module (which doesn't work with my proxy) and replace it with the raw module (which does work with my proxy). I have described this previously on this mailing list. I have properly set my proxy environment variables (proxy, proxy_http, proxy_https and no_proxy) before attempting this procedure.
I ran the pulp_installer as:
ansible-playbook pulp_install.yml -l honeybee
<much output removed>
TASK [pulp.pulp_installer.pulp_common : Install pulpcore via PyPI] ************* fatal: [honeybee]: FAILED! => {"changed": false, "cmd": ["/usr/local/lib/pulp/bin/pip", "install", "pulpcore==3.13.0"], "msg": "\n:stderr: WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required',))': /simple/pulpcore/\nWARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required',))': /simple/pulpcore/\nWARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required',))': /simple/pulpcore/\nWARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required',))': /simple/pulpcore/\nWARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required',))': /simple/pulpcore/\nERROR: Could not find a version that satisfies the requirement pulpcore==3.13.0 (from versions: none)\nERROR: No matching distribution found for pulpcore==3.13.0\n"}

It seems that the pulp_installer does not provide the proxy information to pip.
When I run pip on the command line, it works.

[root@honeybee pulp_installation]# /usr/local/lib/pulp/bin/pip install pulpcore==3.13.0
Collecting pulpcore==3.13.0
...
Attempting uninstall: pulpcore
Found existing installation: pulpcore 3.12.2
Uninstalling pulpcore-3.12.2:
Successfully uninstalled pulpcore-3.12.2
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. pulp-2to3-migration 0.11.0 requires pulpcore<3.13,>=3.6, but you have pulpcore 3.13.0 which is incompatible. pulp-rpm 3.10.0 requires pulpcore<3.13,>=3.7, but you have pulpcore 3.13.0 which is incompatible. pulp-python 3.2.0 requires pulpcore<3.13,>=3.9, but you have pulpcore 3.13.0 which is incompatible. pulp-deb 2.11.1 requires pulpcore<3.13,>=3.10, but you have pulpcore 3.13.0 which is incompatible. pulp-container 2.5.1 requires pulpcore<3.13,>=3.11, but you have pulpcore 3.13.0 which is incompatible. pulp-ansible 0.7.2 requires pulpcore<3.13,>=3.10, but you have pulpcore 3.13.0 which is incompatible. Successfully installed Django-2.2.23 aiodns-3.0.0 aiofiles-0.7.0 django-currentuser-0.5.3 django-guardian-2.4.0 drf-spectacular-0.16.0 pulpcore-3.13.0 pycares-4.0.0 rq-1.8.1 WARNING: You are using pip version 21.1.1; however, version 21.1.2 is available. You should consider upgrading via the '/usr/local/lib/pulp/bin/python3.6 -m pip install --upgrade pip' command.
[root@honeybee pulp_installation]#
Then I have to run the installer again to deal with the other packages. This errors out due to the same problem seen earlier. However, I can run the pip command manually (using the command line shown in the installer error message). It turns out that pulp-2to3-migration and pulp-ansible are not yet compatible with pulpcore-3.13.0. I managed to upgrade pulp-rpm, pulp-python, pulp-deb and pulp-container.
Ben.


On 27/5/21 10:48 pm, Daniel Alley wrote:





Pulpcore 3.13.0 [0] and pulp_installer 3.13.0 [1] have been released.

Details of the most important changes are available in our blog [2]. For a full list of changes, please check the changelog for pulpcore [3] and pulp_installer [4].

# Installation and Upgrade

Users should use the 3.13.0 release of pulp_installer [1] to install or upgrade their installations. This version of the installer will check compatibility of all installed plugins with pulpcore 3.13. The installer will abort if any plugin is incompatible.

The pulp_installer collection can be installed from Ansible Galaxy with the following command:

ansible-galaxy collection  install --force pulp.pulp_installer

The --force flag will upgrade the collection if you had a previous version installed.

# Plugin API

Plugin writers can see the API changes here [6].

Due to the 1-cycle deprecation policy, the recommended strategy is to pin plugins to a 3.y and 3.y+1 version of pulpcore. So for a compatibility release with 3.13 use: "pulpcore>=3.13,<3.15". If your plugin is compatible with earlier pulpcore releases, use: "pulpcore>=3.y,<3.15", where y is the eldest pulpcore release your plugin is compatible with.

[0] https://pypi.org/project/pulpcore/3.13.0/
[1] https://galaxy.ansible.com/pulp/pulp_installer
[2] https://pulpproject.org/2021/05/24/pulpcore-3.13-is-generally-available/

[3] https://docs.pulpproject.org/pulpcore/changes.html#id1
[4] https://pulp-installer.readthedocs.io/en/latest/CHANGES/#3130-2021-05-26
[5] https://docs.pulpproject.org/pulpcore/changes.html#plugin-api

_______________________________________________
Pulp-list mailing list
[email protected]
https://listman.redhat.com/mailman/listinfo/pulp-list
_______________________________________________
Pulp-list mailing list
[email protected]
https://listman.redhat.com/mailman/listinfo/pulp-list

_______________________________________________
Pulp-list mailing list
[email protected]
https://listman.redhat.com/mailman/listinfo/pulp-list

Reply via email to