1 | # Contributing
|
2 |
|
3 | **Working on your first Pull Request?** You can learn how from this *free* series
|
4 | [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github)
|
5 |
|
6 | ## Steps
|
7 |
|
8 | 1. File an issue and discuss your proposed solution first
|
9 | 2. Fork and clone the repo
|
10 | 3. `$ npm install` to install dependencies
|
11 | 4. `$ npm run validate` to validate you've got it working
|
12 | 5. Create a branch for your PR
|
13 | 6. `$ npm run test -- --watch` to watch the file system as you make changes to things
|
14 | 7. Make your changes. Make sure to add yourself to the `.all-contributorsrc`! [More info](https://github.com/kentcdodds/all-contributors)
|
15 | 8. Run `npm run validate` to make sure things look good.
|
16 | 9. Commit your changes following [our standards](https://github.com/stevemao/conventional-changelog-angular/blob/master/convention.md) (optionally use `$ npm run commit` to craft a commit message and commit. If you're having trouble committing, try adding `--no-verify` to your `git commit` command and ask for help in the pull request :-)
|
17 | 10. Push your branch to your fork
|
18 | 11. Make a pull request to `master` on this repository
|
19 | 12. Get merged
|
20 | 13. Celebrate 🎉
|
21 |
|
22 | ## Committing and Pushing changes
|
23 |
|
24 | As stated earlier, please follow [this convention](https://github.com/stevemao/conventional-changelog-angular/blob/master/convention.md) for your commit messages.
|
25 |
|
26 | Once you are ready to commit the changes, please use the below commands
|
27 |
|
28 | 1. `git add <files to be comitted>`
|
29 | 2. `$ npm run commit`
|
30 |
|
31 | ... and follow the instruction of the interactive prompt.
|
32 |
|
33 | ### Opt into run tests while committing
|
34 |
|
35 | `npm run commit` will not execute any `tests`, prior `commit`ing, however you can **opt into it**.
|
36 |
|
37 | In order to execute `tests` automatically before `commit`, create a file `.opt-in` in the root of the project with `pre-commit` as the content.
|
38 |
|
39 | Excute the following command in the root of the project to create the above stated file.
|
40 |
|
41 | `$ echo pre-commit > .opt-in`
|