AstrobioMike / GToTree

A user-friendly workflow for phylogenomics
GNU General Public License v3.0
192 stars 25 forks source link

Bioconda recipe #68

Closed vinisalazar closed 1 year ago

vinisalazar commented 1 year ago

Hi @AstrobioMike,

I am writing to ask if you would be interested in adding GToTree to the Bioconda channel? I see that GToTree is currently self-hosted, but having it on Bioconda would (I believe) make it easier for users having problems with the installation. Plus, there are some perks of Bioconda such as auto-updates by the very helpful @biocondabot.

If you are interested, I could gladly help by submitting a recipe.

Best, V

AstrobioMike commented 1 year ago

Heya, @vinisalazar!

I would be happy to have GToTree on bioconda :)

I tried when i was going through the initially arduous task of figuring out how to get things conda-installable at all, and i just hit a barrier of not wanting to fight anymore since all was working swell from my channel, but i would love if you'd be able to get things setup properly with bioconda, thanks for thinking about it/offering!

Some naive questions for which i'll take advantage of your knowledge instead of digging elsewhere :)

Thanks again! You rock!

vinisalazar commented 1 year ago

Thank you for the very enthusiastic and welcoming response :)

  • How does it know when to update? Does it monitor the github repo for releases? Watch a specific branch? What?

Yes, GitHub Releases, or even just tags.

  • How quickly after the appropriate trigger is the updated conda package typically updated in bioconda? I feel like a day or two is in my head?

Yes, that's about it.

  • Should i send you my conda-build directory for the one hosted on my channel?

If you have a meta.yaml file, that would be great!

Thanks, V

AstrobioMike commented 1 year ago

Thanks, Vini!

my latest full recipe of meta.yaml, build.sh, AND post-link.sh is attached here 👍

27-Oct-2022-gtotree-conda-recipe.zip

the build.sh is complicated and messy. I'm pretty sure that's what caused my initial problems with getting it to work on bioconda. I actually just found and closed my PR (https://github.com/bioconda/bioconda-recipes/pull/16531). I forget what was failing exactly, or how i was testing things/knowing there was a problem. But i think it was some bioconda-specific way, because i knew it worked from my channel but i gave up getting it into bioconda for some reason ¯_(ツ)_/¯

I just confused myself more thinking about this, so I have another question for you :)

How does it know when to update? Does it monitor the github repo for releases? Watch a specific branch? What?

Yes, GitHub Releases, or even just tags.

Whenever i package a new conda release, i need to of course update the recipe before building the conda package and uploading it to anaconda (in the least to change the version and maybe build # in the meta.yaml). So regarding this auto-updating/uploading to bioconda, if add a new gtotree version to this repo, something auto-updates the actual recipe meta.yaml file in the bioconda recipes repo?

Ohh yea, i guess since the yaml is formatted properly, it can easily match the version to the latest release, and reset the build number if it's a new version, or increment it if it's the same version. That the idea?

Then for time when i actually need to change the recipe (like say, add a new dependency to meta.yaml, or change the build.sh file), i'd just do a pull request manually to the bioconda recipe repo to make those types of changes?

Oh, and actually that leads me to another question. What keeps other people from modifying the recipe on the bioconda recipe github? Like if someone else submits a PR for a changed gtotree recipe, that builds fine, but actually broke something. Would i personally oversee approving that PR because it's for gtotree?

thanks again :)

vinisalazar commented 1 year ago

So regarding this auto-updating/uploading to bioconda, if add a new gtotree version to this repo, something auto-updates the actual recipe meta.yaml file in the bioconda recipes repo?

Ohh yea, i guess since the yaml is formatted properly, it can easily match the version to the latest release, and reset the build number if it's a new version, or increment it if it's the same version. That the idea?

Yes, that's it!

Then for time when i actually need to change the recipe (like say, add a new dependency to meta.yaml, or change the build.sh file), i'd just do a pull request manually to the bioconda recipe repo to make those types of changes?

Also yes.

Oh, and actually that leads me to another question. What keeps other people from modifying the recipe on the bioconda recipe github? Like if someone else submits a PR for a changed gtotree recipe, that builds fine, but actually broke something. Would i personally oversee approving that PR because it's for gtotree?

Yes, I think so, because there is a section for recipe maintainers on the meta.yaml. I've personally never had this happen to me, so I'm not totally sure.

I'm very much struggling with the Bioconda CI, but I'm keen to debug it :)

vinisalazar commented 1 year ago

Hi @AstrobioMike, happy to say that https://github.com/bioconda/bioconda-recipes/pull/37682 is passing checks, please let me know if you have any concerns. I added both of us as recipe maintainers, if that's ok.

Cheers

vinisalazar commented 1 year ago

I ran a small test using the Bioconda install and it seemed to work fine. I'm on OS X so I assume there weren't any problems with the OS-agnostic build.

AstrobioMike commented 1 year ago

Awesome, @vinisalazar, thanks!

last little thing to sort out is *not having a noarch, and having osx and linux ones only, so it can't be found/attempted to be installed on windows versions of conda, as i wrote asking about on the PR page 👍

vinisalazar commented 1 year ago

Sure, sorry about that oversight, I'll wait for the Bioconda people to reply and submit a PR updating the recipe

AstrobioMike commented 1 year ago

Oh, no, totally on me! I didn't realize that info isn't anywhere in the recipe, and that it was just controlled with how I build and upload the conda versions. So I never even mentioned it to you 😬

Thanks again for rekindling getting it on bioconda and making it happen :)