Dashboard › craft › Distillation
df093ddc-3b3f-4f51-adac-8609a631d8da["lore_tm_v1_wqwx-ljeMDBORg_W5Qq3KePCVuVELSxhgL1xPzvPwSo","lore_tm_v1_nYqBrDkGQ1_rmVgXvY0S0g4e3T9anAzsrTqjioOStt4"]
Date: Aug 24, 2026
pnpm; npm and yarn must never be used.pnpm install --frozen-lockfile.pnpm build (builds dist/craft), pnpm test (runs tests), pnpm lint (runs ESLint), and pnpm fix (auto-fixes lint); manual testing uses pnpm build && ./dist/craft.@sentry/craft, at version 2.29.0-dev.0, with executable bins craft and sentry-craft both mapped to dist/craft..prettierrc.yml; linting uses ESLint 9.x flat config in eslint.config.mjs with typescript-eslint; unused variables prefixed with _ are permitted.src/__mocks__/, src/__tests__/, src/artifact_providers/, src/commands/, src/schemas/, src/status_providers/, src/targets/, src/types/, src/utils/, src/config.ts, src/index.ts, src/logger.ts, and bundled executable dist/craft.src/__tests__/ with *.test.ts names; mocks use vi.fn(), vi.mock(), and vi.spyOn().master; CI tests Node.js 20 and 22; Craft releases itself using its own tooling..craft.yml at repository root and its schema is defined in src/schemas/.isDryRun() checks: Git via getGitClient() from src/utils/git.ts or createGitClient(directory); GitHub via getGitHubClient() from src/utils/githubApi.ts; file writes via safeFs from src/utils/dryRun.ts; other actions via safeExec() or safeExecSync() from src/utils/dryRun.ts.simple-git imports via no-restricted-imports and direct new Octokit() via no-restricted-syntax; wrapper modules requiring raw simple-git must precede the import with // eslint-disable-next-line no-restricted-imports -- This is the wrapper module.getGitClient()/createGitClient() for Git, getGitHubClient() for GitHub APIs, safeFs.writeFile(), safeFs.unlink(), etc. for file writes, and safeExec(action, description) for other actions. Explicit isDryRun() checks remain appropriate for tools with their own dry-run flags (such as dart pub publish --dry-run in the pubDev target), mock-data needs, and UX optimizations such as skipped sleep timers.2.29.0-dev.0 as the active development version and planned to change the version gate to 2.29.0, make version comparison robust to build metadata, and replace a custom argv scan with node:util.parseArgs plus token validation.