Please stop gatekeeping peoples' efforts because you don't agree with them.

I personally do not see this as gatekeeping or any other sort of stopping. Discussion clearly is getting opinionated, but I do not read any message as "stop, we are not interested". Instead people start discussing their interpretations of what others say - this is not productive.

What is stopping all of us is amount of companies interested in paying developers to start improving things (real maintenance) and not just adding features required by them (and this amount is now more or less 0). I see a very similar issue in the OpenAPI stuff - lot of people are interested, but no company is keen to dedicate people to implement that and so I do it in my private time.


I think what is required to have a progress here is to have people that "just start doing that". Pure discussion will not lead to anything except heated nerves or even everybody agreeing but nobody having time to do anything. You want "typing" - start adding it, I am pretty confident nobody will stop you and reject such changes. But do not expect somebody else will start doing it just because you think it would be useful. Every company is having their business and their interests which are about earning money and not about maintenance. This is sadly what OpenStack is now about, but understandable since nobody can just burn money (and I know it may sound abusive to some).


Cheers,

Artem


From: Christian Rohmann <christian.rohmann@inovex.de>
Sent: April 4, 2024 11:31 AM
To: Jeremy Stanley <fungi@yuggoth.org>; openstack-discuss@lists.openstack.org <openstack-discuss@lists.openstack.org>
Subject: Re: [all][tc] Modernize Python Stack
 
On 04.04.24 3:50 PM, Jeremy Stanley wrote:
("bad" by whose definition? how do you measure that empirically?)
make for a weak argument. The points you want to make are best
supported with evidence, not anecdote.

Let's start there and try to actually discuss the current good standards or practices that we either actively follow or should adopt.
Provided you even agree that any change of the existing "way of doing things" could be remotely beneficial, please kindly share your
thoughts and ideas of "good" coding practices then.

I'd personally determine the definitive lowest end of the quality scale is code simply runs and functionally does what it should do.
Everything else is a gradient of "quality", be it  human or technical quality.

To give one or three examples which all already came up in this thread ...

1) Having the convention to break lines after 80 characters is a for-humans quality of the code. The interpreter simply does not care.
But supposedly there are (were) reasons for this rule / convention to be in place?
Since there were voices calling for this to be changed, are there metrics to determine how useful this still is?

2) I'd argue that PEP8 ([1]), e.g. via Flake8 or Ruff, which used for many projects' code is yet another (externalized) convention of coding practices.
But there are different levels of adoption and exceptions lowering the advantages of unified coding styles.
OpenStackSDK did switch to automatically formatting the code with black. While an initial big commit, there are no more variations
introduced by different people contributing their code - the machine takes care of that. So does it make sense to adopt this for other projects
and align "OpenStack" a bit more?

3) On the argument of adding type hints I'd say it's like memory safety which is arguably only advantageous if you make mistakes.
Having types just helps to avoid a whole class of bugs (computer shouting at dev if I may quote Sven here) and also makes
the code much more approachable. Also it allow to become quicker when refactoring things in a larger code base to now accidentally introduce bugs.
Let me add two examples of such bugs that were found this way in [3] and [4] (both I quickly found searching for "mypy" and "bug" in Gerrit).


The status quo wins by default, always, and it is incumbent on those
proposing change to make a compelling case for any needed
investment on the part of others
Not to sound melodramatic, but I believe there is some amount of cry out to make contributing to the OpenStack code base more fun to contribute to again.
Also please note that this cry out (partly) comes from folks who already contribute and would just like for it to be more fun and efficient.
And in the end, there is the "investment" yes, but they might also be a benefit or return - technically, as in less runtime bugs and easier reviews.
But also socially, via more contributions / contributors who don't have to keep their code compatible with many older Python versions and have turn off all their
code quality assuring tools.


Regards

Christian





[1] https://peps.python.org/pep-0008
[2] https://github.com/openstack/openstacksdk/commit/c946294bddd0ad37b707c7f993cdbc4706c00d00
[3] https://review.opendev.org/c/openstack/cinder/+/909689
[4] https://review.opendev.org/c/openstack/openstacksdk/+/900710