Skip to content

Flexible runtime config handling - #3017

Draft
schaefi wants to merge 2 commits into
mainfrom
flexible_runtime_config_handling
Draft

Flexible runtime config handling#3017
schaefi wants to merge 2 commits into
mainfrom
flexible_runtime_config_handling

Conversation

@schaefi

@schaefi schaefi commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator

This refactor is two fold

Refactor runtime config layout style

The runtime config file nested key=value settings into lists like this [{key1=value1}, {key2=value2}]. This layout style is unnecessary complex and also makes it hard to implement a straight forward merge strategy for standard data types. This commit refactors the layout to the necessary data structure.

Refactor merge strategy for runtime config files

So far the runtime config dicts after yaml.safe_load were merged together via python's dict.update() method. However, in kiwi the runtime config contains nested dictionaries and lists which always causes an overwrite and does not allow for add-on settings of the same configuration key. This commit adds a recursive merge strategy to make this more flexible. This is related to Issue #3014

The runtime config file nested key=value settings
into lists like this [{key1=value1}, {key2=value2}].
This layout style is unnecessary complex and also
makes it hard to implement a straight forward merge
strategy for standard data types. This commit
refactors the layout to the necessary data structure.
@schaefi
schaefi requested a review from Conan-Kudo July 3, 2026 09:10
@schaefi schaefi self-assigned this Jul 3, 2026
@schaefi schaefi added the kiwi-11 label Jul 3, 2026
So far the runtime config dicts after yaml.safe_load were merged
together via python's dict.update() method. However, in kiwi the
runtime config contains nested dictionaries and lists which
always causes an overwrite and does not allow for add-on settings
of the same configuration key. This commit adds a recursive merge
strategy to make this more flexible. This is related
to Issue #3014
@schaefi
schaefi force-pushed the flexible_runtime_config_handling branch from c40aa3f to 31b9075 Compare July 3, 2026 09:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant