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

Load the correct defaults file when loading packages #818

Merged
merged 1 commit into from
Dec 8, 2023

Conversation

TimoWilken
Copy link
Contributor

Previously, we would always load defaults-release.sh, even when another default was specified (such as --defaults=o2). Then, we'd override some of the keys of defaults-release.sh with those from the correct defaults file.

While we currently cover the most frequently-used keys in defaults (env, disable, overrides), this is obviously a massive footgun. It also means we must always have a defaults-release.sh file present, even if that default is never used.

This patch changes getPackageList() to load the correct underlying defaults file. It does not touch the override logic in parseDefaults(), which can probably be signficantly simplified after this patch is applied, but that's fiddly and would make this change less reviewable, so I'll leave it for another commit. This does mean that we'd load e.g. defaults-o2.sh and then override some of its keys with the same values loaded previously, but that shouldn't hurt.

Internally, all defaults are still called defaults-release to allow sharing packages between defaults (which I assume was the original motivation for doing this). There's not much point currently, since we set env: differently in all defaults, but we might want to use this in future.

Previously, we would always load `defaults-release.sh`, even when another
default was specified (such as `--defaults=o2`). Then, we'd override some of
the keys of `defaults-release.sh` with those from the correct defaults file.

While we currently cover the most frequently-used keys in defaults (env,
disable, overrides), this is obviously a massive footgun. It also means we
must always have a `defaults-release.sh` file present, even if that default is
never used.

This patch changes `getPackageList()` to load the correct underlying defaults
file. It does not touch the override logic in `parseDefaults()`, which can
probably be signficantly simplified after this patch is applied, but that's
fiddly and would make this change less reviewable, so I'll leave it for
another commit. This does mean that we'd load e.g. `defaults-o2.sh` and then
override some of its keys with the same values loaded previously, but that
shouldn't hurt.

Internally, all defaults are still called `defaults-release` to allow sharing
packages between defaults (which I assume was the original motivation for
doing this). There's not much point currently, since we set `env:` differently
in all defaults, but we might want to use this in future.
@TimoWilken TimoWilken requested a review from ktf December 7, 2023 15:12
@ktf ktf merged commit e9c2738 into alisw:master Dec 8, 2023
11 checks passed
@ktf
Copy link
Member

ktf commented Dec 8, 2023

As discussed, we were indeed doing this to allow sharing packages between defaults.

@TimoWilken TimoWilken deleted the load-correct-defaults-file branch December 11, 2023 09:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants