Since Python 3.12.0 stable has been released, as well as now being
available via setup-python, per:
https://github.com/actions/python-versions/blob/main/versions-manifest.json
The main practical effect of this is that continue-on-error is no
longer set to true for 3.12, so 3.12 is no longer special-cased to
refrain from cancelling other test jobs when its test job fails.
Another effect is that 3.12 can longer be selected as a prerelease.
Python 3.12.0 stable has been released, as well as now being available via setup-python, and these tests have been passing with the release candidate. So this changes the CI test workflow to no longer treat it as experimental. This has two effects:
With respect to the latter, as well as in a broad conceptual sense, this PR corresponds to gitpython-developers/GitPython#1689.
In addition to those changes, I have also changed this to be triggered the same ways as in GitPython, so that CI test jobs run on all branches. This makes it easier to test changes to CI without, or before, opening a PR. (It also reduces the temptation to use one's fork's default branch for feature development.) However, if you prefer this not be done, I'd be pleased to remove it.
The exactly corresponding PR to this one, in smmap, is gitpython-developers/smmap#54.