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

Package transitions at conda-forge

未关闭
#1,894 5 条评论 2 个 reaction 已指派 0 人 在 GitHub 查看
question
主要语言
JavaScript
星标
170
派生
320
平均合并
2 天 10 小时
30 天内合并 PR
5

描述

### 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

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。