Indigo, Python, and macOS Changes January 28, 2022

Indigo and Python

Indigo's scripting, plugin framework, and some internal functionality have used Python 2 for many years. Indigo has a considerable amount of internal Python code, and all 3rd party plugins that are available in our plugin store are developed using Python. This has always relied on the Python 2 installation that was included with macOS.

Apple has been signaling for a while that they will be removing all Python (and other open source scripting technologies) in future releases. Python 2 especially is an issue because it is no longer supported with bug and security fixes. With macOS Monterey, they began showing a dialog at launch time for any app that links against Python (and presumably others as well), so we knew that Apple was serious about this for the next major macOS release.

The upgrade from Python 2 to Python 3 is not an automatic process, but rather requires code changes. Therefore, the plan for 2022 releases (with respect to Python, there will be other changes as well) is as follows:

  • Indigo 2022.1, released in the second quarter of the year, will support both Python 2 (through the built-in Python in macOS) and Python 3, which we would include with the Indigo install. This would give users a transitionary period to get their plugins upgraded to Python 3 and would give our 3rd party developers time to migrate their plugins to Python 3.
  • With Indigo 2022.2, which will release later in the year just before the next major release of macOS, will no longer support plugins that haven't been updated to support Python 3. This is because macOS 13 (or whatever the name is) will no longer supply the needed Python 2 to run legacy plugins.

The conversion of all of our Python assets is underway using a very early internal build of Indigo, and we will be communicating with our 3rd party developers soon for what they can start doing now to prepare their plugin code bases.

We know that this transition will be, for some, somewhat painful. To be honest, that's been one of the reasons why we've pushed it out as long as we have. But aside from the obvious realities, Python 3 will bring a lot of benefits to the platform moving forward:

  • Many libraries that 3rd party developers have been wanting to use features that are Python 3 only. We think this is going to open up a new class of plugins and can't wait to see what our 3rd party developers come up with.
  • The upgrade will allow us to offer external API services through our built-in web server that were just not available before.
  • Moving forward, we can improve the user experience for plugin installation and for scripters that want to use 3rd party libs.

As always, we appreciate our loyal user community and your continued support.

Back to article list