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

Package transitions at conda-forge #1894

Open
hmaarrfk opened this issue Feb 5, 2023 · 5 comments
Open

Package transitions at conda-forge #1894

hmaarrfk opened this issue Feb 5, 2023 · 5 comments
Labels

Comments

@hmaarrfk
Copy link
Contributor

hmaarrfk commented Feb 5, 2023

Your question:

As more features and libraries have been added to the conda-forge ecosystem, some maintainers have expressed the desire to reduce the total number of dependencies imposed on their users.

While a few proposals have been raised to improve creating split packages, standardized naming, catch all for files, one challenge in our ecosystem remains in terms of how to deal with the package transition.

Specifically, these package splits typically occur in phases as:

  1. Maintainers gain interest in splitting off certain features.
  2. Maintainers learn about different flags proposed upstream.
  3. Upstream exposes new capabilities in splitting a package.

The use case I'm particularly concerned with, is with large "mega packages" such as vtk, ffmpeg, opencv where plugin mechanisms may exist that enable discovery of extra features at runtime.

It may be desirable for example:

  1. On one day, to split off opencv-hdf5 to a new package. Creating opencv-base and opencv-hdf5.
  2. It may be desirable the next day, to also split off libopencv_highgui,

But since we have already used our name "base", we are now stuck with the current tools I know of at conda-forge.

External references

Packages that are considering splits for various reasons:

Packages where splitting was (seemingly) not possible:

Packages where creating a split package stalled due to unclear (realistic) transition path:

@h-vetinari
Copy link
Member

I'm proposing a linter-rule to add messages for specific dependencies (e.g. if obsoleted by some transition or renaming) in conda-forge/conda-smithy#1734, perhaps this would help.

@jakirkham
Copy link
Member

Curious if we have thought about a migrator to handle package renames. This is a common enough issue tooling may help

@h-vetinari
Copy link
Member

There is functionality like that checked into regro/cf-scripts, but I've never seen it used and I don't know how it works, or indeed if it still works...

@jakirkham
Copy link
Member

cc @beckermr (in case you have thoughts on the migrator angle)

@beckermr
Copy link
Member

beckermr commented May 9, 2023

I can show folks how to setup a replacement migrator that does renaming.

I'd say unless we are willing to apply version epochs widely, we are stuck with this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

4 participants