conda-forge / conda-forge/conda-forge.github.io

Package transitions at conda-forge

Ouverte
#1,894 5 commentaires 2 réactions 0 personnes assignées Voir sur GitHub
question
Langage dominant
JavaScript
Étoiles
170
Forks
320
Merge moyen
2 j 10 h
PR mergées (30 j)
5

Description

### 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](https://github.com/conda-forge/conda-forge.github.io/issues/544), 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
* Debian's transition guide: https://wiki.debian.org/PackageTransition
* Fedora's transition guide: https://fedoraproject.org/wiki/Upgrade_paths_%E2%80%94_renaming_or_splitting_packages
https://github.com/conda-forge/conda-forge.github.io/issues/544

#### Packages that are considering splits for various reasons:
* Removal of optional dependency (ffmpeg) https://github.com/conda-forge/vtk-feedstock/pull/282
* Removal of heavy dependency (qt) https://github.com/conda-forge/opencv-feedstock/pull/337
* Removal of heavy dependency (qt) https://github.com/conda-forge/matplotlib-feedstock/pull/178

#### Packages where splitting was (seemingly) not possible:
* https://github.com/conda-forge/ffmpeg-feedstock/pull/138

#### Packages where creating a split package stalled due to unclear (realistic) transition path:
* Splitting qt-base into finer grained packages https://github.com/conda-forge/qt-main-feedstock/issues/78

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.