-
Notifications
You must be signed in to change notification settings - Fork 157
Added Dijkstra era #5030
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Added Dijkstra era #5030
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
### Adding a new era to `cardano-ledger` | ||
|
||
First you need to crate a new sub-package in the `eras` directory. | ||
It's easiest to just copy the `.cabal` file from the previous era and then make | ||
some changes to that. Change the name of the project to `cardano-ledger-<era>` | ||
and update the description/synopsis. | ||
|
||
Next you'll want to add a datatype to represent the new era (e.g. `ConwayEra`). | ||
Then copy over the entire test suite from the previous era and substitute the | ||
era types for the newly added era type. Once the tests are in place, the type | ||
checker will guide you to add all the necessary type family and type class | ||
instances. You might need to make some of the tests era-generic. See which tests | ||
don't yet take an era type annotation and modify those test if possible. The tests | ||
that can be made era-generic should be moved to the `testlib` of the era where | ||
they were first introduced, and any era-specific tests should reside in the test | ||
suite package of that era. | ||
|
||
Add the `Cardano.Ledger.<era>.Core` module and re-export the `Core` module from | ||
the previous era. Use the `Core` module from the current era whenever you need | ||
to import anything from the core module. Do the same for | ||
`Cardano.Ledger.<era>.State`. | ||
|
||
It's a good idea to re-use the data types defined in the previous era at first. | ||
You might need to use `coerce` in a couple of places to change the era parameter | ||
when translating these types. Also, there might be some constraints that expect | ||
the era to be exactly the previous era, you will probably be able to generalize | ||
these functions and type class instances to make them compatible with the new era. | ||
|
||
For `EraRule` instances use the same rules as in the previous era. | ||
|
||
Make sure to update `.github/ci/haskell.yml` so that the job also runs the test | ||
suite of the newly added era. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.