In this note, I propose a modification to conda
and to its implied package specification that will provide, in my view, a solution to a common pitall of the conda
ecosystem, and will provide additional performance benefits as well.
With conda
, as with many package ecosystems, it is often necessary for a package to place version constraints on its dependencies to ensure that they interoperate properly. In practice, such constraints must balance two competing concerns:
- if the constraints are specified too tightly, then packages will often unable to coexist, because their version constraints will conflict. For example, if package
A
depends onB <2.0
, and packageC
depends onB >2.0
, then packagesA
,B
, andC
cannot coexist. The tighter the constraints, the more likely this is to happen. - on the other hand, if the constraints are specifed too loosely, then packages will often break if one of their dependencies ce