feat(config)!: replace combine.yml with auto-applying config-sets #12 #14

Merged
moritz merged 2 commits from config-set-combine into main 2026-09-14 11:32:36 +00:00
Owner

BREAKING CHANGE: the integrations alakazam shipped as combine.yml are gone
from the repository. Copy examples/config-sets-combine.yml into the root path
to keep them, where they can be pinned and adjusted along with the versions.

An integration is now a config-set carrying 'apply-when', which names the apps
whose presence makes it apply. Naming the condition rather than deriving it
from the configured apps is what lets a set configure only one side, as four
of the seventeen pairs in combine.yml did.

BREAKING CHANGE: the integrations alakazam shipped as combine.yml are gone from the repository. Copy examples/config-sets-combine.yml into the root path to keep them, where they can be pinned and adjusted along with the versions. An integration is now a config-set carrying 'apply-when', which names the apps whose presence makes it apply. Naming the condition rather than deriving it from the configured apps is what lets a set configure only one side, as four of the seventeen pairs in combine.yml did.
moritz added 1 commit 2026-09-09 21:20:27 +00:00
feat(config)!: replace combine.yml with auto-applying config-sets
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
continuous-integration/drone/tag Build is passing
cab4b1573c
BREAKING CHANGE: the integrations alakazam shipped as combine.yml are gone
from the repository. Copy examples/config-sets-combine.yml into the root path
to keep them, where they can be pinned and adjusted along with the versions.

An integration is now a config-set carrying 'apply-when', which names the apps
whose presence makes it apply. Naming the condition rather than deriving it
from the configured apps is what lets a set configure only one side, as four
of the seventeen pairs in combine.yml did.
dannygroenewegen left a comment
Contributor

Looks good, thanks for building this already! Some small comments from reading the changes. Have not tested this yet.

Looks good, thanks for building this already! Some small comments from reading the changes. Have not tested this yet.
@@ -287,0 +288,4 @@
CONFIG-SETS:
bbb: true
```
Contributor

The second way, apply-when, describes the use for an integration with the config-sets-combine.yml example. Here, we could add a line for the other use case with the example file:

This can be used for enabling sets of per-app configurations, e.g. for enabling features, at the group or instance level. See [examples/config-sets.yml](./examples/config-sets.yml).

The second way, apply-when, describes the use for an integration with the `config-sets-combine.yml` example. Here, we could add a line for the other use case with the example file: `This can be used for enabling sets of per-app configurations, e.g. for enabling features, at the group or instance level. See [examples/config-sets.yml](./examples/config-sets.yml).`
moritz marked this conversation as resolved
alakazam.py Outdated
@@ -182,5 +182,5 @@
paths.append(group_path)
else:
for root, _, files in os.walk(group_path):
if any(root.startswith(p) for p in exclude_paths):
continue
Contributor

Still references combine.yml, update to:
it, and every config-set file in the root path.

Still references combine.yml, update to: `it, and every config-set file in the root path.`
moritz marked this conversation as resolved
alakazam.py Outdated
@@ -478,3 +528,4 @@
instance_apps = {k: v for k, v in instance_config.items() if k not in NON_APP_KEYS}
automatic_app_configs, config_set_app_configs = get_config_set_app_configs(active_config_sets, config_sets, instance_apps)
# Warn about config-set entries that target apps not listed in the instance config.
for config_set_app in set(config_set_app_configs) - set(instance_apps):
Contributor

This only checks the non-automatic config sets. E.g. an apply-when set with a typo in the app key for the applied configs is silently not applied. Update to:

for config_set_app in (set(automatic_app_configs) | set(config_set_app_configs)) - set(instance_apps):

This only checks the non-automatic config sets. E.g. an apply-when set with a typo in the app key for the applied configs is silently not applied. Update to: `for config_set_app in (set(automatic_app_configs) | set(config_set_app_configs)) - set(instance_apps):`
moritz marked this conversation as resolved
moritz added 1 commit 2026-09-14 11:31:37 +00:00
fix(config): report a misspelt app key in an automatic config-set
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
d74895bd01
moritz merged commit 3200514165 into main 2026-09-14 11:32:36 +00:00
Sign in to join this conversation.