Use qualified import of foldl' from Data.Foldable
This avoids redundant import warnings on newer GHC versions
This avoids redundant import warnings on newer GHC versions
Add a test suite that decodes every example configuration through the autodocodec-derived parsers and the full configuration-file pipeline, guarding against drift between the parsers and the example configs.
Add a small executable that prints the configuration JSON Schema (the whole single-file configuration, or a single named component), with --list and --help.
Add Cardano.Configuration.Schema, which derives a JSON Schema for each configuration component, and a merged whole-config schema, directly from the autodocodec codecs, so the schema cannot drift from the parser. The schemas target draft-07 and surface the codecs' annotations as descriptions.
Replace the hand-written FromJSON instances with autodocodec HasCodec codecs (deriving FromJSON/ToJSON via Autodocodec), so the parsers and the configuration documentation share a single definition. The LedgerDB snapshot configuration moves to the predictable-snapshots model: a Snapshots policy that is either a named policy or an explicit options object, with the example configs updated to match.
Adopt the predictable-snapshots LedgerDB model from the upcoming node (f-f/prepare-11.1, predictable-snapshots): the LedgerDB Snapshots key is either a named policy (e.g. "Mithril") or an explicit options object (SnapshotInterval, SlotOffset, RateLimit, MinDelay, MaxDelay, NumOfDiskSnapshots), replacing the flat snapshot fields. The example configs are updated to match. The parsers remain hand-written FromJSON, for consumers who want the plain-JSON configuration without autodocodec.
Add a test suite that decodes every example configuration through the autodocodec-derived parsers and the full configuration-file pipeline, guarding against drift between the parsers and the example configs.
Add a small executable that prints the configuration JSON Schema (the whole single-file configuration, or a single named component), with --list and --help.
Add Cardano.Configuration.Schema, which derives a JSON Schema for each configuration component, and a merged whole-config schema, directly from the autodocodec codecs, so the schema cannot drift from the parser. The schemas target draft-07 and surface the codecs' annotations as descriptions.
Replace the hand-written FromJSON instances with autodocodec HasCodec codecs (deriving FromJSON/ToJSON via Autodocodec), so the parsers and the configuration documentation share a single definition. The LedgerDB snapshot configuration moves to the predictable-snapshots model: a Snapshots policy that is either a named policy or an explicit options object, with the example configs updated to match.
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]>
Add example configurations, including a full single-file config and an example of splitting the configuration across per-component files.
Add the top-level configuration file parser, which supports splitting the configuration across per-component sub-files and a ConfigurationVersion field (File), and resolveConfiguration, which combines the CLI arguments and the parsed files into a final NodeConfiguration.
Add the FromJSON parsers for each configuration component: Storage (LedgerDB backend selection and snapshot policy), Consensus (Praos/Genesis mode), Protocol (per-era genesis files and hashes), Network, Mempool and Testing.
Add the optparse-applicative parser for the cardano-node command-line options (CliArgs), covering storage, credentials, host, tracing and shutdown options.
Add the configuration defaulting helper (Basics) and the types shared between the CLI arguments and the configuration files, such as NodeDatabasePaths (Common).
Introduce a new standalone cardano-config library that provides a single entry point for parsing the cardano-node configuration (CLI options and JSON/YAML files). Wire it into the cabal project and the cabal-gild CI script.