Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Migrate config.json to reference and override files in TOML format #1878
This ticket is an overview of the plans for upgrading the configuration file from a single config.json to reference and override files in TOML format. The following updates are in scope:
YAML was indeed considered and it was a close race. We use YAML for the protocol spec and are familiar with at least some of the tradeoffs. YAML is a complex spec and parsers have a history of issues with getting the fine points right, and there are some usability issues.
In short, TOML seems more end-user friendly as a config format; editing a simple ini-like format is easier to get right than having to deal with issues like invalid indentation. This is a semantics issue as well as syntax. This is especially relevant when you have user-override files - replicating the config indentation is error prone.
We also want to be generous with multiline comments, and I think that works best in a format that doesn't enforce indentation. It's also used by other crypto projects, like Ethereum.