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 ).
2022-10-02 20:06:20 -04:00
For details on contributing to documentation, see [Website Directory Readme ](https://github.com/StaticJsCMS/static-cms/blob/main/website/README.md ).
2018-08-20 16:54:24 -04:00
2016-10-21 15:36:14 -07:00
## Setup
2020-12-06 17:56:31 +01:00
> Install [Node.js (LTS)](https://nodejs.org/) and [yarn](https://yarnpkg.com/en/docs/install) on your system.
2016-10-21 15:36:14 -07:00
2018-08-23 03:02:53 +10:00
### Install dependencies
2020-12-06 17:56:31 +01:00
> Only required on the first run, subsequent runs can use `yarn start` to both bootstrap and run the development server.
2018-08-23 03:02:53 +10:00
2016-10-21 15:36:14 -07:00
```sh
2022-10-02 20:06:20 -04:00
git clone https://github.com/StaticJsCMS/static-cms
cd static-cms
2020-12-06 17:56:31 +01:00
yarn
2018-08-23 03:02:53 +10:00
```
### Run locally
```sh
2019-11-12 15:38:28 -05:00
yarn start
2016-10-21 15:36:14 -07:00
```
2018-07-27 09:05:51 -06:00
## Available scripts
2019-11-12 15:38:28 -05:00
### start
2018-07-27 09:05:51 -06:00
2022-09-30 06:13:47 -06:00
Starts the development server. This task runs both the `clean` and `develop` scripts.
2018-07-27 09:05:51 -06:00
2016-10-21 15:36:14 -07:00
```sh
2019-11-12 15:38:28 -05:00
yarn start
2016-10-21 15:36:14 -07:00
```
2019-11-12 15:38:28 -05:00
### clean
2018-07-27 09:05:51 -06:00
Removes all of the CMS package `dist` directories.
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
```
2019-11-12 15:38:28 -05:00
### build
2018-07-27 09:05:51 -06:00
2022-10-02 20:06:20 -04:00
Runs the `clean` script and builds the static-cms-core.
2018-07-27 09:05:51 -06:00
```sh
yarn build
```
2019-11-12 15:38:28 -05:00
### format
Formats code and docs according to our style guidelines.
2018-08-07 14:46:54 -06:00
```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
2022-09-30 06:13:47 -06:00
If you need help with Git or our workflow, please ask. We want your contributions even if you're just learning Git. Our maintainers are happy to help!
2018-08-27 14:04:11 -06:00
2022-10-02 20:06:20 -04:00
Static 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 main when opened, and again before merging.
2018-08-27 14:04:11 -06:00
1. Fork the repo.
2022-09-30 06:13:47 -06:00
2. Create a branch from `main` . If you're addressing a specific issue, prefix your branch name with the issue number.
2020-03-23 14:57:18 +02:00
3. If you've added code that should be tested, add tests.
4. If you've changed APIs, update the documentation.
2022-09-30 08:20:36 -04:00
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 prior to merging.
2017-10-12 00:15:04 +02:00
2020-12-06 17:56:31 +01:00
## Debugging
`yarn start` spawns a development server and uses `dev-test/config.yml` and `dev-test/index.html` to serve the CMS.
In order to debug a specific issue follow the next steps:
2021-09-29 18:34:29 +07:00
1. Replace `dev-test/config.yml` with the relevant `config.yml` . If you want to test the backend, make sure that the `backend` property of the config indicates which backend you use (Github, Gitlab, Bitbucket etc) and path to the repo.
```js
backend:
name: github
repo: owner-name/repo-name
```
2020-12-06 17:56:31 +01:00
2022-09-30 06:13:47 -06:00
2. Run `yarn start`
3. Open `http://localhost:8080/` in the browser and you should have access to the CMS
2020-12-06 17:56:31 +01:00
### Debugging Git Gateway
When debugging the CMS with Git Gateway you must:
2022-10-25 11:55:37 -04:00
1. Have a Netlify site with [Git Gateway ](https://docs.netlify.com/visitor-access/git-gateway/ ) and [Netlify Identity ](https://docs.netlify.com/visitor-access/identity/ ) enabled. An easy way to create such a site is to use a [template ](https://staticjscms.netlify.app/docs/start-with-a-template/ ), for example the [Gatsby template ](https://app.netlify.com/start/deploy?repository=https://github.com/AustinGreen/gatsby-starter-netlify-cms&stack=cms )
2020-12-06 17:56:31 +01:00
2. Tell the CMS the URL of your Netlify site using a local storage item. To do so:
1. Open `http://localhost:8080/` in the browser
2021-09-29 18:34:29 +07:00
2. Open the Developer Console. Write the below command and press enter: `localStorage.setItem('netlifySiteURL', 'https://yourwebsiteurl.netlify.app/')`
2020-12-06 17:56:31 +01:00
3. To be sure, you can run this command as well: `localStorage.getItem('netlifySiteURL')`
4. Refresh the page
5. You should be able to log in via your Netlify Identity email/password
2016-10-21 15:36:14 -07:00
## License
2022-10-02 20:06:20 -04:00
By contributing to Static CMS, you agree that your contributions will be licensed under its [MIT license ](LICENSE ).