{"record":{"id":"05f51d41695b96d1","repo":"spree/spree","slug":"rails-engine-generation-is-coming-in-a-future-rele","errorCode":null,"errorMessage":"Rails engine generation is coming in a future release. For now, scaffold the dashboard half here and use `spree-extension create` for the Ruby side.","messagePattern":"Rails engine generation is coming in a future release\\. For now, scaffold the dashboard half here and use `spree-extension create` for the Ruby side\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"info","filePath":"packages/cli/src/commands/plugin.ts","lineNumber":297,"sourceCode":"  if (p.isCancel(license)) return license as symbol\n\n  // The `--no-dashboard` flag pre-answers this; --yes accepts the default.\n  const includeDashboard =\n    flags.dashboard === false\n      ? false\n      : flags.yes || (await promptConfirm('Include dashboard plugin?', true))\n  if (p.isCancel(includeDashboard)) return includeDashboard as symbol\n\n  // The engine half is not yet generated by the CLI — the Rails templates\n  // land in a follow-up PR. For now, we always answer false and note it.\n  // Once the engine templates exist, restore the prompt:\n  //\n  //   const includeEngine = flags.engine === false\n  //     ? false\n  //     : await promptConfirm('Include Rails engine (API endpoints)?', true)\n  const includeEngine = false\n  if (flags.engine !== false) {\n    p.log.warn(\n      'Rails engine generation is coming in a future release. For now, scaffold the dashboard half here and use `spree-extension create` for the Ruby side.',\n    )\n  }\n\n  if (!includeDashboard && !includeEngine) {\n    p.cancel('Nothing to scaffold (dashboard half declined).')\n    process.exit(1)\n  }\n\n  return {\n    name: name as string,\n    rubyName: rubyName as string,\n    moduleName: moduleName as string,\n    npmScope: (npmScope as string).trim(),\n    authorName: authorName as string,\n    authorEmail: authorEmail as string,\n    license: license as string,\n    includeDashboard: includeDashboard as boolean,","sourceCodeStart":279,"sourceCodeEnd":315,"githubUrl":"https://github.com/spree/spree/blob/06bf66a8684b9de03210bbb2ddc8c1f5ba522fa2/packages/cli/src/commands/plugin.ts#L279-L315","documentation":"`spree plugin create` cannot yet generate the Rails engine half of a plugin — the engine templates are not implemented in the CLI (includeEngine is hard-coded false pending a follow-up). When you did not explicitly decline the engine, it prints this notice telling you to scaffold the dashboard half here and create the Ruby side with the separate `spree-extension create` command.","triggerScenarios":"Creating a plugin without --no-engine, i.e. expecting `spree plugin create` to emit both the dashboard package and the Rails engine — only the dashboard plugin is scaffolded.","commonSituations":"Building a first Spree extension with the new CLI, following docs that assume full two-half generation, or CI scaffolding checks.","solutions":["Use `spree plugin create` for the dashboard half it does generate.","Create the Ruby engine with `spree-extension create` and place it alongside the dashboard package in the plugin repo.","Watch CLI releases for the engine-generation follow-up; until then treat the engine as manually created."],"exampleFix":"# before — expecting both halves\nspree plugin create my-plugin\n\n# after — scaffold each half with its tool\nspree plugin create my-plugin           # dashboard half\nspree-extension create my-plugin        # Rails engine half","handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["Know the current split: CLI scaffolds the dashboard half, `spree-extension create` the Rails engine.","Pass --no-engine in scripts to silence the notice when you don't want the engine half.","Watch CLI release notes for engine templates landing."],"tags":["cli","plugin","scaffolding","extensions"],"backgroundTag":"feature-not-implemented","analyzedSha":"06bf66a8684b9de03210bbb2ddc8c1f5ba522fa2","analyzedAt":"2026-08-21T14:59:48.125Z","schemaVersion":2},"datasetVersion":"2026-08-21T18:17:14.833Z"}