Thank you for considering contributing to the Iron Fish project. We want to make contributing to this project as easy and transparent as possible, whether it's about:
- Discussing the current state of the code
- Documenting the code
- Reporting a bug
- Reporting a security threat
- Submitting a fix
- Suggesting a new feature
We welcome contributions from anyone on the internet, and are grateful for even a one-word correction! Note that we have a code of conduct, please follow it in all your interactions with the project.
Thanks in advance for your help.
We use Github to host code, to track issues and feature requests, as well as accept pull requests.
Pull requests are the best way to propose a new change to the codebase (we use the classic Github Flow).
To create a new pull request:
- Fork the repo and check out a new branch from
master
. - Add test - if your code change doesn't require a test change, please explain why in the PR description.
- Update the documentation - Especially if you've changed APIs or created new functions.
- Ensure the test suite passes by running
yarn test
. - Make sure your code lints by running
yarn lint
. - Once 4 & 5 are passing, create a new pull request on Github.
- Add the right label to your PR
documentation
,bug
,security-issue
, orenhancement
. - Add a description of what the PR is changing:
- What problem is the PR solving
- Explain if it's adding a breaking change for clients
- Explain how you've tested your change
Once the PR is created, one of the maintainers will review it and merge it into the master branch.
If you are thinking of working on a complex change, do not hesitate to discuss the change you wish to make via a Github Issue. You can also request feedback early, by opening a WIP pull request or discuss with a maintainer to ensure your work is in line with the philosophy and roadmap of Iron Fish.
Please read our README.md first, to learn how to set up Iron Fish.
If you don't know what contribution you can work on, here are a few suggestions:
- Take a look at our current list of issues. Update the issue if you are interested in working on it.
- Take a look at our current pull requests and help review them.
- Help us add new tests. More testing allow everyone to ship quality code faster.
- Write documentation or fix the existing documentation
- If you still don't know what could be a good task for you, do not hesitate to contact us.
For our TypeScript codebase, you can run the entire test suite using yarn test
in the root directory.
For our Rust codebase, you can run the test suites for each project by running cargo test
in the project directory.
After creating a PR on Github, the code will be tested automatically by GitHub Action. The tests can take up to 15 minutes to pass. We ask you to test your code on your machine before submitting a PR.
Iron Fish uses eslint
and prettier
to maintain consistent formatting on the TypeScript codebase.
For the Rust codebase, we are using rustfmt
.
Please run it before submitting a change.
Any contribution will be under the MPL-2.0 Software License. When you submit a code change, your submissions are understood to be under the same license that covers the project.
Please contact us if this a concern for you.
In case of problems with trying to contribute to Iron Fish, you can contact us: