Contributions in the form of feedback and issue is very much welcome. Might it be a suggestion, a bug report or maybe some questions that you have. It helps improving Kupo in the long run and these are probably the best kind of contributions to start with. See About Issues/Discussions below for guidelines.
Do not hesitate to upvote discussions or comments to show your interest!
Feel like tossing some coins for the project? Become a sponsor !
Make sure to first read the user-manual 📖 if you're willing to hack a bit on Kupo. Then, make help
should provide a good starting point.
For development, cabal should work out-of-the-boxTM provided that you have the right system dependencies. Refer to Ogmios' user manual for setting up those system dependencies, they are the same.
Alternatively, you can spin up a nix shell as follow:
nix develop github:CardanoSolutions/devx#ghc96-iog-full --no-write-lock-file --refresh
If using the Nix shell, you'll likely want to create a cabal.project.local
file:
package digest
extra-lib-dirs: /nix/store/y08crgb0j7bniwwpcsfwn0dikpcim948-zlib-1.3/lib /nix/store/sk54pr3wx1jbfv8pd0fizkvdsb38j5ga-pcre-8.45-bin/lib
constraints:
HsOpenSSL +use-pkg-config,
zlib +pkg-config,
pcre-lite +pkg-config
Once you're all set, you can run tests using:
$ make check
# or similarly
$ cabal test all
Some tests are end-to-end and require to have a running (and roughly synchronized) cardano-node and/or ogmios against the testnet. These tests are automatically skipped, unless you set the following environment variables (using direnv
for that is pretty convenient):
# For cardano-node
export CARDANO_NODE_SOCKET=/path/to/testnet/cardano-node/node.socket
export CARDANO_NODE_CONFIG=/path/to/testnet/cardano-node/config.json
# For Ogmios
export OGMIOS_HOST=127.0.0.1
export OGMIOS_PORT=1337
Coding standards are enforced using tools and configuration defined in the repository. Make sure to configure your editor to pick them up (stylish-haskell and .editorconfig
in particular).
Pull requests are welcome, but we do recommend to open an discussion to bring any idea and discuss design first!
Open a Bug Ticket.
Feel free to bring it as a discussion [category: idea]. Make sure to highlight your use case so we can understand the design space and agree on a solution.
Note
Ideally, follow this simple template:
- What is your idea? Describe it in simple words. Provide a use case.
- Why is it a good idea?
- What is the current alternative and why is it not good enough?
Create a Q&A Discussion
Warning
Make sure to mark your question as Answered once resolved!