brainglobe / brainglobe-meta

(Meta-)package repository for BrainGlobe's Python tools for computational neuroanatomy.
BSD 3-Clause "New" or "Revised" License
10 stars 0 forks source link

`morphapi` external dependency is not available on `conda-forge` #9

Open willGraham01 opened 1 year ago

willGraham01 commented 1 year ago

Describe the bug morphapi's dependency NeuroM is available on PyPI, but not on conda-forge. This means that we can't upload morphapi to conda-forge, and hence neither can we upload brainglobe either.

To Reproduce

grayskull pypi --strict-conda-forge morphapi

will report the missing conda-forge dependency. Searching conda-forge will verify this.

Possible Solutions

adamltyson commented 1 year ago

Is there any reason we can't put NeuroM onto conda-forge? morphapi can be optional for now.

willGraham01 commented 1 year ago

NeuroM isn't one of our packages. It's open-source of course, but I don't know off the top of my head what the etiquette is regarding uploading someone else's package to conda-forge (and what that means for who's responsible for maintaining it). ~Also, the package hasn't seen development in 7 years, at least from the looks of the repo.~ Nevermind that part, it's just moved

cellfinder isn't on conda-forge either but that's a brainglobe repository, so I (perhaps naively) assume it's fine for me to upload that to conda-forge along with the meta-package.

Will make morphapi optional for the time being.

adamltyson commented 1 year ago

NeuroM isn't one of our packages. It's open-source of course, but I don't know off the top of my head what the etiquette is regarding uploading someone else's package to conda-forge (and what that means for who's responsible for maintaining it).

Some other BrainGlobe dependencies have been added by people who aren't the maintainers of the original package (NiftyReg, and I think some others). I don't know if there are rules, but I think the etiquette is to ask the developers if they have any plans to add it. If they don't, then we can add it. @adrien-berchet do you know anything about the plans here?

cellfinder isn't on conda-forge either but that's a brainglobe repository, so I (perhaps naively) assume it's fine for me to upload that to conda-forge along with the meta-package.

100%

adrien-berchet commented 1 year ago

Hi! I don't think we have any plan for Conda forge but I can propose to push our releases to it.

adamltyson commented 1 year ago

@adrien-berchet We'd be happy to add the recipe and add the correct people as maintainers if that's alright?

adrien-berchet commented 1 year ago

@adrien-berchet We'd be happy to add the recipe and add the correct people as maintainers if that's alright?

That could work indeed, thanks. Just wait a bit to figure out who should maintain this recipe (will be discussed in https://github.com/BlueBrain/NeuroM/issues/1074).

adrien-berchet commented 1 year ago

So your solution is fine for us! You will need to create the recipe of MorphIO before being able to create the one for NeuroM. I can help a bit if you need.

adamltyson commented 1 year ago

@willGraham01 are you happy to look into this so we can get MorphIO -> NeuroM -> BrainGlobe onto conda?

willGraham01 commented 1 year ago

Yep happy to take a look into this, this week :+1:

willGraham01 commented 1 year ago

Just posting an update on this after radio silence for 2 weeks; I have a recipe PR open for MorphIO (the NeuroM dependency).

I've hit a bug in the build process that I'm 99% confident is an issue specific to the way conda build is trying to build the package, and am waiting on a response from the conda-forge team.

adrien-berchet commented 8 months ago

Hi @willGraham01 I see that you closed https://github.com/conda-forge/staged-recipes/pull/23132, did you find another way to use NeuroM and MorphIO in your workflow?

willGraham01 commented 8 months ago

Hi Adrien - I was actually waiting on response from the conda-forge team, but they never got back to me about the issue I was encountering (essentially the build process wouldn't complete because of missing headers and libraries not being found, and I could only replicate this bug on conda-CI... everything else worked fine in EG a mamba image or local build). Since the PR was going stale, it was closed.

We've just finished a large restructuring of BrainGlobe, and now default to pip install which seems to resolve the NeuroM and MorphIO dependencies perfectly fine. We also have plans to upload the whole suite to conda-forge https://github.com/brainglobe/brainglobe-meta/issues/40#issuecomment-1932235499, so I expect that we'll be having another crack at uploading MorphIO and NeuroM in the future.

I'm happy to share any insights I learnt with you or anyone else in your team if you're going to attempt this yourselves in the near future.

adrien-berchet commented 8 months ago

Yeah, I saw they never answered :-/ It's nice if you were able to find another way to make it work for you. I don't think we'll use Conda on our side, but that would still be nice for some users to have it working at some point, maybe we'll come back to this later... Anyway, thank you for your work on this!