<div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">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 <span style="font-family:sans-serif">individually.</span></div></blockquote><div><br></div><div>Yup, you're definitely right about that...</div><div><br></div><div>We do actually have a tool for checking the compatibility of all of the plugins (it was one of fao89's hobby projects) but haven't integrated it into the upgrade workflow. Maybe we should, to avoid issues like this. Although - not having missing releases, would be preferable.</div><div><br></div><div>The ansible plugin is released, the migration plugin is not (yet) but I'll let you know once it is.<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jun 1, 2021 at 6:59 PM Ben Stanley <<a href="mailto:ben.stanley@gmail.com">ben.stanley@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><u></u>
<div>
<div dir="auto">
<div dir="auto">The way I read [0], the new resolver is already enabled and the legacy resolver is already removed!</div><div dir="auto"><br></div><div dir="auto">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 <span style="font-family:sans-serif">individually.</span></div><div dir="auto"><br></div><div dir="auto">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...).</div><div dir="auto"><br></div><div dir="auto">Ben. </div><div dir="auto"><br></div>
<div id="gmail-m_-3770306341536141958aqm-original" style="color:black">
<div>
<div style="color:black">
<p style="color:black;font-size:10pt;font-family:sans-serif;margin:8pt 0px">On 2 June 2021 8:38:46 am Daniel Alley <<a href="mailto:dalley@redhat.com" target="_blank">dalley@redhat.com</a>> wrote:</p>
<blockquote type="cite" class="gmail_quote" style="margin:0px 0px 0px 0.75ex;border-left:1px solid rgb(128,128,128);padding-left:0.75ex">
<div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">It turns out that
pulp-2to3-migration and pulp-ansible are not yet compatible with
pulpcore-3.13.0.</blockquote><div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>Maybe we can opt-in to the new resolver in the installer? Probably something to investigate.<br></div><div><br></div><div>[0] <a href="https://pyfound.blogspot.com/2020/11/pip-20-3-new-resolver.html" target="_blank">https://pyfound.blogspot.com/2020/11/pip-20-3-new-resolver.html</a></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jun 1, 2021 at 3:12 AM Ben Stanley <<a href="mailto:ben.stanley@gmail.com" target="_blank">ben.stanley@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<p>Hello Daniel,</p>
<p>I attempted to upgrade my pulp installation using these
instructions.</p>
<p>I upgraded the pulp_installer as described.</p>
<p>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.</p>
<p>I have properly set my proxy environment variables (proxy,
proxy_http, proxy_https and no_proxy) before attempting this
procedure.<br>
</p>
<p>I ran the pulp_installer as:</p>
<p>ansible-playbook pulp_install.yml -l honeybee</p>
<p><much output removed></p>
<p>TASK [pulp.pulp_installer.pulp_common : Install pulpcore via
PyPI] *************<br>
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"}<br>
<br>
</p>
<p>It seems that the pulp_installer does not provide the proxy
information to pip.</p>
<p>When I run pip on the command line, it works.</p>
<p> </p>
<p style="margin-bottom:0cm;line-height:100%">
<span style="font-family:Liberation Mono,monospace"><span style="font-size:8pt">[root@honeybee
pulp_installation]# <b>/usr/local/lib/pulp/bin/pip install
pulpcore==3.13.0</b></span></span></p>
<p style="margin-bottom:0cm;line-height:100%"><span style="font-family:Liberation Mono,monospace"><span style="font-size:8pt">Collecting
pulpcore==3.13.0</span></span></p>
<p><span style="font-size:8pt"><span style="font-family:Liberation Mono,monospace">...</span></span></p>
<p><span style="font-family:Liberation Mono,monospace"><span style="font-size:8pt">Attempting
uninstall: pulpcore</span></span></p>
<p style="margin-bottom:0cm;line-height:100%"> <span style="font-family:Liberation Mono,monospace"><span style="font-size:8pt">Found
existing installation: pulpcore 3.12.2</span></span></p>
<p style="margin-bottom:0cm;line-height:100%"> <span style="font-family:Liberation Mono,monospace"><span style="font-size:8pt">Uninstalling
pulpcore-3.12.2:</span></span></p>
<p style="margin-bottom:0cm;line-height:100%"> <span style="font-family:Liberation Mono,monospace"><span style="font-size:8pt">Successfully
uninstalled pulpcore-3.12.2</span></span></p>
<p style="margin-bottom:0cm;line-height:100%"><span style="font-family:Liberation Mono,monospace"><span style="font-size:8pt">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.</span></span></p>
<p style="margin-bottom:0cm;line-height:100%"><span style="font-family:Liberation Mono,monospace"><span style="font-size:8pt">pulp-2to3-migration
0.11.0 requires pulpcore<3.13,>=3.6, but you have
pulpcore
3.13.0 which is incompatible.</span></span></p>
<p style="margin-bottom:0cm;line-height:100%"><span style="font-family:Liberation Mono,monospace"><span style="font-size:8pt">pulp-rpm
3.10.0 requires pulpcore<3.13,>=3.7, but you have
pulpcore
3.13.0 which is incompatible.</span></span></p>
<p style="margin-bottom:0cm;line-height:100%"><span style="font-family:Liberation Mono,monospace"><span style="font-size:8pt">pulp-python
3.2.0 requires pulpcore<3.13,>=3.9, but you have
pulpcore
3.13.0 which is incompatible.</span></span></p>
<p style="margin-bottom:0cm;line-height:100%"><span style="font-family:Liberation Mono,monospace"><span style="font-size:8pt">pulp-deb
2.11.1 requires pulpcore<3.13,>=3.10, but you have
pulpcore
3.13.0 which is incompatible.</span></span></p>
<p style="margin-bottom:0cm;line-height:100%"><span style="font-family:Liberation Mono,monospace"><span style="font-size:8pt">pulp-container
2.5.1 requires pulpcore<3.13,>=3.11, but you have
pulpcore
3.13.0 which is incompatible.</span></span></p>
<p style="margin-bottom:0cm;line-height:100%"><span style="font-family:Liberation Mono,monospace"><span style="font-size:8pt">pulp-ansible
0.7.2 requires pulpcore<3.13,>=3.10, but you have
pulpcore
3.13.0 which is incompatible.</span></span></p>
<p style="margin-bottom:0cm;line-height:100%"><span style="font-family:Liberation Mono,monospace"><span style="font-size:8pt">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</span></span></p>
<p style="margin-bottom:0cm;line-height:100%"><span style="font-family:Liberation Mono,monospace"><span style="font-size:8pt">WARNING:
You are using pip version 21.1.1; however, version 21.1.2 is
available.</span></span></p>
<p style="margin-bottom:0cm;line-height:100%"><span style="font-family:Liberation Mono,monospace"><span style="font-size:8pt">You
should consider upgrading via the
'/usr/local/lib/pulp/bin/python3.6
-m pip install --upgrade pip' command.</span></span></p>
<p style="margin-bottom:0cm;line-height:100%"><span style="font-family:Liberation Mono,monospace"><span style="font-size:8pt">[root@honeybee
pulp_installation]#</span></span></p>
<p>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.</p>
<p>Ben.<br>
</p>
<p><br>
</p>
<p>
</p>
<div>On 27/5/21 10:48 pm, Daniel Alley
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>
<table cellpadding="0">
<tbody>
<tr>
<td colspan="3">
<table cellpadding="0">
<tbody>
<tr>
<td>
<div id="gmail-m_-3770306341536141958gmail-m_-5183480541738422786gmail-m_3978699898732226707gmail-:29x"><img src="https://mail.google.com/mail/u/0/images/cleardot.gif" alt=""></div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<div id="gmail-m_-3770306341536141958gmail-m_-5183480541738422786gmail-m_3978699898732226707gmail-:3eq">
<div id="gmail-m_-3770306341536141958gmail-m_-5183480541738422786gmail-m_3978699898732226707gmail-:3ep">
<div dir="ltr">Pulpcore 3.13.0 [0] and pulp_installer
3.13.0 [1] have been released.<br>
<br>
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].<br>
<br>
# Installation and Upgrade<br>
<br>
Users should use the 3.13.0 release of pulp_installer
[1] to install or upgrade their installations. <br>
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.<br>
<br>
The pulp_installer collection can be installed from
Ansible Galaxy with the following command:<br>
<br>
ansible-galaxy collection install --force
pulp.pulp_installer<br>
<br>
The --force flag will upgrade the collection if you had
a previous version installed.<br>
<br>
# Plugin API<br>
<br>
Plugin writers can see the API changes here [6].<br>
<br>
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".<br>
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.<br>
<br>
[0] <a href="https://pypi.org/project/pulpcore/3.13.0/" target="_blank">https://pypi.org/project/pulpcore/3.13.0/</a><br>
[1] <a href="https://galaxy.ansible.com/pulp/pulp_installer" target="_blank">https://galaxy.ansible.com/pulp/pulp_installer</a><br>
[2] <a href="https://pulpproject.org/2021/05/24/pulpcore-3.13-is-generally-available/" target="_blank">https://pulpproject.org/2021/05/24/pulpcore-3.13-is-generally-available/</a><br>
<div>[3] <a href="https://docs.pulpproject.org/pulpcore/changes.html#id1" target="_blank">https://docs.pulpproject.org/pulpcore/changes.html#id1</a><br>
[4] <a href="https://pulp-installer.readthedocs.io/en/latest/CHANGES/#3130-2021-05-26" target="_blank">https://pulp-installer.readthedocs.io/en/latest/CHANGES/#3130-2021-05-26</a><br>
[5] <a href="https://docs.pulpproject.org/pulpcore/changes.html#plugin-api" target="_blank">https://docs.pulpproject.org/pulpcore/changes.html#plugin-api</a></div>
</div>
</div>
</div>
</div>
</div>
<br>
<fieldset></fieldset>
<pre>_______________________________________________
Pulp-list mailing list
<a href="mailto:Pulp-list@redhat.com" target="_blank">Pulp-list@redhat.com</a>
<a href="https://listman.redhat.com/mailman/listinfo/pulp-list" target="_blank">https://listman.redhat.com/mailman/listinfo/pulp-list</a></pre>
</blockquote>
</div>
_______________________________________________<br>
Pulp-list mailing list<br>
<a href="mailto:Pulp-list@redhat.com" target="_blank">Pulp-list@redhat.com</a><br>
<a href="https://listman.redhat.com/mailman/listinfo/pulp-list" rel="noreferrer" target="_blank">https://listman.redhat.com/mailman/listinfo/pulp-list</a></blockquote></div>
</blockquote>
</div>
</div>
</div><div dir="auto"><br></div>
</div></div>
</blockquote></div>