1f6121a04Sopenharmony_ci# How to Contribute
2f6121a04Sopenharmony_ci
3f6121a04Sopenharmony_ciContributions are always welcome!
4f6121a04Sopenharmony_ciPlease use the following guidelines when contributing to `lazycell`:
5f6121a04Sopenharmony_ci
6f6121a04Sopenharmony_ci1. Fork `lazycell`
7f6121a04Sopenharmony_ci2. Clone your fork (`git clone https://github.com/$YOUR_USERNAME/lazycell && cd lazycell`)
8f6121a04Sopenharmony_ci3. Create a new branch (`git checkout -b new-branch`)
9f6121a04Sopenharmony_ci4. Make your changes
10f6121a04Sopenharmony_ci5. Commit your changes (`git commit -am "your message"`)
11f6121a04Sopenharmony_ci * This project uses the
12f6121a04Sopenharmony_ci [conventional changelog format][conventional-changelog-format], so that we can
13f6121a04Sopenharmony_ci easily update the `CHANGELOG.md` using [clog][clog-cli].
14f6121a04Sopenharmony_ci * In addition to the conventions defined above, we also use `imp`, `wip`,
15f6121a04Sopenharmony_ci   and `examples`.
16f6121a04Sopenharmony_ci * Format your commit subject line using the following format:
17f6121a04Sopenharmony_ci   `TYPE(COMPONENT): MESSAGE` where `TYPE` is one of the following:
18f6121a04Sopenharmony_ci    - `feat` - A new feature
19f6121a04Sopenharmony_ci    - `imp` - An improvement to an existing feature
20f6121a04Sopenharmony_ci    - `perf` - A performance improvement
21f6121a04Sopenharmony_ci    - `docs` - Changes to documentation only
22f6121a04Sopenharmony_ci    - `tests` - Changes to the testing framework or tests only
23f6121a04Sopenharmony_ci    - `fix` - A bug fix
24f6121a04Sopenharmony_ci    - `refactor` - Code functionality doesn't change, but underlying structure
25f6121a04Sopenharmony_ci      may
26f6121a04Sopenharmony_ci    - `style` - Stylistic changes only, no functionality changes
27f6121a04Sopenharmony_ci    - `wip` - A work in progress commit (Should typically be `git rebase`'ed
28f6121a04Sopenharmony_ci      away)
29f6121a04Sopenharmony_ci    - `chore` - Catch all or things that have to do with the build system, etc.
30f6121a04Sopenharmony_ci    - `examples` - Changes to an existing example, or a new example
31f6121a04Sopenharmony_ci * The `COMPONENT` is optional, and may be a single file, directory, or logical
32f6121a04Sopenharmony_ci   component.
33f6121a04Sopenharmony_ci   Can be omitted if commit applies globally
34f6121a04Sopenharmony_ci6. Run the tests (`cargo test`)
35f6121a04Sopenharmony_ci7. `git rebase` into concise commits and remove `--fixup`s
36f6121a04Sopenharmony_ci   (`git rebase -i HEAD~NUM` where `NUM` is number of commits back)
37f6121a04Sopenharmony_ci8. Push your changes back to your fork (`git push origin $your-branch`)
38f6121a04Sopenharmony_ci9. Create a pull request! (You can also create the pull request first, and
39f6121a04Sopenharmony_ci   we'll merge when ready.
40f6121a04Sopenharmony_ci   This a good way to discuss proposed changes.)
41f6121a04Sopenharmony_ci
42f6121a04Sopenharmony_ci# Notes
43f6121a04Sopenharmony_ci
44f6121a04Sopenharmony_ci* Ensure that you update the copyright dates, if necessary (e.g. `2014, 2016` ->
45f6121a04Sopenharmony_ci  `2014, 2016-2017`)
46f6121a04Sopenharmony_ci* Make sure you add yourself to the [`CONTRIBUTORS.md`][contributors]!
47f6121a04Sopenharmony_ci
48f6121a04Sopenharmony_ci[clog-cli]: https://github.com/clog-tool/clog-cli "clog-tool/clog-cli"
49f6121a04Sopenharmony_ci[contributors]: CONTRIBUTORS.md "CONTRIBUTORS.md"
50f6121a04Sopenharmony_ci[conventional-changelog-format]: https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#commit "Angular Git Commit Guidelines"
51