# Contributing We use several pieces of technology in this repository to streamline the release process whilst maintaining high code quality. ## Debugging WASM By default if an error is un-handled (e.g a `panic!` in rust) when executing the WASM based module it will result in an un-helpful general error of `RuntimeError: unreachable`, which can be difficult to debug. To improve this experience, by default running `yarn build` in this library will compile the WASM from the rust with `console` feature enabled which provides a more insightful stacktrace for the error. ## Pre pull request checklist Below is a brief checklist prior to submitting or updating a pull request 1. Commit messages conform to the below conventions. 2. The pull request description fills in the relevant fields provided by the template. ## Commit messages A well formed commit message communicates context about a change. A diff will tell you what changed. A well cared for commit log is a beautiful and useful thing. What may be a hassle at first soon becomes habit, and eventually a source of pride and productivity for all involved. From reviews to maintenance it's a powerful tool. Understanding why something happened months or years ago becomes not only possible but efficient. We rely on consistent commit messages as we use [conventional-changelog](https://github.com/conventional-changelog/conventional-changelog) which automatically generates the changelog diff based on the commit messages We enforce well formed commit messages with pre-commit hooks using [husky](https://github.com/typicode/husky). The following guidelines are based on the angular team's [contribution guide](https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#-commit-message-guidelines). Checkout [commitizen](https://www.npmjs.com/package/commitizen) and [commitlint.io](https://commitlint.io/) for assistance. ``` ():