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

Proposal: Local & Upstream Bundles + Mix Bundle List #55

Closed
kevincwells opened this issue Dec 23, 2017 · 3 comments
Closed

Proposal: Local & Upstream Bundles + Mix Bundle List #55

kevincwells opened this issue Dec 23, 2017 · 3 comments
Assignees

Comments

@kevincwells
Copy link
Contributor

kevincwells commented Dec 23, 2017

Note

This is a condensed form of a more detailed proposal on this topic. Please contact @kevincwells for information.

Current State/Motivation

Currently, the way you add bundles to your mix is to copy the bundle definition file from a given version of CLR into the mix-bundles directory. That means the existence of bundle definition files in your mix-bundles directory is the specification of what bundles you want to include in your mix. Meanwhile, the mix-bundles directory is, in fact, input to other tools (bundle-chroot-builder.py).

This causes ambiguity and problems, especially when handling bundles that include other bundles. For example let’s say the developer cares about including Bundle_A in their mix, and that bundle itself includes Bundle_B. That means mix-bundles will contain both Bundle_A and Bundle_B, but there is no way to know that Bundle_B is only there as an include. So later, if Bundle_A gets modified upstream to no longer have that include, the developer is “stuck” with Bundle_B, because it is in their mix-bundles directory, and we cannot tell the difference.

Proposal

Allow the user to include some bundles as-is from upstream (CLR) without maintaining a local copy.

  • Change how to specify what bundles are included in a mix to be a Mix Bundles List containing all the bundles that must be in the mix. Other bundles will be automatically added by Mixer to fulfill bundle includes.
  • Create a local-bundles directory to contain user-created and edited bundles.
    • Think of this as analogous to the local-rpms directory.
  • Any bundles in the Mix Bundles List that are not in the local-bundles directory are treated as "Upstream Bundles" and are included from upstream (CLR) as-is.
  • Populate the mix-bundles directory (the input to bundle-chroot-builder) on the fly when chroots are built. Bundles included by other bundles are handled automatically, and local bundles always take precedence over their upstream counterparts.
@kevincwells kevincwells added this to the January '18 milestone Dec 23, 2017
@kevincwells kevincwells self-assigned this Dec 23, 2017
@cmarcelo
Copy link
Contributor

Minor: would change "Change the specification of what bundles are included in a mix to be a Mix Bundles List containing only top-level bundles (i.e., not those that are included)"

to something like:

"Change how to specify what bundles are included in a mix to be a Mix Bundles List containing all the bundles that must be in the mix. Other bundles will be automatically added by Mixer to fulfill bundle includes."

with the intent of clarifying what bundles are guaranteed to be part of the mix (those listed).

@kevincwells
Copy link
Contributor Author

@cmarcelo I like that wording. Thanks -- I'll update it.

@kevincwells
Copy link
Contributor Author

Implemented in #137

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants