Upgradable default config values/profiles
- Dominant language
- Go
- Stars
- 17.1k
- Forks
- 3.2k
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 11
Description
Currently, profiles and many of our default config values are written to the config. Unfortunately, this makes it hard for us to _change_ them for existing users, even when the user hasn't explicitly chosen to override something.
Proposal:
1. Mostly empty on-disk config by default.
2. Add a "profiles" section to the config that lists all the profiles that should be applied and in what order.
3. Add "DefaultX: bool"/"CustomX: value" options where applicable (e.g., bootstrappers), to allow users to extend defaults.
At runtime, we'd:
1. Read the config.
2. Apply the defaults to the in-memory config.
3. Apply the profiles to the in-memory config.
When updating the config, we'd:
1. Re-read the on-disk config.
2. Apply the update to the on-disk config without persisting the in-memory config (unless necessary?).
Contributor guide
Assessment
This issue has not been assessed yet.