Repository navigation
Contributing
-
Node.js satisfying the
engines.noderequirement in the root package.json (currently 24.14.1 or newer; LTS recommended).- Linux/MacOS
- Install https://github.com/nvm-sh/nvm
nvm install --lts
- Windows
- Install https://github.com/coreybutler/nvm-windows
nvm install lts
- Linux/MacOS
This repository uses pnpm, pinned by the packageManager field in the root package.json. From the azure-rest-api-specs repository root, bootstrap the pinned version and install the toolchain:
npm run install-pnpm
pnpm --version
pnpm cinpm run install-pnpm is the bootstrap exception: it installs pnpm globally without installing repository dependencies. Do not use npm install, npm ci, or Yarn for repository dependencies; they are not supported by this pnpm workspace, which uses workspace: and catalog: dependencies.
pnpm ci cleans installed dependencies and reinstalls the versions recorded in the root pnpm-lock.yaml, including all workspace tools (e.g. @typespec/compiler). Run dependency installation from the repository root, not individual service folders.
Run installed tools with pnpm <tool>, such as pnpm tsp --version or pnpm tsp compile . from your TypeSpec project folder. See Spec-Model for tools that require a specific workspace.
- Merge latest from your target branch (e.g.
main,RPSaaSMaster) to your source branch - Run
npm run install-pnpmif pnpm is not installed; otherwise pnpm automatically uses the version pinned bypackageManager - Run
pnpm ciagain from the repository root - If errors or incorrect tool versions, ensure no uncommitted changes, then run
git clean -xdfto remove all old files, and try again
If you are intentionally changing dependencies rather than refreshing the toolchain, run pnpm install from the repository root and commit the updated pnpm-lock.yaml alongside your dependency changes. See Dependencies for workspace and catalog details.