2019-10-11 08:10:54 +02:00
# Contributing
2023-06-15 12:04:37 +05:30
Please read in detail about how to contribute documentation and code on the [Mermaid documentation site. ](https://mermaid-js.github.io/mermaid/#/development )
2023-06-15 09:49:26 +05:30
---
2023-06-15 12:04:37 +05:30
# Mermaid contribution cheat-sheet
2022-10-10 01:25:59 +05:30
2022-10-10 20:07:59 +08:00
## Requirements
- [volta ](https://volta.sh/ ) to manage node versions.
- [Node.js ](https://nodejs.org/en/ ). `volta install node`
- [pnpm ](https://pnpm.io/ ) package manager. `volta install pnpm`
2022-06-26 12:37:14 +02:00
## Development Installation
2022-09-05 01:00:47 +05:30
2023-06-11 01:15:31 +03:00
If you don't have direct access to push to mermaid repositories, make a fork first. Then clone. Or clone directly from mermaid-js:
2022-06-26 12:37:14 +02:00
```bash
git clone git@github .com:mermaid-js/mermaid.git
cd mermaid
2023-06-11 01:15:31 +03:00
```
Install required packages:
```bash
2022-10-11 11:48:52 +05:30
# npx is required for first install as volta support for pnpm is not added yet.
npx pnpm install
2023-08-09 13:21:24 +05:30
pnpm test # run unit tests
pnpm dev # starts a dev server
2022-06-26 12:37:14 +02:00
```
2023-08-09 13:21:24 +05:30
Open < http: / / localhost:9000 > in your browser after starting the dev server.
You can also duplicate the `example.html` file in `demos/dev` , rename it and add your own mermaid code to it.
That will be served at < http: / / localhost:9000 / dev / your-file-name . html > .
2023-06-15 12:08:30 +05:30
### Docker
2023-06-11 01:15:31 +03:00
If you are using docker and docker-compose, you have self-documented `run` bash script, which is a convenient alias for docker-compose commands:
```bash
./run install # npx pnpm install
./run test # pnpm test
```
2023-06-15 12:04:37 +05:30
## Testing
2022-09-05 16:54:31 -07:00
2023-06-15 12:04:37 +05:30
```bash
# Run unit test
pnpm test
# Run unit test in watch mode
pnpm test:watch
# Run E2E test
pnpm e2e
# Debug E2E tests
pnpm dev
pnpm cypress:open # in another terminal
2022-09-05 16:54:31 -07:00
```
2023-06-15 12:04:37 +05:30
## Branch name format:
2023-02-16 18:00:41 +05:30
2023-06-15 12:04:37 +05:30
```text
[feature | bug | chore | docs]/[issue number]_[short description using dashes ('-') or underscores ('_') instead of spaces]
2023-02-16 18:00:41 +05:30
```
2023-06-15 12:04:37 +05:30
eg: `feature/2945_state-diagram-new-arrow-florbs` , `bug/1123_fix_random_ugly_red_text`
2023-02-16 18:00:41 +05:30
2023-06-15 12:04:37 +05:30
## Documentation
2023-02-16 18:00:41 +05:30
2023-06-15 12:04:37 +05:30
Documentation is necessary for all non bugfix/refactoring changes.
2023-02-16 18:00:41 +05:30
2023-08-09 01:04:04 -06:00
Only make changes to files that are in [`/packages/mermaid/src/docs` ](packages/mermaid/src/docs )
2023-02-16 18:00:41 +05:30
2022-09-05 16:54:31 -07:00
**_DO NOT CHANGE FILES IN `/docs` _**
2019-10-11 08:10:54 +02:00
[Join our slack community if you want closer contact! ](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE )