Add support for configuration inheritance
- Dominant language
- Bicep
- Stars
- 3.6k
- Forks
- 830
- Avg merge
- 1d 21m
- Merged PRs (30d)
- 79
Description
**Describe the solution you'd like**
I wonder if we can provide a way to allow a configuration file to inherit from another one. Similar to TypeScript's `tsconfig.json`, this can be done by adding an `extends` property to specify the path to a base configuration file.
### Example
```JSONC
// bicepconfig.base.json
{
"analyzers": {
// ...
}
}
```
```JSONC
// bicepconfig.dev.json
{
"extends": "./bicepconfg.base.json"
"moduleAliases": {
"ts": {
"specs": {
"subscription": "...",
"resourceGroup": "test-rg"
}
}
}
}
```
```JSONC
// bicepconfig.prod.json
{
"extends": "./bicepconfg.base.json"
"moduleAliases": {
"ts": {
"specs": {
"subscription": "...",
"resourceGroup": "prod-rg"
}
}
}
}
```
Contributor guide
Research direction
The examples name bicepconfig.base.json, bicepconfig.dev.json, and bicepconfig.prod.json. Start by locating the configuration-loading entry point and related tests, then determine how an extends path and inherited settings should be resolved; done means derived configurations consistently load the base configuration and apply their overrides.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- json
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100