These changes were not snuck in. The python change was announced a couple of major versions ago and the file provider change was announced at WWDC un June as happening in Mac OS 12.
Then it should have happened in 12.0 - when people
expected to do a lot of testing, fixing and disposing of abandonware, when there was an extended beta program, and when they had the option of a
stable, mature version of MacOS 11 to stick with if they had a problem.
Problem now is that people who verified that everything worked on 12.0 or 12.1 and decided to go ahead and upgrade are
committed to Mac OS 12 and pretty much obliged to install the first few point releases to fix other bugs.
I don't know how many times that this can be re-stated but the problem is
not the removal of Python 2.7, but the removal of Python 2.7
in a point release that should only be used for essential bug fixes and shouldn't break people's workflows. Remove it in 12.0 - fine. Heck, it could have been removed in 11.0, fine. But if you include it in 12.0 then you're committed until 13.0.
"There are many legacy scripts" ... ?? eh? Either you've scripts that you own so you should update them, or they're from a package in which case don't use the package (if it's dependent on Python 2 it's not trust worthy). This whole culture of blind reliance on dodgy packages is nuts in my view.
Gosh, yes, that is
so simple, why didn't anybody else think of it?
Maybe because "you" sometimes means a huge body of users who will have to be taught to use a different package. Maybe because sometimes it takes months to choose, test and adopt a new package across an organisation.
Maybe because "you" sometimes have 101 other urgent jobs to do and/or a manager who has to be convinced of the urgency of any change - and Apple's hand-wavy "this feature will be removed at some undefined point in the future" is really unhelpful.
Maybe because "the scripts you own" depend upon 3rd party libraries which were the recommended solution when you wrote them 10 years ago, so "updating" them means "completely re-writing" them (...and we're not just talking trivial little utilities where you used a "left pad" function to save yourself 10 minutes (actually, I think that was node.js) - they can be substantial libraries that affect the way you write your application - it's
not always sensible to re-invent the wheel every time).
Even if lots of people are not going to act (or get approval to take action) until the day their software literally stops working, it would be
far better for that to happen with the first release of a major new OS version when reasonable people were
expecting that sort of thing and there was a stable, previous OS to stick with.