1 | # Contributing
|
2 |
|
3 | First and foremost, thanks for taking the time to support this project!
|
4 |
|
5 |
|
6 | ## Submit issues to the relevant repository
|
7 |
|
8 | The makojs organization has quite a few repositories, so please do your best to
|
9 | submit any issues to the most relevant one. If you are unsure where to file your
|
10 | issue, don't spend _too_ much time wondering, as the issue can get moved to the
|
11 | appropriate repository after it has been created.
|
12 |
|
13 | If multiple repositories are involved in a particular bug, please submit an
|
14 | issue to each of them. Also, make sure to link those issues together so it is
|
15 | easy to keep track.
|
16 |
|
17 | ## Submit all changes through a Pull Request
|
18 |
|
19 | Rather than pushing commits directly to `master`, open a PR for every change.
|
20 | This gives more visibility into changes that are happening, and gives other
|
21 | contributors time to weigh in before code actually lands.
|
22 |
|
23 | This process will also help protect against broken code from being released
|
24 | accidentally, since Pull Requests are all subject to automated checks.
|
25 |
|
26 | ## Squash all PR merge commits
|
27 |
|
28 | This is intended to keep the commit history as clean as possible, as well as
|
29 | making it easier to revert changes if needed.
|
30 |
|
31 | ## Creating new releases
|
32 |
|
33 | To release a new version, follow this procedure:
|
34 |
|
35 | 1. Use [semver][semver] to determine what to bump. In general:
|
36 | - `patch`: bug fixes
|
37 | - `minor`: new features
|
38 | - `major`: backwards-incompatible changes
|
39 | 2. Run `npm version <patch|minor|major>`, which automatically:
|
40 | - runs `npm test` to ensure the tests pass at least locally
|
41 | - bumps the `package.json` to the correct new version
|
42 | - opens the changelog using the new version (requires [git-extras][git-extras])
|
43 | - creates a new release commit/tag
|
44 | - pushes to github
|
45 |
|
46 | Once this is complete, [TravisCI][travis] will run the tests. If they all pass,
|
47 | the new version will be published automatically.
|
48 |
|
49 |
|
50 | [semver]: http://semver.org/
|
51 | [git-extras]: https://github.com/tj/git-extras
|
52 | [travis]: https://travis-ci.org/makojs/config
|