Which build is chosen when same version exists on multiple conda channels
0 reputation · 30 Jun 2024, 02:06 UTC
Conda selects packages using the channel_priority setting in .condarc, with modes strict, flexible, or disabled. The resolver is documented to prefer channels according to that priority when versions differ.
The unresolved behavior concerns identical package versions that appear on multiple channels with different builds. Documentation describes priority for version selection but does not define a deterministic tie-break for build selection when version matches across channels.
Resolver implementation differences add uncertainty, as the legacy conda resolver and the libmamba-backed resolver can produce different build choices for the same channel configuration. Environment export records exact build strings, so recreation depends on the build that was originally selected.
Does conda define a deterministic tie-break rule for identical version candidates across channels under channel_priority strict and flexible? Is build selection stable across legacy and libmamba resolvers with the same channel order? Which attributes determine the chosen build when version and constraints are otherwise equal?