[requirements][FFE][congress] remove psycopg2>=2.7

Eric K ekcs.openstack at gmail.com
Thu Apr 4 18:30:45 UTC 2019



On 4/4/19, 9:17 AM, "Matthew Thode" <mthode at mthode.org> wrote:

>On 19-04-04 10:11:04, Eric K wrote:
>> On 4/4/19, 7:22 AM, "Clark Boylan" <cboylan at sapwetik.org> wrote:
>> 
>> >On Thu, Apr 4, 2019, at 7:50 AM, Matthew Thode wrote:
>> >> On 19-04-04 08:32:56, Alex Schultz wrote:
>> >> > On Thu, Apr 4, 2019 at 7:58 AM Matthew Thode <mthode at mthode.org>
>> >>wrote:
>> >> > >
>> >> > > On 19-04-04 01:20:18, Eric K wrote:
>> >> > > > Requesting exception to remove a requirement to resolve a
>> >>packaging issue.
>> >> > > >
>> >> > > > The package is needed only for an experimental feature, but
>>causes
>> >> > > > packaging issue on RHEL/CentOS 7. Propose to remove from
>> >>requirements and
>> >> > > > require manual install to enable the experimental feature.
>> >> > > >
>> >> > > > https://review.openstack.org/#/c/649772/
>> >> > > >
>> >> > >
>> >> > > I imagine psycopg2 is one of many dependencies that are not fully
>> >> > > compliant with our upper-constraints (and probably a bunch of
>> >>projects
>> >> > > global-constraints).  Is it possible to lower the version
>>required
>> >>(be
>> >> > > compatible with 2.6 or whatever is in centos)?  The requirements
>> >>project
>> >> > > itself sets no lower bound for psycopg2.
>> >> > >
>> >> > 
>> >> > Centos7 has 2.5. I had asked about getting 2.7 in RDO but if it's
>> >> > optional it would be nice for it not to be included by default. We
>>hit
>> >> > the issue in puppet-congress so we disabled out actual test jobs[0]
>> >> > because congress currently doesn't work on ubuntu[1] and was
>>broken on
>> >> > centos[2] by this new requirement.
>> >> > 
>> >> > [0] https://review.openstack.org/#/c/649439/
>> >> > [1] 
>> 
>>>>http://logs.openstack.org/33/647333/1/check/puppet-openstack-beaker-ubu
>>>>nt
>> >>u-bionic/2cfe5a4/job-output.txt.gz#_2019-04-02_10_48_17_614150
>> >> > [2] 
>> 
>>>>http://logs.openstack.org/33/647333/1/check/puppet-openstack-beaker-cen
>>>>to
>> >>s-7/c10fb99/logs/syslog.txt.gz#_Apr_02_10_47_47
>> >> > 
>> >> 
>> >> extra_requires may work for you (makes postgres support optional)
>> >> 
>> 
>>>>https://setuptools.readthedocs.io/en/latest/setuptools.html#declaring-e
>>>>xt
>> >>ras-optional-features-with-their-own-dependencies
>> >> 
>> >> not sur eif pbr supports it though.
>> >
>> >PBR should support it. Here is an example from swiftclient installing
>> >keystoneclient as an extra [3].
>> >
>> >[3] 
>> 
>>>https://git.openstack.org/cgit/openstack/python-swiftclient/tree/setup.c
>>>fg
>> >#n36
>> >
>> Thank you all!
>> 
>> 
>> Unfortunately the code relies on the psycopg2.sql module for query
>> composition, which is only available on 2.7 and up. I'm also working on
>>a
>> future patch to remove the use of the psycopg2.sql module and also lower
>> the psycopg2 version required, but I'm thinking considering the stein
>> deadline a straightforward removal of psycopg2 can make sense.
>> 
>> I have fixed the unit test failure I overlooked and everything should be
>> passing now [4]
>> 
>> And thank you for the extra_requires suggestion. It would probably take
>>me
>> a little while and a few tries to get it right. Again considering the
>> deadline I'd rather just go with the current patch [4] if it's
>>acceptable.
>> Since the feature that requires psycopg2 is experimental I think
>>requiring
>> manual install of psycopg2 is ok.
>> 
>> Alternatively, if it seems better to delay Congress final RC or wait to
>> fix this issue in X.0.1 we can do that too.
>> 
>> [4] https://review.openstack.org/#/c/649772/
>> 
>
>The problem is that you are still requiring postgres support via some
>code path, so that means that it's required, either statically or via
>extra requires.  I don't think removing it is an appropriate solution.
>
>-- 
>Matthew Thode
I see. psycopg2 is required only if the experimental feature (json
ingester) is explicitly enabled via feature flag in conf file. Otherwise
there is no import.

But if that's not okay, I'll do an alternative approach.





More information about the openstack-discuss mailing list