Skip to content

Commit aebfe49

Browse files
committed
docs: add CONTRIBUTING.md
1 parent ac9e3a9 commit aebfe49

File tree

1 file changed

+84
-0
lines changed

1 file changed

+84
-0
lines changed

CONTRIBUTING.md

Lines changed: 84 additions & 0 deletions
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. Install dependencies by running `pnpm install`.
59+
2. Create failing tests for your fix or new feature in the [`tests`](./tests/) folder.
60+
3. Implement your changes
61+
4. Build the library by running `pnpm run build` _(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. Install dependencies by running `pnpm install` 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)