Documentation
Contributing

Contributing

Whether you're a beginner or advanced user, we welcome you to contribute to Kitchn. We have a contributing guide that will help you get started.

Developing

  1. Clone the Kitchn repository (download only recent commits for faster clone):
git clone --depth=1 https://github.com/tonightpass/kitchn.git
  1. Create a new branch (the branch name must be written in lower case):
git checkout -b MY_GITHUB_USERNAME/MY_BRANCH_NAME origin/master
  1. Enable pnpm:
corepack enable pnpm
  1. Install the dependencies with:
pnpm i
  1. Start developing and watch for code changes:
pnpm dev

Running the apps separately

It might take a lot of ressources so you can run only the apps you need to work on:

# Terminal 1
pnpm dev:packages
 
# Terminal 2
pnpm dev:workshop
  1. Install the Gitmoji extension for VSCode (opens in a new tab) for git commit messages.

  2. When your changes are finished, commit them to the branch (the commit message must be written in lower case):

git add .
git commit -m "INSERT_THE_APPROPRIATE_GITMOJI_HERE DESCRIBE_YOUR_CHANGES_HERE"
  1. To open a pull request, you can go to the "Pull requests" tab of our GitHub repository (opens in a new tab), open your pull request, assign yourself to it, add the relevant label(s), add it to the "Kitchn Plan" project, then create it and link the issue you're solving to the pull request.

Linting

The Kitchn repository runs ESLint (opens in a new tab) and Prettier (opens in a new tab) to lint and format all code and documentation.

To lint all code you can run:

pnpm lint

If you get errors, you can run the ESLint and Prettier auto-fix using:

pnpm lint:fix

Not all rules can be auto-fixed, those require manual changes.

ESLint

We recommend installing the ESLint plugin for VS Code (opens in a new tab).

You can find the enabled rules in the ESLint config (opens in a new tab).

Prettier

We recommend installing the Prettier plugin for VS Code (opens in a new tab).

Building

You can build Kitchn, including all type definitions and packages, with:

pnpm build