create-bench 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # create-bench
2
2
 
3
- Scaffold a new ComputeSDK benchmark project that uses [`@benchsdk/client`](https://github.com/computesdk/benchmarks/tree/master/packages/benchsdk).
3
+ Scaffold a new ComputeSDK benchmark project that uses [`@benchsdk/runner`](https://github.com/computesdk/benchmarks/tree/master/packages/benchsdk-runner).
4
4
 
5
5
  ## Usage
6
6
 
@@ -18,9 +18,9 @@ npm create bench my-benchmark
18
18
 
19
19
  The CLI creates a directory with the given project name and writes:
20
20
 
21
- - `package.json` — with `@benchsdk/client`, `tsx`, and benchmark scripts
21
+ - `package.json` — with `@benchsdk/runner`, `tsx`, and benchmark scripts
22
22
  - `tsconfig.json` — basic TypeScript configuration
23
- - `bench.ts` — a minimal benchmark worker using `createBenchmarkClient().runWorker()`
23
+ - `bench.ts` — a minimal benchmark using `defineBenchmarkConfig` / `defineTask`
24
24
  - `.env.example` — environment variables to configure the worker
25
25
  - `README.md` — instructions for the new project
26
26
 
package/dist/index.js CHANGED
@@ -23,7 +23,7 @@ function scaffold(targetDir, projectName) {
23
23
  typecheck: "tsc --noEmit"
24
24
  },
25
25
  dependencies: {
26
- "@benchsdk/runner": "^0.2.0"
26
+ "@benchsdk/runner": "^0.5.0"
27
27
  },
28
28
  devDependencies: {
29
29
  tsx: "^4.22.4",
@@ -155,7 +155,8 @@ async function main() {
155
155
  const projectName = process.argv[2];
156
156
  await createBench(projectName);
157
157
  }
158
- if (process.argv[1] === fileURLToPath(import.meta.url)) {
158
+ var isMain = process.argv[1] !== void 0 && fs.existsSync(process.argv[1]) && fs.realpathSync(process.argv[1]) === fs.realpathSync(fileURLToPath(import.meta.url));
159
+ if (isMain) {
159
160
  main().catch((err) => {
160
161
  console.error(err);
161
162
  process.exit(1);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["#!/usr/bin/env node\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport readline from 'node:readline/promises';\nimport { fileURLToPath } from 'node:url';\n\nfunction toValidPackageName(input: string): string {\n const name = input\n .toLowerCase()\n .replace(/\\s+/g, '-')\n .replace(/[^a-z0-9-]/g, '')\n .replace(/^[^a-z]+/, '')\n .replace(/-+/g, '-')\n .replace(/^-+/, '');\n return name || 'bench';\n}\n\nfunction scaffold(targetDir: string, projectName: string): void {\n fs.mkdirSync(targetDir, { recursive: true });\n\n const packageJson = {\n name: toValidPackageName(projectName),\n version: '0.0.0',\n private: true,\n type: 'module',\n scripts: {\n // `bench run` loads the *.bench.ts module; run it under tsx so the\n // TypeScript benchmark file can be imported without a build step.\n bench: 'tsx node_modules/@benchsdk/runner/dist/bin.js run bench.ts',\n typecheck: 'tsc --noEmit',\n },\n dependencies: {\n '@benchsdk/runner': '^0.2.0',\n },\n devDependencies: {\n tsx: '^4.22.4',\n typescript: '^5.0.0',\n },\n };\n\n fs.writeFileSync(\n path.join(targetDir, 'package.json'),\n `${JSON.stringify(packageJson, null, 2)}\\n`,\n );\n\n const tsconfigJson = {\n compilerOptions: {\n target: 'ES2022',\n module: 'ESNext',\n moduleResolution: 'bundler',\n strict: true,\n esModuleInterop: true,\n skipLibCheck: true,\n resolveJsonModule: true,\n noEmit: true,\n },\n include: ['**/*.ts'],\n };\n\n fs.writeFileSync(\n path.join(targetDir, 'tsconfig.json'),\n `${JSON.stringify(tsconfigJson, null, 2)}\\n`,\n );\n\n const benchTs = `import { defineBenchmarkConfig, defineTask } from '@benchsdk/runner';\n\n// A benchmark file declares two things and nothing else:\n// - config: identity + orchestration knobs + the participants to run against\n// - task: the workload for ONE iteration\n// Run it with \\`pnpm bench\\` (CLI flags like --iterations / --concurrency\n// override the config knobs). No imperative entrypoint needed.\nexport const config = defineBenchmarkConfig({\n benchmarkSlug: process.env.BENCHMARK_SLUG ?? 'example',\n benchmarkName: 'Example benchmark',\n iterations: 10,\n concurrency: 1,\n participants: [{ name: 'local', requiredEnvVars: [] }],\n display: {\n metrics: [\n { key: 'durationMs', label: 'Duration', unit: 'ms', direction: 'lower-better' },\n ],\n overview: { defaultMetric: 'compositeScore' },\n },\n scoring: {\n metrics: [\n { key: 'durationMs', ceiling: 1000, weights: { median: 0.7, p95: 0.2, p99: 0.1 } },\n ],\n },\n});\n\nexport const task = defineTask(async ({ taskIndex, step, measure, log }) => {\n log(\\`running task \\${taskIndex}\\`);\n // Declare named steps with \\`step(...)\\`; values flow between them via\n // closures and each step is recorded on the platform with its own timing.\n const start = Date.now();\n await step('work', async () => {\n // Replace with your benchmark logic.\n await new Promise((resolve) => setTimeout(resolve, 100));\n });\n // \\`measure(...)\\` attaches metrics to the current step (or the task).\n measure({ durationMs: Date.now() - start });\n});\n`;\n\n fs.writeFileSync(path.join(targetDir, 'bench.ts'), benchTs);\n\n const envExample = `# Copy to .env and fill in your values\nBENCHMARKS_PLATFORM_URL=\nBENCHMARKS_PLATFORM_API_KEY=\nBENCHMARK_SLUG=example\n`;\n\n fs.writeFileSync(path.join(targetDir, '.env.example'), envExample);\n\n const readme = `# ${projectName}\n\nThis project was scaffolded by [\\`create-bench\\`](https://github.com/computesdk/benchmarks/tree/master/packages/create-bench).\n\n## Getting started\n\n1. Install dependencies:\n\n \\`\\`\\`sh\n pnpm install\n \\`\\`\\`\n\n2. Copy \\`.env.example\\` to \\`.env\\` and fill in the required values.\n\n3. Run the benchmark worker:\n\n \\`\\`\\`sh\n pnpm bench\n \\`\\`\\`\n`;\n\n fs.writeFileSync(path.join(targetDir, 'README.md'), readme);\n}\n\nasync function askProjectName(): Promise<string | undefined> {\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n\n try {\n const answer = await rl.question('Project name: ');\n return answer.trim() || undefined;\n } finally {\n rl.close();\n }\n}\n\nexport async function createBench(projectName?: string): Promise<void> {\n const resolvedName = projectName ?? (await askProjectName());\n\n if (!resolvedName) {\n throw new Error('A project name is required.');\n }\n\n const targetDir = path.isAbsolute(resolvedName)\n ? resolvedName\n : path.resolve(process.cwd(), resolvedName);\n const packageName = path.basename(targetDir);\n\n if (fs.existsSync(targetDir) && fs.readdirSync(targetDir).length > 0) {\n throw new Error(`Directory ${targetDir} is not empty.`);\n }\n\n scaffold(targetDir, packageName);\n\n console.log(`Created ${packageName} at ${targetDir}`);\n console.log('Next steps:');\n console.log(` cd ${path.relative(process.cwd(), targetDir) || packageName}`);\n console.log(' pnpm install');\n console.log(' cp .env.example .env');\n console.log(' pnpm bench');\n}\n\nasync function main(): Promise<void> {\n const projectName = process.argv[2];\n await createBench(projectName);\n}\n\nif (process.argv[1] === fileURLToPath(import.meta.url)) {\n main().catch((err) => {\n console.error(err);\n process.exit(1);\n });\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["#!/usr/bin/env node\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport readline from 'node:readline/promises';\nimport { fileURLToPath } from 'node:url';\n\nfunction toValidPackageName(input: string): string {\n const name = input\n .toLowerCase()\n .replace(/\\s+/g, '-')\n .replace(/[^a-z0-9-]/g, '')\n .replace(/^[^a-z]+/, '')\n .replace(/-+/g, '-')\n .replace(/^-+/, '');\n return name || 'bench';\n}\n\nfunction scaffold(targetDir: string, projectName: string): void {\n fs.mkdirSync(targetDir, { recursive: true });\n\n const packageJson = {\n name: toValidPackageName(projectName),\n version: '0.0.0',\n private: true,\n type: 'module',\n scripts: {\n // `bench run` loads the *.bench.ts module; run it under tsx so the\n // TypeScript benchmark file can be imported without a build step.\n bench: 'tsx node_modules/@benchsdk/runner/dist/bin.js run bench.ts',\n typecheck: 'tsc --noEmit',\n },\n dependencies: {\n '@benchsdk/runner': '^0.5.0',\n },\n devDependencies: {\n tsx: '^4.22.4',\n typescript: '^5.0.0',\n },\n };\n\n fs.writeFileSync(\n path.join(targetDir, 'package.json'),\n `${JSON.stringify(packageJson, null, 2)}\\n`,\n );\n\n const tsconfigJson = {\n compilerOptions: {\n target: 'ES2022',\n module: 'ESNext',\n moduleResolution: 'bundler',\n strict: true,\n esModuleInterop: true,\n skipLibCheck: true,\n resolveJsonModule: true,\n noEmit: true,\n },\n include: ['**/*.ts'],\n };\n\n fs.writeFileSync(\n path.join(targetDir, 'tsconfig.json'),\n `${JSON.stringify(tsconfigJson, null, 2)}\\n`,\n );\n\n const benchTs = `import { defineBenchmarkConfig, defineTask } from '@benchsdk/runner';\n\n// A benchmark file declares two things and nothing else:\n// - config: identity + orchestration knobs + the participants to run against\n// - task: the workload for ONE iteration\n// Run it with \\`pnpm bench\\` (CLI flags like --iterations / --concurrency\n// override the config knobs). No imperative entrypoint needed.\nexport const config = defineBenchmarkConfig({\n benchmarkSlug: process.env.BENCHMARK_SLUG ?? 'example',\n benchmarkName: 'Example benchmark',\n iterations: 10,\n concurrency: 1,\n participants: [{ name: 'local', requiredEnvVars: [] }],\n display: {\n metrics: [\n { key: 'durationMs', label: 'Duration', unit: 'ms', direction: 'lower-better' },\n ],\n overview: { defaultMetric: 'compositeScore' },\n },\n scoring: {\n metrics: [\n { key: 'durationMs', ceiling: 1000, weights: { median: 0.7, p95: 0.2, p99: 0.1 } },\n ],\n },\n});\n\nexport const task = defineTask(async ({ taskIndex, step, measure, log }) => {\n log(\\`running task \\${taskIndex}\\`);\n // Declare named steps with \\`step(...)\\`; values flow between them via\n // closures and each step is recorded on the platform with its own timing.\n const start = Date.now();\n await step('work', async () => {\n // Replace with your benchmark logic.\n await new Promise((resolve) => setTimeout(resolve, 100));\n });\n // \\`measure(...)\\` attaches metrics to the current step (or the task).\n measure({ durationMs: Date.now() - start });\n});\n`;\n\n fs.writeFileSync(path.join(targetDir, 'bench.ts'), benchTs);\n\n const envExample = `# Copy to .env and fill in your values\nBENCHMARKS_PLATFORM_URL=\nBENCHMARKS_PLATFORM_API_KEY=\nBENCHMARK_SLUG=example\n`;\n\n fs.writeFileSync(path.join(targetDir, '.env.example'), envExample);\n\n const readme = `# ${projectName}\n\nThis project was scaffolded by [\\`create-bench\\`](https://github.com/computesdk/benchmarks/tree/master/packages/create-bench).\n\n## Getting started\n\n1. Install dependencies:\n\n \\`\\`\\`sh\n pnpm install\n \\`\\`\\`\n\n2. Copy \\`.env.example\\` to \\`.env\\` and fill in the required values.\n\n3. Run the benchmark worker:\n\n \\`\\`\\`sh\n pnpm bench\n \\`\\`\\`\n`;\n\n fs.writeFileSync(path.join(targetDir, 'README.md'), readme);\n}\n\nasync function askProjectName(): Promise<string | undefined> {\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n\n try {\n const answer = await rl.question('Project name: ');\n return answer.trim() || undefined;\n } finally {\n rl.close();\n }\n}\n\nexport async function createBench(projectName?: string): Promise<void> {\n const resolvedName = projectName ?? (await askProjectName());\n\n if (!resolvedName) {\n throw new Error('A project name is required.');\n }\n\n const targetDir = path.isAbsolute(resolvedName)\n ? resolvedName\n : path.resolve(process.cwd(), resolvedName);\n const packageName = path.basename(targetDir);\n\n if (fs.existsSync(targetDir) && fs.readdirSync(targetDir).length > 0) {\n throw new Error(`Directory ${targetDir} is not empty.`);\n }\n\n scaffold(targetDir, packageName);\n\n console.log(`Created ${packageName} at ${targetDir}`);\n console.log('Next steps:');\n console.log(` cd ${path.relative(process.cwd(), targetDir) || packageName}`);\n console.log(' pnpm install');\n console.log(' cp .env.example .env');\n console.log(' pnpm bench');\n}\n\nasync function main(): Promise<void> {\n const projectName = process.argv[2];\n await createBench(projectName);\n}\n\n// npm links bins through a `.bin` symlink, so process.argv[1] is the symlink\n// path while import.meta.url resolves to the real file — compare realpaths.\nconst isMain =\n process.argv[1] !== undefined &&\n fs.existsSync(process.argv[1]) &&\n fs.realpathSync(process.argv[1]) === fs.realpathSync(fileURLToPath(import.meta.url));\n\nif (isMain) {\n main().catch((err) => {\n console.error(err);\n process.exit(1);\n });\n}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "create-bench",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "private": false,
5
5
  "type": "module",
6
- "description": "Scaffold a new ComputeSDK benchmark project with @benchsdk/client",
6
+ "description": "Scaffold a new ComputeSDK benchmark project with @benchsdk/runner",
7
7
  "author": "Garrison",
8
8
  "license": "MIT",
9
9
  "bin": {
@@ -35,11 +35,11 @@
35
35
  },
36
36
  "dependencies": {},
37
37
  "devDependencies": {
38
- "@types/node": "^20.0.0",
39
- "rimraf": "^5.0.0",
40
- "tsup": "^8.0.0",
41
- "typescript": "^5.0.0",
42
- "vitest": "^1.0.0"
38
+ "@types/node": "^20.19.43",
39
+ "rimraf": "^5.0.10",
40
+ "tsup": "^8.5.1",
41
+ "typescript": "^5.9.3",
42
+ "vitest": "^1.6.1"
43
43
  },
44
44
  "scripts": {
45
45
  "build": "tsup",