A depends_on() with no variants specified is concretized as requiring a version built with exactly default variants because of the concretize_variants behavior. I would contend that this is unnecessary, and actually unfortunate. This is the root cause of #267 for example, and requires rebuilds to get a less complete version when variants are used to enable extra features. For example, testing the new llvm rework by adding a dependent rust compiler package, depending on llvm required a rebuild of llvm because the installed version had +gold when the default was -gold.
Why are variants this draconian, rather than accepting any package that matches all specified variants?
A
depends_on()with no variants specified is concretized as requiring a version built with exactly default variants because of theconcretize_variantsbehavior. I would contend that this is unnecessary, and actually unfortunate. This is the root cause of #267 for example, and requires rebuilds to get a less complete version when variants are used to enable extra features. For example, testing the new llvm rework by adding a dependent rust compiler package, depending onllvmrequired a rebuild of llvm because the installed version had+goldwhen the default was-gold.Why are variants this draconian, rather than accepting any package that matches all specified variants?