Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate making a brainglobe metapackage on conda-forge #40

Open
dstansby opened this issue Mar 30, 2023 · 10 comments
Open

Investigate making a brainglobe metapackage on conda-forge #40

dstansby opened this issue Mar 30, 2023 · 10 comments
Assignees

Comments

@dstansby
Copy link
Member

No description provided.

@dstansby
Copy link
Member Author

I think this should be possible - here's a proof of concept: conda-forge/staged-recipes#22687

@adamltyson
Copy link
Member

Awesome. I was hoping it would be straightforward.

@sfmig
Copy link

sfmig commented Jan 9, 2024

from a conversation with @willGraham01:
right now when creating a conda environment, we need to install hdf5 manually for pip install brainglobe to work (tables requires it). In conda, we should be able to add hdf5 explicitly to the recipe.

@adamltyson
Copy link
Member

@sfmig is this only on macOS though? I assumed it was only a problem when there aren't pre-compiled tables wheels, i.e. only on Apple Silicon.

See discussion at brainglobe/brainglobe-segmentation#145. Hopefully this will be fixed with pip installs sometime soon.

@sfmig
Copy link

sfmig commented Jan 9, 2024

oh probs yes! I can't test in other platforms

@willGraham01
Copy link
Collaborator

willGraham01 commented Feb 7, 2024

Thought I'd revive this thread now that we're over the majority of the reorganisation of BrainGlobe version 1 and our packages have stable releases on PyPI.

This issue is currently blocked by:

  • Merging atlasapi and atlasgen, renaming in the process: Merge bg-atlasapi and bg-atlasgen BrainGlobe#43
  • Replacing tensorflow with keras in our cellfinder dependency. (Although we can get quite far ignoring this actually).
  • morphapi is currently a) broken and b) needs a particularly tricky conda-forge recipe.

Packages currently on conda-forge:

Of these, we can retain the utils, napari-io, and segmentation feedstocks, but they will need updating to the latest version as we carry out the process of updating our packages. To that point:

Otherwise, we can follow the dependency tree to upload packages in a sensible order. conda-forge is able to add multiple packages at once - even with interdependencies - so long as all packages can be installed through conda channels.

The Plan

Presented in the order that should be attempted due to dependency issues, etc.
However some tasks can be done in parallel.

From here, we can split into two parallel streams:

morphapi and dependencies

  • Upload morphapi, brainrender, and brainglobe-heatmap in one PR
    • BLOCKED by morphapi problems.
    • Depends on brainglobe-altasapi being available on conda-forge.
    • morphapi
    • brainrender
    • brainglobe-heatmap

Building up to brainreg

  • Upload brainrender-napari
  • Update brainglobe-utils-feedstock to ship a brainglobe-utils version that depends on brainglobe-space and brainglobe-atlasapi rather than the bg-named packages.
  • Upload brainglobe-napari-io and cellfinder
    • Can be done simultaneously
    • cellfinder is BLOCKED by the shift from tensorflow to keras.
    • brainglobe-napari-io
    • cellfinder
  • Deprecate imio-feedstock
  • Update brainglobe-segment-feedstock if necessary
  • Update brainreg-feedsotck

Meta-package

Once both streams are complete, we can upload the meta-package to conda-forge.
Note: we might be able to do this sooner if we want to forgo the morphapi-dependencies, but this would be a manual conda-forge exclusion for the time being.

  • Upload brainglobe-meta and brainglobe-workflows
    • Can be done simultaneously
    • brainglobe-meta
    • brainglobe-workflows

@willGraham01
Copy link
Collaborator

willGraham01 commented Feb 23, 2024

brainglobe-atlasapi depends on pymcubes, which is not on conda-forge. This is almost certainly because it now includes the old atlasgen package.

I've asked the creator of pymcubes if they're OK with us uploading it to conda-forge, and if they want to be added as a maintainer. I have a (seemingly working) pull request that uploads both packages to conda-forge over in conda-forge/staged-recipes#25533

@adamltyson
Copy link
Member

If this doesn't work, we don't necessarily need all the atlasgen code in the package, so it might be better to either move it out, or just add some optional atlas generation dependencies.

@willGraham01
Copy link
Collaborator

If this doesn't work, we don't necessarily need all the atlasgen code in the package, so it might be better to either move it out, or just add some optional atlas generation dependencies.

Recipe seems to work - had to suppress the Windows build tests because vtk is broken on conda-forge (doesn't show up in pip check but is there).

@willGraham01
Copy link
Collaborator

brainglobe-atlasapi is now available on conda-forge 🥳 So the rest of the plan can start to be enacted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Planned
Development

No branches or pull requests

4 participants