AcademySoftwareFoundation / AcademySoftwareFoundation/rez
Modelling Package Variants
- Dominant language
- Python
- Stars
- 1.1k
- Forks
- 369
- Avg merge
- 12d 3h
- Merged PRs (30d)
- 5
Description
How should internal package variants be modelled in Rez?
The current variant system caters well for the cases where a variant is an external dependency (such as the gcc version, or the target operating system). But what about cases where the variant is internal to the package?
For example, the packages foo and boo both depend on the same version of bah. However they depend on different variants of bah; foo wants it compiled with option A, boo with option B. The options are mutually exclusive, and are build time options for bah.
I could make foo and bar variants of bah, allowing me to create the different builds, but this reverses the dependency which is incorrect.
I could make a meta-package for the two options so they can be listed as variants of bah, but this will become messy as the number of options increases.
Or I could make two packages; bah_A and bah_B. But this again will become messy as the number of options increases.
Is there a better way of modelling this in Rez?
Contributor guide
Assessment
This issue has not been assessed yet.