QIIME 2 2025.10 development changelog

:exclamation: Important :exclamation:

The following is an early developer preview of the changes expected in 2025.10

This post is a live-document which will be updated throughout our development cycle. Any links will in this topic will be broken until the release is officially published. When we are ready for release, we’ll copy this changelog and create a new post in the Announcements category.


Developer Project Board:

QIIME 2 2025.10 Project on Github


:police_car_light: Important Announcements :police_car_light:

With this release, we have upgraded to Python 3.12. Going forward, we’ll update the Python version at most once per year, and only in the April full release (when needed). This gives plugin developers ample time to keep their plugins current and reduces the internal time spend for our team to make these changes each year.

How we decide :thinking:

  • After each October release we assess whether a Python update is required (based on the EOL timeline for our current version).

  • If an update is planned for April, we start testing immediately so there’s ample time to solve environments and address any API-related test failures.

What this means for you :index_pointing_at_the_viewer:t3:

  • If you maintain a plugin, plan your compatibility work between Oct → Apr (when a Python bump is announced).

  • No Python bumps will occur in January, July, or October releases.

More details on the schedule and policy can be found here :snake:

Interface Changes coming in QIIME 2 20XX.REL+1 :boom:

:bangbang: Breaking Changes :bangbang:


Here are the highlights of the release! :sparkler:


qiime2.org updates :house:


QIIME 2 View Updates :mag:


QIIME 2 Library Updates :books:


QIIME 2 Forum Updates :page_facing_up:


Distribution Updates :package:


Framework Updates :deciduous_tree:


Interface Updates :tv:


Plugin Updates :electric_plug:

  • q2-dada2

    • @jordenrabasco added a new output to each of the denoise methods that records the base transition error rates and added a visualizer (plot-base-transitions) to display them. :bar_chart:
  • q2-demux

    • @Vinzent_Risch added a --p-remove-empty option to the filter-samples action that allows samples that contain empty fastq files to be omitted in the output. :jar:
  • q2-diversity
    • @Macabe222 changed the plot type of the mantel visualizer to a binned variety to fix a bug where very large distance matrices could cause the browser to slow down. :framed_picture:
  • q2-feature-table

    • @Macabe222 refactored the tabulate-seqs visualizer to make the sequence count and length statistics only take into account those records that have DNA sequences. :dna:
  • q2-rescript

    • @SoilRotifer updated the action get-midori2-data, to fetch the recent MIDORI Reference 2 sequence & taxonomy data: GenBank266_2025-04-24 and GenBank267_2025-06-19.
  • q2-types

    • @Macabe222 made changes that ensure that paired-end sequencing artifacts allow only forward/reverse read pairs with an equal number of records. :robot:

Community Plugin Updates :electric_plug:


Documentation Updates :open_book:


Docker Container Updates :jar: