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

Create metapackage for testing bundle compatibility #14

Open
Czaki opened this issue Apr 16, 2022 · 6 comments · Fixed by #61
Open

Create metapackage for testing bundle compatibility #14

Czaki opened this issue Apr 16, 2022 · 6 comments · Fixed by #61
Assignees

Comments

@Czaki
Copy link

Czaki commented Apr 16, 2022

🚀 Feature

I would love to see metapackage that will simplify reconstruction bundled app packages version. Something like oldest-supported-numpy but with bind all versions of packages from the bundle (like PySide2, numpy etc)

Motivation

I meet an error that was not present when using the latest PySide2, but present in 5.13.2. But If the user is using a bundle then I cannot ask him for the update of some core packages

Pitch

metapackage that will pin core napari dependencies and be versioned in the same order as napari, so for example napari-bundle-packages==0.4.16 will provide exact versions for napari==0.4.16

Alternatives

each plugin maintainer could manually control such list :(

Additional context

@Czaki Czaki added the feature label Apr 16, 2022
@jni jni changed the title Create metapackage for testing bundle compatybility Create metapackage for testing bundle compatibility Apr 16, 2022
@jni
Copy link
Member

jni commented Apr 16, 2022

Thanks for raising this @Czaki! We have had many such discussions about this but I don't think ever written them down in an issue. I think this would be good fodder for a NAP (#4299), which would detail things like which packages should be included in the metapackage, what the criterion is for inclusion, how often we update the versions, etc.

Do you think this is only for "base" packages (ie napari's dependencies) or also for common ecosystem packages (scikit-image, tensorflow, etc)?

@Czaki
Copy link
Author

Czaki commented Apr 16, 2022

Do you think this is only for "base" packages (ie napari's dependencies) or also for common ecosystem packages (scikit-image, tensorflow, etc)?

I think about these packages that come with the bundle and cannot be upgraded.

If I good understand the packages like scikit-image or TensorFlow will be installed only when some plugin requires it and in the latest version available on conda so it cannot be easily pinned?

Such dependencies pininig could be also provided as extras.

Related issue that I open for cockiecutter napari/napari-plugin-template#13

@jni
Copy link
Member

jni commented Apr 17, 2022

If we're only talking about the bundle libraries then I suggest we simply pin them in the setup.cfg and packages can test against napari[bundle]==0.4.16?

@jaimergp
Copy link
Collaborator

Awesome, this is one of the things that I wanted to start talking about in napari/napari#1001 (comment)

One of the things I am doing next is creating a conda metapackage with run_constrained metadata for each bundle release. This is a bit flexible than simply "versions used to build version x.y.z bundle", but also their API/ABI pinnings.

@jaimergp
Copy link
Collaborator

Adding native support in constructor at conda/constructor#595

@jaimergp
Copy link
Collaborator

Reopening because I am not done with this (although the basics are covered).

@jaimergp jaimergp reopened this Jan 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants