Follow these steps to get started:
- Clone this repository.
- Install node.js >= 16 and pnpm (npm install -g pnpm).
- Install a code editor of your own choice, we recommend Visual Studio Code.
Turborepo helps by making running tasks simpler and much more efficient. Inside the root package.json, several tasks are specified in scripts
which use turbo run
. And each of them is specified in the turbo.json.
Note: Every task that's registered inside turbo.json can be run with turbo run <task>. Additionally, devDependencies listed in the
package.json
under the root are also available in each app and package.
Read more about how CLI test and end-to-end test work here.
Run ESLint for all packages in packages
and test
together with:
pnpm lint
Check/write formatting for all packages in packages
and test
together with:
pnpm format:write
pnpm format:check
When your code is ready to be reviewed, you make a Pull Request from your branch.
PR title should follow the commit message convention.
If your change doesn't need a release, run 'pnpm empty-changeset' or just click the link the bot displays in your PR and add an empty changeset. Otherwise, check the Releasing section below.
If your changes should update the package version, follow the steps to do releasing:
- Run
pnpm prepare-release
and answer a few questions to declare which packages and how your changes should be released - Commit and push an auto-generated markdown file (a "changeset" with a random name, with the change type and summary) in the
.changeset
folder (along with the rest of your changes) to your PR - Merge your PR into the main branch. It will trigger a GitHub action to check for any number of these specific markdown files, calculate the final semver, and open (or update) a PR with the proposed package versions & changelogs and the removal of that markdown file
- Merge that PR after the changes are verified and you're ready to do a release. It will trigger the Release GitHub action again to create/push new git tags and publish packages to GitHub Packages npm registry automatically