conda-forge / cfep

conda-forge's Enhancement Proposal
BSD 3-Clause "New" or "Revised" License
18 stars 24 forks source link

CFEP 21 - conda-forge / Bioconda Transfer Policy - DRAFT #52

Open mfansler opened 3 months ago

mfansler commented 3 months ago

I am proposing we formalize transfers between Conda Forge and Bioconda. Conda Forge to Bioconda transfers create problems for other packages on Bioconda that need the newer versions. I am suggesting Conda Forge creates a dedicated label that will be applied to all builds from a transferred feedstock. This would alleviate solving issues by moving the older builds off the main label.

@conda-forge/bioconda-recipes

Example Impacted Feedstocks

Checklist

jaimergp commented 3 months ago

I wasn't aware that conda-forge recipes were being migrated to bioconda. I would have expected that a better solution was to onboard maintainers to the (I presume) outdated feedstocks, and this way we don't have to deal with these priority issues.

Is this extended practice or just a new case found in this r-alakazam package?

mfansler commented 3 months ago

I wasn't aware that conda-forge recipes were being migrated to bioconda. I would have expected that a better solution was to onboard maintainers to the (I presume) outdated feedstocks, and this way we don't have to deal with these priority issues.

Is this extended practice or just a new case found in this r-alakazam package?

I can try to add more examples at some point. The ones I see are driven by R packages adding a Bioconductor dependency, none of which we host. It is acutely problematic for r-alakazam because another Bioconda package has a lower bounds dependency above any of the CF builds.

An alternative solution could be that Bioconda creates an ability for recipes to optionally build with flexible channel priority. However, I still don't think it would hurt to formalize a transfer policy.

jaimergp commented 3 months ago

Ah, I see, not a matter of lack of maintenance, but new requirements not found in conda-forge and available in bioconda. I see.

Even if you manage to build with flexible, downstream users would have to also realize that, and they might be using strict, so yes, I don't think there's a way around 😬

If only conda could tell you why your package disappeared... I envision a removed section in repodata.json where not just the package is listed (like it is now), but there's a reason attached to it too, and we can display it to the user.

mfansler commented 3 months ago

Has this been discussed with the bioconda dev folks?

No. Hopefully they can weigh in here.

CC: @conda-forge/bioconda-recipes

mfansler commented 1 month ago

@bgruening sorry for the delay in this. I'll try to touch it up to move it from Draft to Proposed.

I have one question for the strict-channel setting. If I have package A-0.1 in CF and A-0.5 in BC. Is a pin - A >=0.5 not working?

No, it does not work. In strict mode, having any version of package A in CF has the solver ignore all repodata in BC about A.

mfansler commented 1 month ago

@bgruening @conda-forge/bioconda-recipes I've updated this. Please review.

Note that the bioconda-recipes linter seems to strictly reject CF-to-BC transfers currently, such that these transfers cannot proceed further in PR CI without some solution along the proposed lines. (e.g., https://github.com/bioconda/bioconda-recipes/pull/50793)

@beckermr is it necessary to prototype an implementation (e.g., a PR to admin-requests) to move this from "Draft" to "Proposal"?

jakirkham commented 1 week ago

cc @mbargull