diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 12ff6b4365..fc307da38c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,7 +21,7 @@ Pull requests are the best way to propose a new change to the codebase. - Fork the repo - Create a branch from `staging` - Find or create one or more issues that your change will fix, using our [new issue form](https://github.com/iron-fish/ironfish/issues/new/choose). - - ALL pull requests must refence a verified issue. If the issue is not verified, that has to happen before the PR is reviewed. + - ALL pull requests must reference a verified issue. If the issue is not verified, that has to happen before the PR is reviewed. - Note that team members looking at a PR will try to verify any issues referenced before doing the review. As long as the issue is solid, this should be a fast process! - Open a pull request against `staging` @@ -35,7 +35,7 @@ Once the PR is created, one of the maintainers will review it and merge it. Refe Please read our [README.md](./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: -- Start with our list of "good first issues", which can be [found here](https://github.com/iron-fish/ironfish/contribute), or take a look at our current [list of verified issues](https://github.com/iron-fish/ironfish/issues?q=is%3Aopen+is%3Aissue+label%3Averified). +- Start with our list of "good first issues", which can be [found here](https://github.com/iron-fish/ironfish/contribute), or take a look at our current [list of verified issues](https://github.com/iron-fish/ironfish/issues?q=is%3Aopen+is%3Aissue+label%3Averified). - Claim the issue if you are interested in working on it. - Take a look at our current [pull requests](https://github.com/iron-fish/ironfish/pulls) and help review them. - Help us add new tests. More testing allows everyone to ship quality code faster. @@ -44,7 +44,7 @@ If you don't know what contribution you can work on, here are a few suggestions: # Feature Request -The purpose of a Feature Request is to explain an improvement you would like to make to Iron Fish, and get consensus from the core development team of Iron Fish. The reason is that we want to make sure your change fits inside of the product vision, and that you don't try to fix a bug in a piece of code already being refactored. +The purpose of a Feature Request is to explain an improvement you would like to make to Iron Fish and get consensus from the core development team of Iron Fish. The reason is that we want to make sure your change fits inside of the product vision and that you don't try to fix a bug in a piece of code already being refactored. You can submit a Feature Request by filing an issue here: https://github.com/iron-fish/ironfish/issues/new/choose @@ -53,11 +53,11 @@ You can submit a Feature Request by filing an issue here: https://github.com/iro If you are working on something in one of these categories, we will not accept your PR if you don't open a Feature Request. - #### Upgrading Package Versions - - This is a common attack vector by malicious agents. We lock down our packages for this very reason, and only allow the core team to upgrade packages unless you submit a Feature Request first explaining why you want to upgrade the package. + - This is a common attack vector by malicious agents. We lock down our packages for this very reason and only allow the core team to upgrade packages unless you submit a Feature Request first explaining why you want to upgrade the package. - #### Upgrading Node Versions - There is a large impact in upgrading node versions. Iron Fish takes advantage of many experimental node features, some of which are not fully fleshed out. We use workers and native code boundaries. Node is also known to introduce bugs in newer versions, even LTS. Because of this, there is production testing we do on our side when upgrading node to ensure it's compatible. Because of this, we don't allow users to upgrade our node versions unless a Feature Request is filed. - #### Refactor a core system - - Often engineers have visions for core systems, and may be in the process of changing them. Feature Requests help avoid overlap and having your changes overwritten. Some core systems include: MerkleTree, Blockchain, PeerNetwork, Verifier, and Consensus. + - Often engineers have visions for core systems and they may be in the process of changing them. Feature Requests help avoid overlap and having your changes overwritten. Some core systems include: MerkleTree, Blockchain, PeerNetwork, Verifier, and Consensus. - #### Making new product design decisions that have no precedent - This one is more complicated. If our product works one way, and you open a PR to change the core product principles to work in another way, then we are going to close your PR as it does not fit into our vision. Try to match existing precedent as much as possible in your code. - #### Tests for CLI commands