[stable][requirements][zuul] unpinned setuptools dependency on stable

Neil Jerram neil at tigera.io
Fri Sep 24 15:33:05 UTC 2021


On Fri, Sep 24, 2021 at 4:19 PM Clark Boylan <cboylan at sapwetik.org> wrote:

> On Fri, Sep 24, 2021, at 8:07 AM, Neil Jerram wrote:
> > On Fri, Sep 24, 2021 at 3:38 PM Jeremy Stanley <fungi at yuggoth.org>
> wrote:
> >> On 2021-09-24 12:33:14 +0100 (+0100), Neil Jerram wrote:
> >> > On Wed, Sep 22, 2021 at 5:07 PM Balazs Gibizer
> <balazs.gibizer at est.tech>
> >> > wrote:
> >> >
> >> > >
> >> > > I agree not to pin this on master. We need to support the latest and
> >> > > greatest on master. But on stable I don't see the problem saying we
> >> > > only support the tooling version that was the latest when the major
> >> > > release was created.
> >> > >
> >> >
> >> > +1, this seems like a straightforward fix to me.
> >> > https://review.opendev.org/c/openstack/requirements/+/810859
> proposes what
> >> > I think is the right change.  Is there any downside?
> >>
> >> Did that change actually fix the observed problem with tox jobs?
> >> Last I recall, the requirements/constraints on SetupTools were only
> >> effectively applied by DevStack because that includes a separate
> >> step for installing or downgrading it.
> >
> > I'm afraid I haven't yet tested it, or worked out how I would test it
> > prior to merge - any hints for that?
> >
> > My reasoning is based on reading the stack.sh stdout and underlying
> > devstack code (for stable/ussuri):
> >
> > + tools/install_pip.sh:main:152            :   pip_install_gr setuptools
> > + inc/python:pip_install_gr:76             :   local name=setuptools
> > + inc/python:pip_install_gr:77             :   local clean_name
> > ++ inc/python:pip_install_gr:78             :
> > get_from_global_requirements setuptools
> > ++ inc/python:get_from_global_requirements:238 :   local
> > package=setuptools
> > ++ inc/python:get_from_global_requirements:239 :   local required_pkg
> > +++ inc/python:get_from_global_requirements:240 :   grep -i -h
> > '^setuptools' /opt/stack/requirements/global-requirements.txt
> > +++ inc/python:get_from_global_requirements:240 :   cut -d# -f1
> > ++ inc/python:get_from_global_requirements:240 :
> >
> required_pkg='setuptools!=24.0.0,!=34.0.0,!=34.0.1,!=34.0.2,!=34.0.3,!=34.1.0,!=34.1.1,!=34.2.0,!=34.3.0,!=34.3.1,!=34.3.2,!=36.2.0;python_version>='\''3.5'\''
>
> >
> >
> setuptools!=24.0.0,!=34.0.0,!=34.0.1,!=34.0.2,!=34.0.3,!=34.1.0,!=34.1.1,!=34.2.0,!=34.3.0,!=34.3.1,!=34.3.2,!=36.2.0,<45.0.0;python_version<='\''2.7'\''
>
> >  '
> > ++ inc/python:get_from_global_requirements:241 :   [[
> >
> setuptools!=24.0.0,!=34.0.0,!=34.0.1,!=34.0.2,!=34.0.3,!=34.1.0,!=34.1.1,!=34.2.0,!=34.3.0,!=34.3.1,!=34.3.2,!=36.2.0;python_version>='3.5'
>
> >
> >
> setuptools!=24.0.0,!=34.0.0,!=34.0.1,!=34.0.2,!=34.0.3,!=34.1.0,!=34.1.1,!=34.2.0,!=34.3.0,!=34.3.1,!=34.3.2,!=36.2.0,<45.0.0;python_version<='2.7'
>
> >   == '' ]]
> > ++ inc/python:get_from_global_requirements:244 :   echo
> >
> 'setuptools!=24.0.0,!=34.0.0,!=34.0.1,!=34.0.2,!=34.0.3,!=34.1.0,!=34.1.1,!=34.2.0,!=34.3.0,!=34.3.1,!=34.3.2,!=36.2.0;python_version>='\''3.5'\'''
>
> >
> 'setuptools!=24.0.0,!=34.0.0,!=34.0.1,!=34.0.2,!=34.0.3,!=34.1.0,!=34.1.1,!=34.2.0,!=34.3.0,!=34.3.1,!=34.3.2,!=36.2.0,<45.0.0;python_version<='\''2.7'\'''
> > + inc/python:pip_install_gr:78             :
> >
> clean_name='setuptools!=24.0.0,!=34.0.0,!=34.0.1,!=34.0.2,!=34.0.3,!=34.1.0,!=34.1.1,!=34.2.0,!=34.3.0,!=34.3.1,!=34.3.2,!=36.2.0;python_version>='\''3.5'\''
>
> >
> setuptools!=24.0.0,!=34.0.0,!=34.0.1,!=34.0.2,!=34.0.3,!=34.1.0,!=34.1.1,!=34.2.0,!=34.3.0,!=34.3.1,!=34.3.2,!=36.2.0,<45.0.0;python_version<='\''2.7'\'''
> > + inc/python:pip_install_gr:79             :   pip_install
> >
> 'setuptools!=24.0.0,!=34.0.0,!=34.0.1,!=34.0.2,!=34.0.3,!=34.1.0,!=34.1.1,!=34.2.0,!=34.3.0,!=34.3.1,!=34.3.2,!=36.2.0;python_version>='\''3.5'\'''
>
> >
> 'setuptools!=24.0.0,!=34.0.0,!=34.0.1,!=34.0.2,!=34.0.3,!=34.1.0,!=34.1.1,!=34.2.0,!=34.3.0,!=34.3.1,!=34.3.2,!=36.2.0,<45.0.0;python_version<='\''2.7'\'''
> > Using python 3.6 to install
> >
> setuptools!=24.0.0,!=34.0.0,!=34.0.1,!=34.0.2,!=34.0.3,!=34.1.0,!=34.1.1,!=34.2.0,!=34.3.0,!=34.3.1,!=34.3.2,!=36.2.0,<45.0.0;python_version<='2.7'
>
> > because python3_enabled=True
> >
> > It clearly seems to be installing a version of setuptools as
> > constrained by global-requirements.txt, and it appears that that
> > installed version is the relevant factor, because runs with 58.* fail
> > and older runs with 57.* succeeded.
>
> Yup, as Fungi mentions this will work for devstack because devstack
> manages the setuptools installation. It won't work for tox because
> requirements and constraints are applied after tox+virtualenv have
> installed setuptools.
>
> That said there may not be a one size fits all fix here and we'll have to
> address it several different ways. I think Fungi's concern is that we think
> a single fix has corrected the issue when that isn't the case.
>

Ah right, I see more of the complexity now.  Still, if a better overall
solution can't be found quickly, I think it would be better to have some
things working than nothing working.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-discuss/attachments/20210924/ace7528d/attachment.htm>


More information about the openstack-discuss mailing list