From 2a7e4379606d82242a009cba4bd667816a918883 Mon Sep 17 00:00:00 2001 From: Greg Caporaso Date: Wed, 4 Dec 2024 15:24:45 -0700 Subject: [PATCH] formatting updates --- book/_static/github-about-example.png | Bin 0 -> 37436 bytes .../how-to-guides/distribute-on-library.md | 82 +++++++++--------- 2 files changed, 43 insertions(+), 39 deletions(-) create mode 100644 book/_static/github-about-example.png diff --git a/book/_static/github-about-example.png b/book/_static/github-about-example.png new file mode 100644 index 0000000000000000000000000000000000000000..d2b96b3f60dbb2f78a3ed6c31519d0664b0293d6 GIT binary patch literal 37436 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.yml`. These files must be located in the `/environment-files` folder. - -### Additional requirements for environment files - -1. Your plugin must be fully installable via these environment files with no extra steps required. -2. Your environment files must NOT contain a `name` field. The end user is expected to provide the name of the environment on the command line when they install. - -# How to add a plugin to the QIIME 2 Library -Once you have met the above requirements, open a PR against the [library-plugins](https://github.com/qiime2/library-plugins) GitHub repo adding a `.yml` file to the `plugins` folder. This file must have the following `key: value` pairs: +````{sidebar} +```{figure} ../../_static/github-about-example.png +--- +name: github-about-example +--- +The *About* section of a GitHub repository. +``` +```` + +1. Your plugin's source code must be hosted in a GitHub repository. + See [](share-on-github) if you need help with this. +1. You must have a brief description of your plugin in the *About* field for the repository. + The *About* field will be on the top-right of your repository's front page (see {numref}`github-about-example`). + This will be used as the short description for your plugin in Library and should be about 300 characters long at the most. +1. You must have a top-level `README.md` in your repository, and this file must be written in [GitHub-flavored Markdown](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax). + This will be rendered as Markdown on Library and should give a detailed description of your plugin and what it does. + If your `README.md` file references any resources (such as images) using paths relative to the root of your repository, these resources WILL NOT LOAD on the Library. + Only resources referenced with absolute URLs will load. +1. Conda environment files must be provided for installation, and they must meet a few formatting requirements. + This is the highest bar to clear to have your plugin be compatible with the QIIME 2 Library. + * Your repository must include environment YAML files for each QIIME 2 release you support using the naming scheme `-qiime2--.yml`. + These files must be located in your repository's `/environment-files` folder. + More detailed instructions on how to do this are provided in [](facilitating-installation). + One feature that we're working on adding to the Library is a system that can automatically submit PRs against your plugin repository to add new environment files when new QIIME 2 releases come out, to help you keep your plugin up-to-date with QIIME 2 - more on this soon! + * Your plugin must be fully installable via these environment files with no extra steps required. + If this isn't possible, you can still distribute your plugin in other ways (e.g., see [](share-on-github)), but it won't work with the QIIME 2 Library. + * Your environment files must *not* contain a `name` field. + The install instructions that are created by the Library will include a name for the environment. + +## Requesting addition of your plugin to the Library + +Once you have met the above requirements, open a pull request against the [library-plugins](https://github.com/qiime2/library-plugins) GitHub repository. +Your pull request should add a `.yml` file to the `plugins` directory in that repository containing the following key-value pairs: ``` -owner: -name: +owner: +name: branch: -docs: +docs: ``` -## Example PR +This [pull request](https://github.com/qiime2/library-plugins/pull/3/files) illustrates the addition of a plugin to the library in a single atomic commit, and can be used as an example for how to create your pull request. -An [example PR](https://github.com/qiime2/library-plugins/pull/3) showing the addition of a plugin to the library in a single atomic commit. - -NOTE: Your plugin must be compliant with the above specifications for us to merge your PR. +```{warning} +Your plugin must be compliant with the above specifications for us to merge your pull request. +```