[Pulp-list] pulpcore 3.13.0 is Generally Available

Daniel Alley dalley at redhat.com
Thu Jun 3 16:09:00 UTC 2021


>
> 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.
>

Yup, you're definitely right about that...

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.

The ansible plugin is released, the migration plugin is not (yet) but I'll
let you know once it is.

On Tue, Jun 1, 2021 at 6:59 PM Ben Stanley <ben.stanley at gmail.com> wrote:

> 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 <dalley at redhat.com> 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 <ben.stanley at gmail.com> 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 at 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 at 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 listPulp-list at redhat.comhttps://listman.redhat.com/mailman/listinfo/pulp-list
>>>
>>> _______________________________________________
>>> Pulp-list mailing list
>>> Pulp-list at redhat.com
>>> https://listman.redhat.com/mailman/listinfo/pulp-list
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/pulp-list/attachments/20210603/e4dcf200/attachment.htm>


More information about the Pulp-list mailing list