Unintuitive behavior for parent and child configurations w.r.t. implicit overwrites
Nobody has claimed this yet.
- Dominant language
- Swift
- Stars
- 19.7k
- Forks
- 2.3k
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 11
Description
All options possible in a configuration have a default value which is implicitly set even if an option is not mentioned in a certain configuration. Together with the rule that child configurations specialize parent configurations, all options set in the parent are overridden by the values in the child even if they are not explicitly set therein.
One example is strict which is false by default. Setting strict: true in the parent, but not mentioning it at all in the child resets it to its default value false. This is most likely not the intention of the user.
We should change the behavior to something more intuitive. This would definitely be a breaking change which needs to be properly communicated. The new logic must be well thought out and needs to consider parent_config and child_config.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the configuration handling for parent_config and child_config, focusing on how implicit default values override parent settings. Define the intended inheritance behavior, cover the strict example and other options, and communicate the resulting breaking change.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100