[all] [requirements] Artificially inflated requirements in os-brick

Thomas Goirand zigo at debian.org
Tue Feb 22 09:44:53 UTC 2022

On 2/21/22 14:27, Sean Mooney wrote:
> On Mon, 2022-02-21 at 14:10 +0100, Thomas Goirand wrote:
>> On 2/18/22 18:33, Brian Rosmaita wrote:
>>> On 2/18/22 11:42 AM, Thomas Goirand wrote:
>>>> Hi,
>>>> I've been quite surprised to see $topic. Most requirements for
>>>> os-brick are now to be found in Yoga only. I've asked why, and I've
>>>> been told that the reason is because "we've been testing with the new
>>>> versions only for the number of months".
>>>> Well, the reason why someone would increase a minimum requirement
>>>> *must* be only because of the need of a new feature, and should be
>>>> treated with care. Otherwise, this makes upgrading very dangerous and
>>>> annoying to do. As much as possible, I would strongly recommend that
>>>> any dependency in Stable can be found in Stable-1 (only when a new
>>>> feature is mandatory, then it's ok-ish to require that new version,
>>>> though I would advocate for a possible fallback if that's not too
>>>> complex to write).
>>>> Now, if that's the path we're taking, all is going backward 5 years
>>>> ago, and then my thinking is: we must reintroduce lower-constraints
>>>> testing ASAP.
>>>> Your thoughts everyone?
>>> It would be nice to have clear guidance on this.  I tried to get
>>> pre-release comments about what I planned to do with os-brick, but maybe
>>> I didn't allow enough time or had an unclear subject line:
>>> http://lists.openstack.org/pipermail/openstack-discuss/2022-February/027192.html
>> I saw the message, but reading it, it wasn't clear enough what the
>> intention was, and TBH, I probably read the patch too quickly.
>>> My concern about keeping the minima low is that what we're actually
>>> testing with in the gate is pretty much whatever's in upper constraints.
>>> The previous lower-constraint job basically just checked to see if you
>>> could co-install the minimum versions of dependencies and run pass unit
>>> tests within a single project, which doesn't seem very realistic.
>> It was catching API / ABI breakage, which was the intention.
>>> In any case, it would be better to have an openstack-wide policy so we
>>> can raise minima in a coordinated way, rather than me forcing everyone
>>> who uses os-brick to do whatever I do.
>> That's what the global-requirements were supposed to be about, however,
>> as far as the CI is concerned, now only the upper-constraints.txt are in
>> use, resulting in now useless requirements.txt.
>> I very much see a huge regression here, compared to what we had maybe 2
>> years ago.
>> Indeed, we need to have a (more) global thinking OpenStack wide about
>> what we should do. I still believe that all project should be able as
>> much as possible to run with all the requirements from stable -1, to
>> ease upgrading. This way, it's possible to:
>> 1/ upgrade all services without updating the libs
>> 2/ then upgrade the libs
>> 3/ and finally restart all services.
> much of the feature development actully assume you upgade the libs first
> then upgrade the service
> then restart it.

If we support the version of the libs from stable-1, this means that 
effectively, we support the workflow I'm talking about.

The way you are describing the upgrade (ie: libs first) simply doesn't 
work. It would mean services from stable -1 support libs from stable: 
nobody has a crystal ball, and it's impossible to support the changes 
we're going to do in 6 months of time. So the only thing we can do is 
support backward compatibility.

Note that I haven't advocate for *only* supporting libs from stable -1. 
I think this must be the lowest bar to set. I'd very much prefer if we 
were doing things right (tm), meaning supporting the lowest possible 
version. This means one would increase the lower bound of a requirement 
only when needing a new API not provided by an earlier version of the 
lib. Though giving the current constraints, maybe testing with the 
version of the libs from stable -1 would work.

Also, let's keep in mind the current TC proposal (ie: mandate allowing 
to skip every odd release during upgrades). If it goes forward, then 
probably we will need to support libs from stable -2 on every odd 
release of OpenStack.


Thomas Goirand (zigo)

More information about the openstack-discuss mailing list