What is the state of Python 3.10 support?

In the new release 2022.1.0 (it’s actually available but not publicised) we’ve made Py3.8 the main target and that’s what’s provided in the standalone distributions. I’ll update the recommendation accordingly. As you say, 3.6 is now end-of-life, and we are no longer working on that.

Regarding Python upgrades in general, the reason that PsychoPy has always been slow to update to the latest releases of Python is that we have a very large number of dependencies and although we can get our own code into a compatible state that doesn’t mean the other libraries reach the same. Hardware manufacturers especially fall into this category since they often have to build specific releases for each Python version due to changing compiler compatibilities.

For macropy, we don’t call it directly but we use metapensiero for translating user-defined Python code into JS. Metapensiero is still maintained so we could ask that team how much macropy is strictly needed or could be circumvented. In the meantime, I guess we need to set better catches in the code so that if metapensiero is unavailable for whatever reason, the app should load but refuse to do Py-JS auto-translation with a suitable warning.