AcademySoftwareFoundation / AcademySoftwareFoundation/rez

Modelling Package Variants

Open
#34 3 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.