First of all, thank you for your interest in contributing to Kazam! Here are some guidelines to help you get started.
This repository is a monorepo managed with Turborepo. It uses pnpm
as package manager.
Before you start, you need to install pnpm
:
npm install -g pnpm
Alternatively, you can use ni
(developed by Anthony Fu). Please refer to the documentation on how to install it.
To install the dependencies, run:
pnpm install
There are several commands available, you can find them in the package.json
file. Here are the most important ones:
Command | Description |
---|---|
pnpm build |
Build the project |
pnpm dev |
Start the development server |
pnpm lint |
Lint the code |
pnpm lint:fix |
Lint the code and fix the issues |
pnpm test |
Run the tests |
There are also some commands that are only available in some packages. Check the package.json
file of the package you are working on to see them.
When you commit, several hooks are executed:
- to lint the code
- to test the code
- to build the code
- to ensure that the commit message follows the conventional commits specification
To prevent the hooks from rejecting your commit, we recommend running the tests regularly. We also recommend to have the ESLint extension installed in VSCode to lint the code (it is installed by default if you use the recommended extensions, see above).
Warning Never skip the hooks. If you really need to, you can use
git commit --no-verify
, but please don't do it, your pull request will be rejected anyway.
We recommend that you use VSCode as your IDE. If you are using it, you can install the recommended extensions. When you open the project, you will be prompted to install the recommended extensions.
You can find some issues in the issues tab. If you want to work on one of them, please comment on it to let us know. If you want to work on something else, please create an issue first to discuss it.
Once you have found something to work on, you can create a branch by using the "Create a branch" button in the issue. Leave the default values.
When you are done, you can create a pull request. We will review it and give you feedback. If you need to make changes, you can push them to the same branch. Once the pull request has been approved, we will merge it.
Note You may not need to release anything. Most of the time the maintainers will take care of that.
We use changesets
to manage the releases. All you need to do is to run pnpm changeset
and follow the instructions. It will version the packages you have selected. When you are done, you can create a pull request. We will review it and merge it. Once it is merged, the release will be published automatically.