# How to contribute Thank you for reading this, we always welcome help make this project even better! Without the help from our contributors this project would not be possible. ## Code of Conduct Please read and follow our [Code of Conduct][coc]. ## Setup Run `npm install` to install dependencies. Run `npm run build:lib` to build. Run `npm run start:example-app` to start the example app. ### Testing Run `npm install` to install dependencies. Run `npm run build:lib` to build. Run `npm run test:ci:local` to test the same way the build validation will test. ## Submission Guidelines ### Submitting a feature request You can open an issue and request a new feature. Please add some information on what you would like, how it should work. Small features can be added directly as a Pull Request without opening an issue first. ### Submitting a bug report Search through other issues to see if there is already a previous issue for the bug. Provide a small reproduction using a StackBlitz project or a GitHub repo. ### Submitting a Pull Request - Please test your code by running the tests. - Rebase your branch against the current master. We might ask you to rebase again once your branch is out of date. - If you add new functionality please also add tests to validate this. - Reference issues as a PR comment. - Follow our code guidelines. ## Commit Message Guidelines We have very precise rules over how our git commit messages can be formatted. This leads to **more readable messages** that are easy to follow when looking through the **project history**. But also, we use the git commit messages to **generate the Angular Tree Component change log**. ### Commit Message Format Each commit message consists of a **header**, a **body** and a **footer**. The header has a special format that includes a **type**, a **scope**, and a **subject**: ``` ():