Skip to content

Commit b6118e4

Browse files
authored
docs: add CONTRIBUTING.md (#1043)
* docs: add CONTRIBUTING.md * docs(CONTRIBUTING.md): add period * docs(CONTRIBUTING.md): unify the tone of the command part
1 parent 67abf24 commit b6118e4

File tree

1 file changed

+84
-0
lines changed

1 file changed

+84
-0
lines changed

CONTRIBUTING.md

+84
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
# Contributing
2+
3+
## General Guideline
4+
5+
### Reporting Issues
6+
7+
If you have found what you think is a bug, please [start a discussion](https://github.com/pmndrs/valtio/discussions/new?category=bug-report).
8+
9+
For any usage questions, please [start a discussion](https://github.com/pmndrs/valtio/discussions/new?category=q-a).
10+
11+
### Suggesting New Features
12+
13+
If you are here to suggest a feature, first [start a discussion](https://github.com/pmndrs/valtio/discussions/new?category=ideas) if it does not already exist. From there, we will discuss use-cases for the feature and then finally discuss how it could be implemented.
14+
15+
### Committing
16+
17+
We are applying [conventional commit spec](https://www.conventionalcommits.org/en/v1.0.0/) here. In short, that means a commit has to be one of the following types:
18+
19+
Your commit type must be one of the following:
20+
21+
- **feat**: A new feature.
22+
- **fix**: A bug fix.
23+
- **refactor**: A code change that neither fixes a bug nor adds a feature.
24+
- **chore**: Changes to the build process, configuration, dependencies, CI/CD pipelines, or other auxiliary tools and libraries.
25+
- **docs**: Documentation-only changes.
26+
- **test**: Adding missing or correcting existing tests.
27+
28+
If you are unfamiliar with the usage of conventional commits,
29+
the short version is to simply specify the type as a first word,
30+
and follow it with a colon and a space, then start your message
31+
from a lowercase letter, like this:
32+
33+
```
34+
feat: add a 'foo' type support
35+
```
36+
37+
You can also specify the scope of the commit in the parentheses after a type:
38+
39+
```
40+
fix(react): change the 'bar' parameter type
41+
```
42+
43+
### Development
44+
45+
If you would like to contribute by fixing an open issue or developing a new feature you can use this suggested workflow:
46+
47+
#### General
48+
49+
1. Fork this repository.
50+
2. Create a new feature branch based off the `main` branch.
51+
3. Follow the [Core](#Core) and/or the [Documentation](#Documentation) guide below and come back to this once done.
52+
4. Run `pnpm run fix:format` to format the code.
53+
5. Git stage your required changes and commit (review the commit guidelines below).
54+
6. Submit the PR for review.
55+
56+
##### Core
57+
58+
1. Run `pnpm install` to install dependencies.
59+
2. Create failing tests for your fix or new feature in the [`tests`](./tests/) folder.
60+
3. Implement your changes.
61+
4. Run `pnpm run build` to build the library. _(Pro-tip: `pnpm run build-watch` runs the build in watch mode)_
62+
5. Run the tests by running `pnpm run test` and ensure that they pass.
63+
6. You can use `pnpm link` to sym-link this package and test it locally on your own project. Alternatively, you may use CodeSandbox CI's canary releases to test the changes in your own project. (requires a PR to be created first)
64+
7. Follow step 4 and onwards from the [General](#General) guide above to bring it to the finish line.
65+
66+
### Pull Requests
67+
68+
Please try to keep your pull request focused in scope and avoid including unrelated commits.
69+
70+
After you have submitted your pull request, we'll try to get back to you as soon as possible. We may suggest some changes or request improvements, therefore, please check ✅ ["Allow edits from maintainers"](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork) on your PR.
71+
72+
## Valtio-specific Guideline
73+
74+
##### Documentation
75+
76+
1. Navigate to the [`website`](./website/) folder. (e.g., `cd website`).
77+
2. Run `pnpm install` to install dependencies in the `website` folder.
78+
3. Run `pnpm run dev` to start the dev server.
79+
4. Navigate to [`http://localhost:3000`](http://localhost:3000) to view the documents.
80+
5. Navigate to the [`docs`](./docs/) folder and make necessary changes to the documents.
81+
6. Add your changes to the documents and see them live reloaded in the browser.
82+
7. Follow step 4 and onwards from the [General](#General) guide above to bring it to the finish line.
83+
84+
Thank you for contributing! :heart:

0 commit comments

Comments
 (0)