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