Facilitating installation of your plugin for users#

Installing your plugin using the Tiny Distribution and any custom required plugins#

If you are working on a plugin that is not compatible with one of our existing distributions but depends on some plugins in those distributions, you can utilize a similar approach to that outlined above but with a more customized environment file. As a reminder, while this approach is fairly straightforward to implement, we don’t recommend this if the option presented above is possible for your plugin as this will be more difficult for us to assist you with and for you to help your users troubleshoot. As long as you are aware of these limitations and wish to proceed in this way, you can follow the steps below.

Start by following the same suggestions presented above for creating an environment-files/ directory and naming your environment file. We’ll put some different content in the environment file(s) this time.

As an example, the contents of an environment file for a plugin that depends on the q2-feature-table and q2-composition plugins would look something like this:

channels:
- https://packages.qiime2.org/qiime2/2024.5/tiny/released
- https://packages.qiime2.org/qiime2/2024.5/amplicon/released
- conda-forge
- bioconda
dependencies:
  - qiime2-tiny
  - q2-feature-table
  - q2-composition
  - pip
  - pip:
    - q2-dwq2@git+https://github.com/caporaso-lab/q2-dwq2.git@release-2024.5

In this example, the plugin being developed (q2-dwq2) requires q2-feature-table and q2-composition, but we’re assuming that it’s not compatible with the entire amplicon distribution. Because this plugin still requires a basic QIIME 2 environment, the qiime2-tiny distribution will be installed from the first channel listed. The q2-feature-table and q2-composition dependencies are not part of the qiime2-tiny distribution however, but are a part of the amplicon distribution. Therefore the second channel listed is the amplicon channel. We then list the dependencies as qiime2-tiny (the tiny distribution) and then the two additional plugins. Those are all followed by the installation of the q2-dwq2 plugin, as in the previous example.

Generally, your customized environment files will be structured as follows:

channels:
- https://packages.qiime2.org/qiime2/<target-epoch>/tiny/released
- https://packages.qiime2.org/qiime2/<target-epoch>/<target-distribution>/released
- conda-forge
- bioconda
dependencies:
  - qiime2-tiny
  - <other-plugin-dependency-1>
  - <other-plugin-dependency-2>
  - pip
  - pip:
    - q2-dwq2@git+https://github.com/caporaso-lab/q2-dwq2.git@<target-branch>

In this case, <other-plugin-dependency-1> and <other-plugin-dependency-2> are plugins that are distributed through <target-distribution>. Note that if you have plugin dependencies that span multiple distributions, you’ll need to include each distribution’s channel in your environment file.