Core monorepo for maintainers β
INFO
This page is only for maintainers and contributors working on racletteJS core packages.
If you are building an app with racletteJS, this is not your starting point.
This page is for people who work on racletteJS itself (core, workbench, types, playground, create-raclette-app) in the core-dev Yarn workspace β not for everyday app or plugin development against published packages.
For ecosystem context, onboarding, and coding conventions, see the meta repository INSTALLATION.md and FAQ.md. For architecture and product concepts, use Architecture and the rest of this site.
Install dependencies from the repository root β
Run once (or after pulling large dependency changes), in order:
yarn install
yarn :install
yarn :build # optional for day-to-day dev; required before releases / :release:prepareFor lockfile refresh: yarn :install:refresh-lockfile (runs yarn install --refresh-lockfile first, then the same nested installs as :install).
| Step | Command | What it installs |
|---|---|---|
| 1 | yarn install | @raclettejs/* workspaces from the root lockfile (pnpm linker). Enough for yarn :dev and CI playground checks. |
| 2 | yarn :install | Everything else: core backend + frontend services (IDE), create-raclette-app, @docs (own lockfiles, isolated .yarn/cache + .yarn/.store). |
| 3 | yarn :build | Builds core, types, and create-raclette-app. |
Do not run yarn :install before yarn install β nested service installs can break the root linker for @raclettejs/core. CI uses yarn install --immutable plus :build:workspaces only (no :install).
yarn docs:install is a shortcut for the @docs step inside :install.
Day-to-day commands (root package.json) β
Scripts prefixed with : are defined on the root raclette-core-dev package and are meant to be run from the repository root.
Setup, build, playground β
| Script | What it does |
|---|---|
:install | Nested installs only (services, create-raclette-app, @docs); run yarn install first. |
:build:workspaces | yarn workspace run build on core and types β used by CI. |
:build | :build:workspaces plus create-raclette-app. |
:release:prepare | :clean, then yarn install, :install, :build (see .changeset/README.md). |
:dev | Starts the playground dev stack (yarn --cwd @raclettejs/playground dev). |
:down | Stops the playground stack (yarn --cwd @raclettejs/playground down). |
:clean | Removes generated .raclette under @raclettejs/workbench and @raclettejs/playground (if present). |
:install:refresh-lockfile | yarn install --refresh-lockfile, then the same nested installs as :install. |
Git submodules β
| Script | What it does |
|---|---|
:reinit | git submodule deinit -f . then full init/update. |
:reset | git submodule foreach git reset --hard. |
:pull | git pull --recurse-submodules origin main. |
:subs | git submodule foreach git pull origin main. |
:update | git submodule update --init --recursive. |
:sync | git submodule sync --recursive. |
Docker cleanup β
| Script | What it does |
|---|---|
:rmi | Removes common playground/workbench Docker images used during dev. |
Quality (workspaces except docs and @raclettejs/types) β
| Script | What it does |
|---|---|
:lint | Runs lint in each included workspace. |
:lint-fix | Runs lint:fix. |
:format | Runs format:check. |
:format-fix | Runs format:fix. |
Releases and publishing β
These wrap Changesets and custom release scripts (scripts/release/). Typical maintainer flows:
| Script | What it does |
|---|---|
:changeset | Opens the Changesets CLI. |
:changeset-check | Validates that a changeset exists when required. |
:release:prepare | Prepare step before versioning. |
:version-latest | changeset version β sync-release-versions (root, docs, playground, create-raclette-app) β prep-external-fixed-changelogs (CRA release block for normalizer) β normalize-changelogs β sync-create-raclette-app-templates-release (sync:templates; optional ### Updated when template pins change). |
:sync-release-versions | Re-run only the version sync (root, docs, playground, external-fixed packages). |
:sync-create-raclette-app-templates | Re-run only the create-raclette-app template sync / changelog note (no changeset). |
:version-nightly / :version-canary | Prerelease versioning. |
:release:tag / :tag-release | git add -A, optional Release v⦠commit, annotated v<version> tag (no push); -- --tag-only skips add/commit. |
:publish-latest / :publish-nightly / :publish-canary | Publish to npm (excluding root, playground, docs). |
:release-latest / :release-nightly / :release-canary | Full pipelines (prepare β version β publish). |
TIP
Publishing excludes the repository root (raclette-core-dev), @docs/racletteJS, and @raclettejs/playground by design β they are not npm packages shipped with the framework. create-raclette-app is published separately via yarn --cwd create-raclette-app npm publish after workspace packages, with the same version as @raclettejs/core (see .changeset/README.md).
create-raclette-app and releases: It is not a Yarn workspace (separate install), but release scripts treat it like the old Changesets fixed member: version bump, changelog normalization, template sync, and npm publish all run in :version-latest / :publish-latest. Use create-raclette-app/CHANGELOG.md ## [Unreleased] for CRA-only notes; you cannot select it in yarn :changeset anymore.
Documentation site (same monorepo) β
Convenience scripts that delegate into @docs:
| Script | Typical use |
|---|---|
docs:compile | Runs yarn --cwd @docs export:compiled (recipe plugin compiled markdown). |
docs:dev | Local VitePress dev server. |
docs:down / docs:build / docs:preview | As named. |
docs:prepare | Docs package prepare (e.g. husky when enabled). |
Working inside workspaces β
This monorepo is only part of the story: applications still use the raclette CLI from their directory (yarn dev, yarn add-package, β¦). Inside core-dev, the usual dev entry is :dev, which boots the playground with workspace: dependencies on core and workbench so you get hot reload while editing packages.
Detailed layout, debugger setup (launch.json), and workflows for core vs workbench vs types are documented in the meta INSTALLATION.md β Contributing: core-dev monorepo guide.