According to Developing a QIIME 2 plugin — QIIME 2 2023.9.2 documentation when writing a plugin, the version defined in plugin_setup.py
exports the version to Qiime. We can query this at the command line:
$ qiime dada2 --version
QIIME 2 Plugin 'dada2' version 2022.8.0 (from package 'q2-dada2' version 2022.8.0)
(the repetition there is odd)
This example is from the discussion on getting version numbers for packages used in qiime2 plugins which concluded there is currently no way for a plugin author to express the versions of its dependencies, and suggested a workaround:
$ conda list | grep dada
bioconductor-dada2 1.22.0 r41h619a076_1 bioconda
q2-dada2 2022.8.0 py38_0 qiime2/label/r2022.8
The authors of the q2-dada2
plugin would know how to report the version of DADA2 determined at run time, but there doesn't seem to be a mechanism to do that and record it. I can imagine Qiime2 being extended to capture this, much like it captures citations, but that is a lot of work.
How would people feel about Qiime2 wrappers following the Galaxy wrapper versioning approach?
I'm considering setting the version returned in plugin_setup.py
at run time to the underlying tool with the wrapper version as a suffix, giving something like this (or perhaps with a simple integer suffix like Galaxy recommends?):
$ qiime dada2 --version
QIIME 2 Plugin 'dada2' version 1.22.0+qiime2022.8.0 (from package 'q2-dada2' version 1.22.0+qiime2022.8.0)
(In my testing it seems the version via plugin_setup.py
is assumed to be the package version, even when different from that in setup.py
)
This wouldn't help with tracking secondary dependencies, but it feels like a step forward. I am of course biased coming at this with a Galaxy background