Skip to content

Make Dijkstra genesis config optional#6524

Open
Minhcardanian wants to merge 1 commit intoIntersectMBO:masterfrom
Minhcardanian:dijkstra-optional-config-10.7.0
Open

Make Dijkstra genesis config optional#6524
Minhcardanian wants to merge 1 commit intoIntersectMBO:masterfrom
Minhcardanian:dijkstra-optional-config-10.7.0

Conversation

@Minhcardanian
Copy link
Copy Markdown

• # Description

I found that cardano-node configuration parsing required DijkstraGenesisFile whenever ExperimentalHardForksEnabled = true, even though protocol instantiation already handled a
missing Dijkstra config by falling back to the empty Dijkstra genesis.

That made some experimental configurations fail at parse/startup time even though the runtime path already supported the absence of a Dijkstra genesis file.

In this PR I make DijkstraGenesisFile optional during config parsing so parse-time behavior matches the existing runtime fallback:

  • if DijkstraGenesisFile is present, it is parsed and used as before
  • if it is absent, parsing now keeps the Dijkstra configuration as Nothing

I reproduced the issue in the 10.7.0 worktree before making the fix, then verified the fix with:

  • property-style parser regression coverage in cardano-node/test/Test/Cardano/Node/POM.hs
  • cardano-testnet golden default config verification
  • cardano-testnet dump/load integration verification

Validation used:

  • nix develop . -c cabal test cardano-node-test
  • nix develop . -c cabal test cardano-testnet-golden --test-options '-p "Golden tests.golden_DefaultConfig"'
  • nix develop . -c cabal test cardano-testnet-test --test-options '-p dumping'

Checklist

  • Commit sequence broadly makes sense and commits have useful messages
  • New tests are added if needed and existing tests are updated. These may include:
    • golden tests
    • property tests
    • roundtrip tests
    • integration tests
      See Running tests for more details
  • Any changes are noted in the CHANGELOG.md for affected package
  • The version bounds in .cabal files are updated
  • CI passes. See note on CI. The following CI checks are required:
    • Code is linted with hlint. See .github/workflows/check-hlint.yml to get the hlint version
    • Code is formatted with stylish-haskell. See .github/workflows/stylish-haskell.yml to get the stylish-haskell version
    • Code builds on Linux, MacOS and Windows for ghc-9.6 and ghc-9.12
  • Self-reviewed the diff

@Minhcardanian Minhcardanian requested a review from a team as a code owner April 11, 2026 01:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant