English | 简体中文
Thank you for taking your time to contribute and make this project better! Here are some guidelines to help you get started. Please make sure to take a moment and read through them before submitting your contributions.
This project is governed by the Contributor Covenant Code of Conduct. By participating, you are expected to adhere to it.
All work happens directly on GitHub. Both core team members and external contributors send pull requests which go through the same review process.
This project follows semantic versioning. We release patch versions for bug fixes or other changes that do not change the behavior of the API, minor versions for new features that are backward-compatible, and major versions for any breaking changes.
Every significant change is documented in the changelog file.
We use Github issues for bug reports and feature requests. Before reporting an issue, please make sure you have searched for similar issues as they may have been already answered or being fixed. A new issue should be submitted via issue helper. For bug reporting, please include the minimum code that can be used to reproduce the problem. For feature request, please specify what changes you want and what behavior you expect.
- Fork the repository and create your branch from
main
. For new feature, please submit your changes directly to thefeature
branch. Other changes should go againstmain
branch. - Run
npm run init
in the repository root. - Run
npm run start
to start and preview site. - Make changes to the codebase. Please add tests if applicable.
- Make sure the test suite passes with
npm run test
. To watch for specific changes in development, usenpm run test --watch TestName
. - If you made any
props
changes (i.e.interface.ts
file), DON'T manually updateREADME
file under the component. Instead, runyarn run docgen
to generate theREADME
file automatically. - Commit your changes, adhering to the Commit Guidelines
- Open a new pull request, referencing corresponding issues if available.
# start and preview site locally
$ npm run site
# checks the javascript code style.
$ npm run eslint
# checks the css code style
$ npm run stylelint
# automatically generate docs
$ npm run docgen
# format code with prettier
$ npm run format
# create a build of the components
$ npm run build
# run the complete test suite
$ npm run test
Commit messages are required to follow the conventional-changelog standard:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
The following is a list of commit types:
- feat: A new feature or functionality
- fix: A bug fix
- docs: Documentation only changes
- style: Code formatting or component style changes
- refactor: Code changes that neither fixes a bug nor adds a feature.
- perf: Improve performance.
- test: Add missing or correct existing tests.
- chore: Other commits that don’t modify src or test files.
components/componentName
├── README.zh-CN.md (Note:Don't edit this file, it's generated by script)
├── README.en-US.md (Note:Don't edit this file, it's generated by script)
├── __template__ (Template used to generate README file)
│ ├── index.en-US.md (EN template)
│ └── index.zh-CN.md (CN template)
├── __changelog__
├── __test__
│ ├── __snapshots__
│ │ └── demo.test.js.snap (Snapshot)
│ ├── demo.test.ts (Snapshot test)
│ └── index.test.ts (Unit test)
├── __demo__ (Demos for each component)
│ ├── basic.md
│ └── advanced.md
├── index.tsx(Component export)
└── style
└── index.less(Component style)
└── index.ts (Component style entry)
Template in __template__
directory is used to generate component's README with npm run docgen
command. It should follow the structure below:
---
file: index (Inform react-docgen-typescript where to look up interfaces information)
---
`````
Component / Feedback
# Alert
Used to display warning information in a way that attracts attention.
`````
%%Content%% (Placeholder for demos)
## Props
%%Props%% (Placeholder for props)
Please note that if you make changes that will affect README (e.g. props
changes), make sure to run npm run docgen
to update README of the component.
By contributing your code to the repository, you agree to license your contribution under the MIT license.