Hi all,
First of all …
I really, really, REALLY, love your work.
But then :
I ran into a frustrating situation after updating to a recent stable build (4205+): a package I use every day (SFTP) stopped loading entirely, with a completely unrelated and misleading error message pointing at Package Control. After digging into the plugin’s source code, the actual cause turned out to be that the plugin host was upgraded from Python 3.8 to Python 3.14 in build 4205, and the package ships part of its code as precompiled .pyc files (compiled for 3.8). Python 3.14 rejects them outright with a “bad magic number” error, which the plugin’s own error handling then misreports as an outdated Package Control installation.
Since Python 3.8 appears to be fully removed from the Sublime Text binary now (only 3.14 and the legacy 3.3 host remain), there’s no way for affected packages to keep working… even a .python-version file pinning them to 3.8 doesn’t help, since that interpreter simply isn’t bundled anymore.
This is especially painful for closed-source / paid packages distributed only as compiled bytecode, since users can’t patch around it themselves and have to wait on the plugin author to notice and recompile.
My suggestion: similar to how the old Python 3.3 host was kept around (disabled by default, but re-enablable via a setting) during the ST3-to-ST4 transition, could a similar approach be used for major host bumps like 3.8 to 3.14? Bundling the outgoing interpreter for a transition period, even behind an opt-in setting, would give plugin authors and users much more breathing room instead of breaking overnight on a routine update.
In the meantime, the only workaround I’ve found is staying on build 4200, the last build still on the Python 3.8 host : which obviously isn’t sustainable long term.
Has this been discussed before, and is there any appetite for keeping an older host around during these transitions? Happy to share the full debugging trail if useful.
Thanks for all the work on Sublime Text!
PD: I saw a similar request from 2021 — curious if anything’s changed on that front since