static-cms/CONTRIBUTING.md
Mitchell Cash a4ba66e1a6 Update contributing doc to better handle first run dpendency requirements (#1645)
The command `yarn start` is dependent on the `npm-run-all` package, therefore we can't recommend this as the first command someone runs after they just clone the repository in case they don't have it globally installed. Trying to `yarn start` without this package gets:

```
/bin/sh: run-s: command not found
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
```

Therefore, on first setup it is recommended to run `yarn bootstrap` as the first command.
2018-08-22 13:02:52 -04:00

150 lines
2.8 KiB
Markdown

# CONTRIBUTING
Contributions are always welcome, no matter how large or small. Before contributing,
please read the [code of conduct](CODE_OF_CONDUCT.md).
For details on contributing to documentation, see [Website Directory Readme](https://github.com/netlify/netlify-cms/blob/master/website/README.md).
## Setup
> Install yarn on your system: [https://yarnpkg.com/en/docs/install](https://yarnpkg.com/en/docs/install)
### Install dependencies
> Only required on the first run, subsequent runs can use `yarn start` to both
bootstrap and run the development server.
```sh
$ git clone https://github.com/netlify/netlify-cms
$ cd netlify-cms
$ yarn bootstrap
```
### Run locally
```sh
$ yarn start
```
## Available scripts
### `bootstrap`
Installs and bootstraps any CMS package dependencies.
#### Usage
```sh
$ yarn bootstrap
```
### `watch`
Watches all CMS packages and transpiles them on change.
#### Usage
```sh
$ yarn watch
```
### `start`
Starts the development server. This task runs both the `bootstrap` and `watch` scripts.
#### Usage
```sh
$ yarn start
```
### `clean`
Removes all of the CMS package `dist` directories.
#### Usage
```sh
yarn clean
```
### `reset`
Runs the `clean` script and removes all the `node_modules` from the CMS packages.
#### Usage
```sh
yarn reset
```
### `build`
Runs the `clean` script and builds the CMS packages.
#### Usage
```sh
yarn build
```
### `build-preview`
Runs the `build` and `build-preview` scripts in each package and serves the resulting build locally.
#### Usage
```sh
yarn build-preview
```
### `test`
Runs all the CMS package tests.
#### Usage
```sh
yarn test
```
### `format`
Formats code and docs according to our style guidelines.
#### Usage
```sh
yarn format
```
## Pull Requests
We actively welcome your pull requests.
1. Fork the repo and create your branch from `master`.
2. If you've added code that should be tested, add tests.
3. If you've changed APIs, update the documentation.
4. Run `yarn test` and ensure the test suite passes.
5. Use `yarn format` to format and lint your code.
6. PR's must be rebased before merge (feel free to ask for help)
7. PR should be reviewed by two maintainers (@erquhart, @Benaiah, @tech4him1) prior to merging.
## Add yourself as a contributor
This project follows the [all contributors](https://github.com/kentcdodds/all-contributors) specification. To add yourself to the table of contributors on the README.md,
please use the automated script as part of your PR:
```console
yarn run add-contributor <YOUR_GITHUB_USERNAME>
```
Follow the prompt. If you've already added yourself to the list and are making a
new type of contribution, you can run it again and select the added contribution
type.
## License
By contributing to Netlify CMS, you agree that your contributions will be licensed
under its [MIT license](LICENSE).