Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Composable Variants (or Richer Variant Semantics) #1260

Closed
webern opened this issue Jan 5, 2021 · 1 comment
Closed

Composable Variants (or Richer Variant Semantics) #1260

webern opened this issue Jan 5, 2021 · 1 comment
Labels
status/needs-triage Pending triage or re-evaluation type/enhancement New feature or request

Comments

@webern
Copy link
Contributor

webern commented Jan 5, 2021

Variants are defined as if they were independent of any other variant. However we see a pattern emerging where variants share traits with other variants (Several Kubernetes variants that differ only in the version of Kubernetes, for example).

Looking to a future where many more variants may exist, we should consider whether the current mechanisms for defining variants are sufficient, or if some mechanisms for composing variants from re-usable building blocks should be introduced.

Edit: There are a couple of places in the codebase that are referencing this issue. In particular, in places that we want to interact with the models::Settings struct, we need to do conditional compilation. In a variant build using buildsys, we can prevent compilation of crates that aren't compatible for the current variant. But we want to preserve the usability of the sources workspace for developer workflow and unit-tests (e.g. cargo make unit-tests). Thus we end up with conditional compilation (using #[cfg(something)]) to avoid compiling incompatible bits of the sources workspace when the 'wrong' variant is being compiled.

@webern webern added the type/enhancement New feature or request label Jan 5, 2021
@webern webern self-assigned this Jan 5, 2021
@gregdek gregdek added this to the backlog milestone Apr 1, 2021
@webern webern removed their assignment Apr 12, 2021
@jhaynes jhaynes modified the milestones: backlog, next+1 Aug 4, 2021
@kdaula kdaula modified the milestones: next+1, backlog Feb 4, 2022
@stmcginnis stmcginnis added status/needs-triage Pending triage or re-evaluation and removed priority/p1 labels Dec 1, 2022
@stmcginnis stmcginnis removed this from the backlog milestone Feb 23, 2023
@webern
Copy link
Contributor Author

webern commented Feb 23, 2023

Things have changed a lot in our thinking since I opened this issue. We are now pursuing #2669 which includes changes throughout the build system. Although #2669 doesn't address this directly, it does make this issue less relevant. Closing in favor of issues that we will right that solve problems more directly as they come up.

@webern webern closed this as completed Feb 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status/needs-triage Pending triage or re-evaluation type/enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants