- Node v22.12.0 or newest
- Stripe CLI
- Install dependencies:
yarn - Prepare the environment: Rename
.env.templateto.envand fill the empty variables - Go to '.env' and set STRIPE_SECRET_KEY as the value you can find on Stripe Dashboard in dev mode (Search Bar > Api Keys > Secret Key)
- Mount the infrastructure:
cd infrastructure && docker-compose upor if you are using the latest docker version:cd infrastructure && docker compose up - Redirect webhooks to your local server:
stripe listen --forward-to localhost:8003/webhook - Start the project:
yarn run dev
- If you go to
localhost:8082you'll see a GUI to inspect the mongodb instance - Install prettier & eslint vscode extensions for a better dev experience.
Versions are managed by release-please. You don't bump package.json by hand.
- Every merge to
masterwith at least onefeat,fix,refactor,perforrevertcommit opens or updates a single release PR. That PR bumps the version inpackage.jsonand adds the changes toCHANGELOG.md. Merges with only hidden types (see the table below) don't touch it. - Several merged PRs accumulate in that same release PR. The version only changes when you merge it.
- Merging the release PR creates the
vX.Y.Ztag and the GitHub Release. Like any push tomaster, it also runs the usual tests and a regular deploy of the same code; it only updates the version and changelog. - The release PR is approved and merged like any other PR. CI checks don't run on the PR itself, because it's created with
GITHUB_TOKEN.
The next version is calculated from the Conventional Commits merged since the last release, taking the biggest bump found:
| Commit type | Bump |
|---|---|
feat!:, fix!:, refactor!: or a BREAKING CHANGE: footer |
major |
feat |
minor |
fix, refactor, perf, revert |
patch |
chore, ci, build, docs, test, style |
no release |
To force a specific version, add a Release-As: X.Y.Z footer to a commit.
Configuration: release-please-config.json, .release-please-manifest.json and .github/workflows/release-please.yml.