Skip to content

Latest commit

 

History

History
98 lines (72 loc) · 3.42 KB

CONTRIBUTING.md

File metadata and controls

98 lines (72 loc) · 3.42 KB

Contributing

When contributing to this repository, please first discuss the change you wish to make via issue, before making a change. Please note we have a code of conduct, please follow it in all your interactions with the project.

Development environment setup

Prerequisites

To get started on Kakarot, you'll need python3.9, as well as Starknet-related libraries, e.g. cairo-lang.

  • Install poetry
  • Note you may need to run curl -sSL https://install.python-poetry.org | python3.9 - and not curl -sSL https://install.python-poetry.org | python3 - in order to force poetry to install itself on python3.9, just in case you have both python version 3.9 and 3.10 in your path.

Install foundry

To assess the soundness of our EVM, we compile common Solidity contracts and run tests on them through Kakarot.

To be able to verify and compare the ABI and bytecode of the Solidity test contracts, first make sure you have foundry installed on your machine.

Then, run:

make build-foundry

Common caveats:

  • python3.10 is not compatible with the cairo-lang library. Make sure poetry and your pyenv are using the 3.9 version of Python. Your machine may have conflicting versions of python.
    • 3.9-dev will fail when running make setup since it is evaluated as 3.9.10+ and therefore an invalid PEP 440 version (Poetry enforces PEP 440 versioning).
  • Mac M1 chips are subject to some quirks/bugs with regards to some cryptographic libraries used by cairo-lang.

To set up a development environment, please follow these steps:

  1. Clone the repo

    git clone https://github.com/kkrt-labs/kakarot
  2. Install dependencies

    make setup
  3. Run tests

    make test

Issues and feature requests

You've found a bug in the source code, a mistake in the documentation or maybe you'd like a new feature? You can help us by submitting an issue on GitHub. Before you create an issue, make sure to search the issue archive -- your issue may have already been addressed!

Please try to create bug reports that are:

  • Reproducible. Include steps to reproduce the problem.
  • Specific. Include as much detail as possible: which version, what environment, etc.
  • Unique. Do not duplicate existing opened issues.
  • Scoped to a Single Bug. One bug per report.

Even better: Submit a pull request with a fix or new feature!

How to submit a Pull Request

  1. Search our repository for open or closed Pull Requests that relate to your submission. You don't want to duplicate effort.
  2. Fork the project
  3. Enable workflows so CI can add an auto-commit during format checks enable-workflow
  4. Create your feature branch (git checkout -b feat/amazing_feature)
  5. Add, then commit your changes (git commit -m 'feat: add amazing_feature')
  6. Push to the branch (git push origin feat/amazing_feature)
  7. Open a Pull Request