-
Notifications
You must be signed in to change notification settings - Fork 166
Type-class-based CDDL generation #5419
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
Conversation
8f8415d to
d435466
Compare
lehins
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this looks beautiful!
If you are able to apply all of my suggestions, then feel free to start basing definitions of other eras on this PR.
I'll take a look at it again first thing in the morning and if it's all good, I'll make sure it is merged right away.
d435466 to
60ee4d8
Compare
* Add new sub-libraries named `cddl`. * 3 typeclasses: HuddleRule, HuddleGroup and HuddleGRule * Proxy parameters are used to specify the era. * Polymorphic smart-constructors for all reusable huddle-specs Co-Authored-By: Alexey Kuleshevich <alexey.kuleshevich@iohk.io>
60ee4d8 to
bf2d5f7
Compare
lehins
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great!
@aniketd Thank you for coming up with this approach!
Description
New libraries named
cddlfor Shelley and Allegra to implement type-class-based cuddle definitions to generate .cddl files from.Follow-up PRs should implement for eras Mary-onwards.
This is the second phase in our efforts to address #5194
NOTE
codegenon CI is expected to FAIL, and its diff is important to know exactly what has changed in the new implementation.Checklist
Tests added or updated when needed.CHANGELOG.mdfiles updated for packages with externally visible changes.NOTE: New section is never added with the code changes. (See RELEASING.md).
Versions updated in.cabalandCHANGELOG.mdfiles when necessary, according to theversioning process.
Version bounds in.cabalfiles updated when necessary.NOTE: If bounds change in a cabal file, that package itself must have a version increase. (See RELEASING.md).
scripts/fourmolize.sh).scripts/cabal-format.sh).scripts/gen-cddl.sh)hie.yamlupdated (usescripts/gen-hie.sh).