User Tools

Site Tools


making_bioconda_recipes

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
making_bioconda_recipes [2024/09/13 11:49] – [Wow, it's really now merged!] 134.190.251.141making_bioconda_recipes [2024/10/08 11:21] (current) 134.190.221.192
Line 1: Line 1:
-By Your Favourite Fake Biologist, Jason Shao (Last Edited: September 13th 2024)+By Your Favourite Fake Biologist, Jason Shao (Last Edited: October 8th 2024)
  
 In my never-ending plight, I only found out about [[https://ubinfie.github.io/2024/08/16/adding-to-bioconda-quickguide.html|this great blog post on the same topic]] shared by Finlay Maguire right after my own gruelling research. Anyways, thanks Fin! :) In my never-ending plight, I only found out about [[https://ubinfie.github.io/2024/08/16/adding-to-bioconda-quickguide.html|this great blog post on the same topic]] shared by Finlay Maguire right after my own gruelling research. Anyways, thanks Fin! :)
  
 Since the linked guide does a better job at explaining the basics than I could ever do, I will therefore only share **some useful hints and pitfalls to avoid**. Since the linked guide does a better job at explaining the basics than I could ever do, I will therefore only share **some useful hints and pitfalls to avoid**.
 +
 +If you are interested in seeing a loose example, [[https://github.com/Tassadaar/bioconda-recipes/tree/master/recipes/eukfinder|here]] is my work on eukfinder.
  
 I wish you the best of luck in your quest! I wish you the best of luck in your quest!
Line 16: Line 18:
  
 ====Source code is hosted on GitHub/GitLab? Generate a stable release (tar.gz)!==== ====Source code is hosted on GitHub/GitLab? Generate a stable release (tar.gz)!====
-With git, the HEAD of the main branch is updated every time you push a commit to it. Bioconda hates this, and for good reasons too -- it is very difficult to check for file integrity! Therefore, I strongly recommend generating a stable release instead, providing bioconda a tarball(tar.gz) of your source code and a hash with SHA256. Both platforms offer intuitive workflow for generating a stable release, but the latter is a bit more tricky. Follow these commands appropriate for your operating system:+With git, the HEAD of the main branch is updated every time you push a commit to it. Bioconda hates this, and for good reasons too -- it is very difficult to check for file integrity! Therefore, I strongly recommend generating a stable release instead, providing bioconda a tarball (tar.gz) of your source code and a hash with SHA256 for checksum. Both platforms offer intuitive workflow for generating a stable release, but the latter step is a bit more tricky. Follow these commands appropriate for your operating system:
  
 **Linux** **Linux**
Line 30: Line 32:
  
 ====My program is for Linux only? Think again!==== ====My program is for Linux only? Think again!====
-Bioconda and their apple fanboys make it so that every bioconda recipe must be available for both Linux and MacOS, so don't be blindsided by this, fellow Linux enjoyer! +Bioconda and their Apple fanboys insisted that every bioconda recipe must be available for both Linux and MacOS, so don't be blindsided by this, fellow Linux enjoyer! 
-Making your program more compatible entails adding binary executables and alternative build scripts for MacOS. **uname** is an universal environment variable to check for architecture, so you can put an if elif block in your build.sh like this:+Making your program more compatible entails adding appropriate binary executables and **tags** for MacOS. Follow this example **source** section of meta.yaml:
 <code> <code>
-if [[ $(uname) == "Darwin" ]]; then +source: 
-    Your Code +  - url: <executable compatible to both platforms>.tar.gz 
-elif [[ $(uname) == "Linux" ]]; then +    sha256: <sha256 of url> 
-    Your Code +  - url: <MacOS executable>.tar.gz # [osx
-else +    sha256: <sha256 of url> # [osx] 
-    Your Code +  - url: <Linux executable>.tar.gz # [linux] 
-if+    sha256: <sha256 of url> # [linux]
 </code> </code>
  
-And before you ask, yes it is really called Darwin, the Darwin we all know and love, thanks to Steve Jobs' sensationalism in the late 90s. 
  
 ====After an eternity, my checks are all passing...==== ====After an eternity, my checks are all passing...====
Line 49: Line 50:
 @BiocondaBot please add label @BiocondaBot please add label
 </code> </code>
 +Once assigned, the reviewer may go through several rounds of suggested revisions. Feel free to follow-up on suggested changes that you don't fully understand! 
 ====Wow, it's really now merged!==== ====Wow, it's really now merged!====
-Now you'll have to maintain it, nyeheheheheh!+Now you'll have to maintain it, nyeheheheheh! {{https://media1.tenor.com/m/AOhlRdeaSfgAAAAC/heman-smile.gif?100}} 
  
-{{https://media1.tenor.com/m/AOhlRdeaSfgAAAAC/heman-smile.gif}} 
making_bioconda_recipes.1726238974.txt.gz · Last modified: by 134.190.251.141