# 官網建置 - 貢獻規則
Thanks for showing interest to contribute to SPT!
When it comes to open source, there are different ways you can contribute, all
of which are valuable. Here's a few guidelines that should help you as you
prepare your contribution.
## Getting started
The following steps will get you up and running to contribute to SPT Frontend:
1. Fork the repo
- [Side Projectp TW](https://github.com/orgs/side-project-taiwan/projects/4)
2. Clone your fork locally
3. // todo 要如何設定開發環境
```sh
git clone https://github.com/<your_github_username>/
cd
```
3. Setup all the dependencies and packages by running `pnpm install`. This
command will install dependencies.
> If you run into any issues during this step, kindly reach out to the Chakra UI
> React team here: https://discord.gg/KnrWgnHF
## Development
//todo Tooling and Commands
### Tooling
- [PNPM](https://pnpm.io/) to manage packages and dependencies
- [Storybook](https://storybook.js.org/) for rapid UI component development and testing
- [Vitest]()
### Commands
**`pnpm install`**: bootstraps the entire project, symlinks all dependencies for
cross-component development and builds all components.
**`pnpm dev`**: Runs the build and watch command for all component packages.
**`pnpm storybook`**: starts storybook server and loads stories in files that
end with `.stories.tsx`.
**`pnpm build`**: run build for all component packages.
**`pnpm test`**: run test for all component packages.
**`pnpm release`**: publish changed packages.
## Think you found a bug?
- github issue
## Making a Pull Request?
Pull requests need only the :+1: of two or more collaborators to be merged; when
the PR author is a collaborator, that counts as one.
### Commit Convention
Before you create a Pull Request, please check whether your commits comply with
the commit conventions used in this repository.
When you create a commit we kindly ask you to follow the convention
`category(scope or module): message` in your commit message while using one of
the following categories:
- `feat / feature`: all changes that introduce completely new code or new
features
- `fix`: changes that fix a bug (ideally you will additionally reference an
issue if present)
- `refactor`: any code related change that is not a fix nor a feature
- `docs`: changing existing or creating new documentation (i.e. README, docs for
usage of a lib or cli usage)
- `test`: all changes regarding tests (adding new tests or changing existing
ones)
- `ci`: all changes regarding the configuration of continuous integration (i.e.
github actions, ci system)
- `chore`: all changes to the repository that do not fit into any of the above
categories
If you are interested in the detailed specification you can visit
https://www.conventionalcommits.org/ or check out the
[Angular Commit Message Guidelines](https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#-commit-message-guidelines // todo
https://www.conventionalcommits.org/en/v1.0.0/#summary
### Steps to PR
1. Fork of the SPT repository and clone your fork
2. Create a new branch out of the `main` branch. We follow the convention
`[type/scope]`. For example `fix/accordion-hook` or `docs/menu-typo`. `type`
can be either `docs`, `fix`, `feat`, `build`, or any other conventional
commit type. `scope` is just a short id that describes the scope of work.
3. Make and commit your changes following the
[commit convention](https://github.com/chakra-ui/chakra-ui/blob/main/CONTRIBUTING.md#commit-convention).
<!-- 4. As you develop, you can run `pnpm ` // todo and
`pnpm test` to make sure everything works as expected.
Please note that you might have to run `pnpm boot` first in order to build all dependencies. // todo -->
// todo contributor fork 出去之後, 創建一個自己的 branch, 然後往我們 repo 的 main 還是 dev 發送 pr
// 先一律發到dev
### Tests
All commits that fix bugs or add features need a test.
## License
By contributing your code to the SPT GitHub repository, you agree to
license your contribution under the MIT license. // todo
[code of conduct](
https://www.contributor-covenant.org/version/2/1/code_of_conduct/)