Moving Qiime2 to Python 3.9

I note the current Qiime2 release of 2024.2 is built using Python 3.8 (this is what the conda install gives you), which means any plugins for it must also work on the now elderly Python 3.8 (see Status of Python versions - this is scheduled to stop getting security updates in October 2024).

Reading [Preview] QIIME 2 2021.4 development changelog - #3 by thermokarst one of the big changes in 2021.4 was moving from Python 3.7 (then approaching end-of-life) to Python 3.8.

I am working on a plugin, and am hoping not to have to support Python 3.8. Are there similar plans afoot for moving off Python 3.8 in the next release or so? In many ways jumping to something more recent than Python 3.9 would be wise. Thank you!

3 Likes

Hi @peterjc,
Yes, definitely. Our goal is to move to Python 3.10 for the 2024.5 release (scheduled for May). We haven't yet dove in, and we don't know what's going to break until we do - so that's why I describe it as a goal rather than commit to it. We're moving that direction though, and plan to skip 3.9 like you suggest. (We would go straight to 3.11, but conda packages don't yet exist for a lot of our dependencies.)

Once we have a working weekly build it will be possible to install that and develop against it following the instructions here.

2 Likes

That’s great, thank you. Getting my stuff working again on Python 3.8 wasn’t as bad as I feared, and your proposed timeline meshes well with Python 3.8 end-of-life.

1 Like

Hey @peterjc!

I wanted to circle back to this topic to let you know that we're moving to python 3.10 in our upcoming release (2024.10) and as of this morning, we have development builds available for all three of our supported QIIME 2 distributions that are on python 3.10. We didn't have to bump any of our major dependencies like we did from 3.8 to 3.9 (pandas, skbio, etc) so this transition should be much smoother for you (if you're aiming to stay up to date with our latest python version). You can install/play around with these dev builds here:
https://develop.qiime2.org/en/latest/plugins/how-to-guides/set-up-development-environment.html#set-up-your-development-environment

Just make sure you're installing your preferred distribution (tiny, amplicon, etc). Let me know if you have any questions!

4 Likes

That's great - I've been maintaining support for Python 3.8 in my tool in the short term just for the experimental Qiime2 plugin. This let's me drop Python 3.8 now, and look at dropping 3.9 soon too. Thank you.

I agree it would have been good to move to Python 3.11 for Qiime2, a shame the dependencies aren't quite there yet.

4 Likes

Here's where I check what our build tools support:
Conda-forge migrations and the
Bioconda Accouncement Issue.

It looks like python311 is working for conda-forge and bioconda, which is cool!

Platform support is the hard blocker. After they support it, we still need to check all our own stuff

1 Like