2016-10-21 15:36:14 -07:00
# CONTRIBUTING
Contributions are always welcome, no matter how large or small. Before contributing,
please read the [code of conduct ](CODE_OF_CONDUCT.md ).
2018-08-20 16:54:24 -04:00
For details on contributing to documentation, see [Website Directory Readme ](https://github.com/netlify/netlify-cms/blob/master/website/README.md ).
2016-10-21 15:36:14 -07:00
## Setup
2017-07-10 19:31:24 +01:00
> Install yarn on your system: [https://yarnpkg.com/en/docs/install](https://yarnpkg.com/en/docs/install)
2016-10-21 15:36:14 -07:00
2018-08-23 03:02:53 +10:00
### Install dependencies
> Only required on the first run, subsequent runs can use `yarn start` to both
bootstrap and run the development server.
2016-10-21 15:36:14 -07:00
```sh
$ git clone https://github.com/netlify/netlify-cms
$ cd netlify-cms
2018-08-23 03:02:53 +10:00
$ yarn bootstrap
```
### Run locally
```sh
2018-07-27 09:05:51 -06:00
$ yarn start
2016-10-21 15:36:14 -07:00
```
2018-07-27 09:05:51 -06:00
## Available scripts
### `bootstrap`
Installs and bootstraps any CMS package dependencies.
#### Usage
2016-10-21 15:36:14 -07:00
```sh
2018-07-27 09:05:51 -06:00
$ yarn bootstrap
2016-10-21 15:36:14 -07:00
```
2018-07-27 09:05:51 -06:00
### `watch`
Watches all CMS packages and transpiles them on change.
#### Usage
2016-10-21 15:36:14 -07:00
```sh
2018-07-27 09:05:51 -06:00
$ yarn watch
2016-10-21 15:36:14 -07:00
```
2018-07-27 09:05:51 -06:00
### `start`
Starts the development server. This task runs both the `bootstrap` and `watch` scripts.
#### Usage
2016-10-21 15:36:14 -07:00
```sh
2018-07-27 09:05:51 -06:00
$ yarn start
2016-10-21 15:36:14 -07:00
```
2018-07-27 09:05:51 -06:00
### `clean`
Removes all of the CMS package `dist` directories.
#### Usage
2016-10-21 15:36:14 -07:00
```sh
2018-07-27 09:05:51 -06:00
yarn clean
2016-10-21 15:36:14 -07:00
```
2018-07-27 09:05:51 -06:00
### `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
```
2018-07-28 17:26:47 -04:00
### `build-preview`
Runs the `build` and `build-preview` scripts in each package and serves the resulting build locally.
#### Usage
```sh
yarn build-preview
```
2018-07-27 09:05:51 -06:00
### `test`
Runs all the CMS package tests.
#### Usage
2016-10-21 15:36:14 -07:00
```sh
2018-07-27 09:05:51 -06:00
yarn test
2016-10-21 15:36:14 -07:00
```
2018-08-07 14:46:54 -06:00
### `format`
Formats code and docs according to our style guidelines.
#### Usage
```sh
yarn format
```
2016-10-21 15:36:14 -07:00
## Pull Requests
2018-08-27 14:04:11 -06:00
We actively welcome your pull requests!
2016-10-21 15:36:14 -07:00
2018-08-27 14:04:11 -06:00
If you need help with Git or our workflow, please ask on [Gitter.im ](https://gitter.im/netlify/NetlifyCMS ). We want your contributions even if you're just learning Git. Our maintainers are happy to help!
2018-10-10 20:37:49 -03:00
Netlify CMS uses the [Forking Workflow ](https://www.atlassian.com/git/tutorials/comparing-workflows/forking-workflow ) + [Feature Branches ](https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow ). Additionally, PR's should be [rebased ](https://www.atlassian.com/git/tutorials/merging-vs-rebasing ) on master when opened, and again before merging.
2018-08-27 14:04:11 -06:00
1. Fork the repo.
2. Create a branch from `master` . If you're addressing a specific issue, prefix your branch name with the issue number.
2016-10-21 15:36:14 -07:00
2. If you've added code that should be tested, add tests.
3. If you've changed APIs, update the documentation.
2018-08-07 14:46:54 -06:00
4. Run `yarn test` and ensure the test suite passes.
5. Use `yarn format` to format and lint your code.
2018-08-27 14:04:11 -06:00
6. PR's must be rebased before merge (feel free to ask for help).
7. PR should be reviewed by two maintainers prior to merging.
2017-10-12 00:15:04 +02:00
2016-10-21 15:36:14 -07:00
## License
By contributing to Netlify CMS, you agree that your contributions will be licensed
under its [MIT license ](LICENSE ).