I have to be blunt here. Repeatedly calling this decision making “arbitrary” is very grating as a library maintainer.
Let me pick one thing out of 3.11, one which I consider to be on the easy end of the difficulty spectrum, to highlight. tomllib.
I have CI matrix jobs which test on 3.11+, 3.10 (and below) with tomli, and 3.10 without tomli. I have codepaths which detect which of those three scenarios I’m in, in multiple projects. Some programs fail to run without toml support and some emit errors. Some warn but continue to function. All of this needs to be tested, as I said, which not only means CI run time cost, but also infrastructural cost to configure those scenarios.
It seems to me that you’re saying that these costs are negligible, and I should carry on doing tomli/tomllib dispatch for another decade. But the thing is… I don’t have to, just the way I don’t have to write from __future__ import with_statement
anymore.
Each of these sorts of things is marginal in cost. But when you add them up, it really does make projects harder to maintain.
I don’t think anyone in this thread has been dismissive or unsympathetic, but they have consistently said “No.” Because we don’t seem to agree that this is zero cost or low cost. I don’t really know how to – or if we can – reconcile this difference of opinion, but please don’t call my opinion about good maintenance practice “arbitrary”.