Yes, we're most likely moving to a world where we have to bundle Python with Indigo...
As we've been discussing in another forum topic, a lot of users use old hardware, some of which won't make the jump to Catalina (the first release to include Python3). And given that Catalina is still pretty buggy, I'm not sure I'd want to encourage users to do so even if they could (I just reverted my development system back to Mojave because of Catalina's bugs).
With respect to Python, our options (in no particular order) are this:
- Include Python3 with Indigo
- Require customers to install Python3 themselves
- Restrict Indigo (Server) to Catalina+
- Live with Python2 until Apple stops shipping OS versions that don't include it
The problem with #1 is that it adds significant development/QA/release time for every Indigo release, and a particularly large development effort for the first release that contains it. It also means that it'll be our responsibility to keep up with Python security updates. All of this effort will result in fewer features in any given release, and likely longer delays between releases when we've been trying really hard to decrease time between releases.
The problem with #2 is there are even more testing issues since we can't easily restrict customers to
specific releases of Python 3, so we'd have to test on a large variety of configuration alternatives (Python 3.6, 3.7, 3.8, etc). That is an
ENORMOUS undertaking - we have a hard enough time testing all the OS varieties that we currently support. Can you imagine adding another dimension of testing to each OS release test?
The problem with #3 is pretty evident: it puts Indigo out of reach for some customers, it relies on Apple to continue to bundle Python, and Catalina is already a hot mess of bugs that probably won't get fixed (at least until the next release, which if history shows us anything will likely be as bad or worse than Catalina).
The problem with #4 is that more and more libraries won't work with Python 2 as time goes by, making the development of new plugins harder or impossible. And again it relies on Apple continuing to bundle Python, which given Python 2's unsupported state seems even less likely to continue (in favor of Python 3).
All in all, we're really in quite the conundrum here as none of the options are particularly good. We've been going with #4, but there is some undetermined point in the future where that is just no longer an option.