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/10/08 11:07] – [Source code is hosted on GitHub/GitLab? Generate a stable release (tar.gz)!] 134.190.221.192making_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 step 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 31: Line 33:
 ====My program is for Linux only? Think again!==== ====My program is for Linux only? Think again!====
 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! 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: "Because it's about evolution." ¯\_(ツ)_/¯ 
  
 ====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! {{https://media1.tenor.com/m/AOhlRdeaSfgAAAAC/heman-smile.gif?100}} Now you'll have to maintain it, nyeheheheheh! {{https://media1.tenor.com/m/AOhlRdeaSfgAAAAC/heman-smile.gif?100}}
  
  
making_bioconda_recipes.1728396445.txt.gz · Last modified: by 134.190.221.192