On 2/21/22 14:27, Sean Mooney 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....
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
On Mon, 2022-02-21 at 14:10 +0100, Thomas Goirand wrote: 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. Cheers, Thomas Goirand (zigo)