@@ -173,17 +173,30 @@ Patching
173173~~~~~~~~
174174Some recipes require small patches to get the tests to pass, for example,
175175fixing hard-coded shebang lines (as described at
176- :ref: `perl-or-python-not-found `). Other patches are more extensive. When
177- patching a recipe, please first make an effort to fix the issue upstream and
178- document that effort in your pull request by either linking to the relevant
176+ :ref: `perl-or-python-not-found `). Other patches are more extensive.
177+
178+ When patching a recipe, please first make an effort to fix the issue upstream
179+ and document that effort in your pull request by either linking to the relevant
179180upstream PR or indicating that you have contacted the author. The goal is not
180181to block merging your PR until upstream is fixed, but rather to make sure
181182upstream authors know there's an issue that other users (including non-bioconda
182- users) might be having. Ideally, upstream would fix the issue quickly and the
183+ users) might be having.
184+
185+ Ideally, upstream would fix the issue quickly and the
183186PR could be modified, but it's fine to merge with the patches and if/when
184187upstream fixes, a separate bioconda PR could be opened that pulls in those
185188upstream changes.
186189
190+ Complex or extensive patches done without the original authors involved have
191+ the risk of breaking the software. PRs with extensive patching may need
192+ additional review or discussion to make sure that only high-quality recipes are
193+ distributed by Bioconda.
194+
195+ In all cases, you should document what the patching does and why, and how you
196+ tested its correctness. Recall that Bioconda tests are only to make sure the
197+ package was installed correctly, so you may need to do additional manual
198+ testing (and document the results) to be sure that the patch does not affect
199+ the functionality of the software.
187200
188201Python
189202------
@@ -690,6 +703,19 @@ tests or otherwise), including these in the recipe is not recommended
690703since it may timeout the build system on CircleCI. We especially want to avoid
691704including any kind of test data in the repository.
692705
706+ .. note ::
707+
708+ To emphasize: **bioconda-recipes tests do not test functionality. **
709+
710+ Correct functionality should be handled by the software authors, typically in
711+ the upstream repository.
712+
713+ There are exceptions, where sufficiently small examples are shipped with
714+ the packaged tool itself, or the tool has a built-in example routine that has
715+ sufficiently small resource requirements, such that the tests can be run as
716+ part of the Bioconda recipe, but this is rare.
717+
718+
693719Note that a test must return an exit code of 0. The test can be in the ``test ``
694720field of ``meta.yaml ``, or can be a separate script (see the `relevant conda
695721docs <https://docs.conda.io/projects/conda-build/en/stable/resources/define-metadata.html?highlight=test-section#test-section> `_ for
@@ -744,3 +770,16 @@ version and put the recipe there. Examples of this can be found in `bowtie2
744770`bx-python
745771<https://github.com/bioconda/bioconda-recipes/tree/master/recipes/bx-python> `_,
746772and others.
773+
774+ Support for other platforms
775+ ---------------------------
776+
777+ There are many cases where a package does not explicitly support a platform (like
778+ osx-arm64 or linux-aarch64) and yet there is a demand for such support.
779+
780+ These issues should be raised with the package authors first, ideally by
781+ creating an issue on the respective upstream repo. Bioconda is just
782+ a distribution mechanism for packages, so it is not appropriate for software
783+ development work on a package (like supporting an additional platform) to be
784+ exclusivly performed in the Bioconda repo. It's important to engage the
785+ upstream authors on such efforts if at all possible.
0 commit comments