Skip to content

feat(plugin-new): add local development support - #208

Open
gashcrumb wants to merge 8 commits into
redhat-developer:mainfrom
gashcrumb:feat/plugin-new-dev-harness
Open

gashcrumb wants to merge 8 commits into
redhat-developer:mainfrom
gashcrumb:feat/plugin-new-dev-harness

Conversation

@gashcrumb

@gashcrumb gashcrumb commented Sep 15, 2026

Copy link
Copy Markdown
Member

Summary

  • add isolated frontend and backend development harnesses to generated plugins
  • add package start scripts and development-only Backstage dependencies
  • use the NFS createDevApp helper and automatic JSX runtime for generated frontend plugins
  • prepare the 2.0.9 patch release

Verification

  • CI=true yarn backstage-cli package test
  • yarn tsc
  • yarn lint:check
  • yarn prettier:check
  • yarn build
  • generated RHDH 2.1 frontend and backend projects: yarn install && yarn tsc

Assisted-By: OpenCode
Signed-off-by: Stan Lewis <gashcrumb@gmail.com>

rh-pre-commit.version: 2.4.0
rh-pre-commit.check-secrets: ENABLED
@fullsend-ai-review

fullsend-ai-review Bot commented Sep 15, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 3:47 PM UTC · Completed 4:01 PM UTC

Commit: de1c344 · View workflow run →

Runtime: claude · Model: sonnet → claude-sonnet-4-6 · Effort: high · Cost: $2.40

@fullsend-ai-review fullsend-ai-review Bot added the risk/moderate PR risk: moderate label Sep 15, 2026
@fullsend-ai-review

fullsend-ai-review Bot commented Sep 15, 2026

Copy link
Copy Markdown

Risk Assessment: moderate (2/5)

Details

Score holds at 2 (moderate), consistent with the prior assessment; all Tier 1 signals are unchanged (no protected paths, no security or CI exposure, one dependency file, same author profile), and Tier 2 churn is driven by release-cycle files rather than functional instability in the newly added template files.

Previous run

Risk Assessment: moderate (2/5)

Details

Score holds at 2 (moderate), consistent with the prior assessment; the PR has grown modestly from the prior 95-line snapshot to 171 lines across 14 files, with no security, CI, or protected-path exposure, and the elevated fix/revert signal remains an artifact of release-cycle commits in CHANGELOG.md and package.json rather than functional instability.

Previous run (2)

Risk Assessment: moderate (2/5)

Details

Score holds at 2 (moderate), matching the prior assessment: this is a small 95-line patch with no security, CI, or protected-path exposure; the elevated fix/revert signal is an artifact of CHANGELOG.md and package.json accumulating release-cycle commit messages, not genuine functional instability.

Previous run (3)

Risk Assessment: moderate (2/5)

Details

Score holds at 2 (moderate), matching the prior assessment: this is a small 68-line patch with no security, CI, or protected-path exposure; active churn in CHANGELOG.md and package.json is consistent with routine patch-release cadence in this repo and does not represent instability in functional code.

Previous run (4)

Risk Assessment: moderate (2/5)

Details

Small patch adding dev harnesses and template updates across 10 files with 76 net lines, no security or CI risk, one dependency file version bump; the only modest concern is active churn in package.json and CHANGELOG.md, which is expected for ongoing patch releases in this repo.

@fullsend-ai-review

fullsend-ai-review Bot commented Sep 15, 2026

Copy link
Copy Markdown

Looks good to me

Previous run

Review

Findings

Low

  • [logic-error] templates/plugin-new/frontend/package.json.hbs:7 — The frontend template declares "files": ["dist"] (introduced by this PR), but all entry-point fields reference source paths: "main": "src/index.ts", "types": "src/index.ts", and the newly added "exports": { ".": "./src/index.ts" }. Running yarn pack on the generated project produces a tarball shipping only dist/ while package.json inside references src/, making the artifact non-functional. The private: true flag prevents npm publish but not yarn pack. The backend template carries no files field, creating an unexplained asymmetry.
    Remediation: Either remove "files": ["dist"] from the frontend template (matching the backend convention), or update "main", "types", and the "." export in "exports" to point at compiled outputs (e.g. dist/index.esm.js / dist-types/index.d.ts) so the declared publication contents are consistent with the entry-point fields.

  • [code-organization] templates/plugin-new/frontend/src/plugin.tsx.hbs:13 — Missing blank line between the closing }); of the page const block (line 12) and the export const plugin declaration (line 13). The superseded index.ts.hbs separated these two adjacent top-level declarations with a blank line; the replacement file omits it.
    Remediation: Insert a blank line between }); (line 12) and export const plugin (line 13).


Next steps:

  • /fs-fix — agent addresses review findings automatically
  • /fs-fix <your instruction> — agent fixes with your specific guidance
  • Push commits directly — review re-runs automatically on push
  • /fs-fix-stop — disable automatic fix runs for this PR
Previous run (2)

Review

Findings

Low

  • [logic-error] templates/plugin-new/frontend/package.json.hbs:7 — The frontend template sets "files": ["dist"] while "main" and "types" still point to "src/index.tsx", a source file that is not placed under dist/. Although "private": true blocks npm publish, yarn pack (Yarn Berry) and workspace-level link resolution both respect the files field; a generated project that runs yarn pack would produce a tarball containing only dist/ while package.json references src/index.tsx, which would be absent, making the artifact non-functional. The backend template carries no files field, creating an unexplained asymmetry between the two templates.
    Remediation: Either remove "files": ["dist"] from the frontend template (matching the backend convention), or update "main" and "types" to reference the compiled output (e.g., "dist/index.esm.js" / "dist-types/index.d.ts") so the declared published contents are consistent with the entry-point fields.

Prior finding resolved: The naming-convention finding from the previous review (alphabetical ordering of devDependencies in the packages Map) is addressed — @backstage/backend-defaults and @backstage/frontend-dev-utils are now inserted in correct alphabetical position.


Next steps:

  • /fs-fix — agent addresses review findings automatically
  • /fs-fix <your instruction> — agent fixes with your specific guidance
  • Push commits directly — review re-runs automatically on push
  • /fs-fix-stop — disable automatic fix runs for this PR
Previous run (3)

Review

Findings

Low

  • [naming-convention] src/commands/new/command.test.ts:43 — The test mock packages Map entries for the two new devDependencies are inserted out of alphabetical order. @backstage/backend-defaults is placed after @backstage/backend-plugin-api (but backend-defaults < backend-plugin-api alphabetically), and @backstage/frontend-dev-utils is placed after @backstage/frontend-plugin-api (but frontend-dev-utils < frontend-plugin-api). The surrounding entries in the Map were alphabetically sorted on the base branch.
    Remediation: Move @backstage/backend-defaults to before @backstage/backend-plugin-api, and move @backstage/frontend-dev-utils to before @backstage/frontend-plugin-api.

Prior findings resolved: Both issues from the previous review are addressed — the devDependencies ordering in templates/plugin-new/backend/package.json.hbs is now alphabetically correct, and README.md now documents the dev/ harness and yarn start availability (and the catalog-processor-module exclusion).


Next steps:

  • /fs-fix — agent addresses review findings automatically
  • /fs-fix <your instruction> — agent fixes with your specific guidance
  • Push commits directly — review re-runs automatically on push
  • /fs-fix-stop — disable automatic fix runs for this PR
Previous run (4)

Review

Findings

Medium

  • [missing-doc] README.md:68 — The "Creating a Plugin" section describes supported types but does not mention that frontend and backend plugin types now include a dev/ harness directory and a yarn start script, while catalog-processor-module does not. A developer following the README to create a plugin will encounter these new files unexpectedly and will not know local development via yarn start is available.
    Remediation: Extend the "Creating a Plugin" paragraph to note that generated frontend and backend projects include a dev/ harness and yarn start script for isolated local development. Explicitly note that catalog-processor-module does not include these.

Low

  • [naming-convention] templates/plugin-new/backend/package.json.hbs:19 — In the devDependencies block, @backstage/backend-defaults (b) is placed after @backstage/cli (c), violating the alphabetical ordering used everywhere else in the templates. The frontend template correctly places @backstage/cli before @backstage/frontend-defaults.
    Remediation: Swap the order so @backstage/backend-defaults appears on the line immediately before @backstage/cli.

Next steps:

  • /fs-fix — agent addresses review findings automatically
  • /fs-fix <your instruction> — agent fixes with your specific guidance
  • Push commits directly — review re-runs automatically on push
  • /fs-fix-stop — disable automatic fix runs for this PR

fullsend-ai-review[bot]

This comment was marked as outdated.

Assisted-By: OpenCode
Signed-off-by: Stan Lewis <gashcrumb@gmail.com>

rh-pre-commit.version: 2.4.0
rh-pre-commit.check-secrets: ENABLED
@fullsend-ai-review

fullsend-ai-review Bot commented Sep 15, 2026

Copy link
Copy Markdown

🤖 Review · ⚠️ Cancelled · Started 4:21 PM UTC · Ended 4:29 PM UTC

Commit: 3a0a2c5 · View workflow run →

Assisted-By: OpenCode
Signed-off-by: Stan Lewis <gashcrumb@gmail.com>

rh-pre-commit.version: 2.4.0
rh-pre-commit.check-secrets: ENABLED
@fullsend-ai-review

fullsend-ai-review Bot commented Sep 15, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 4:30 PM UTC · Completed 4:44 PM UTC

Commit: e25ae43 · View workflow run →

Runtime: claude · Model: sonnet → claude-sonnet-4-6 · Effort: high · Cost: $2.40

fullsend-ai-review[bot]

This comment was marked as outdated.

@PatAKnight PatAKnight left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Assisted-By: OpenCode
Signed-off-by: Stan Lewis <gashcrumb@gmail.com>

rh-pre-commit.version: 2.4.0
rh-pre-commit.check-secrets: ENABLED
@fullsend-ai-review

fullsend-ai-review Bot commented Sep 15, 2026

Copy link
Copy Markdown

🤖 Review · ⚠️ Cancelled · Started 5:07 PM UTC · Ended 5:17 PM UTC

Commit: 1961cc5 · View workflow run →

Assisted-By: OpenCode
Signed-off-by: Stan Lewis <gashcrumb@gmail.com>

rh-pre-commit.version: 2.4.0
rh-pre-commit.check-secrets: ENABLED
@gashcrumb gashcrumb changed the title feat(plugin-new): add local dev harnesses feat(plugin-new): add local development support Sep 15, 2026
@fullsend-ai-review

fullsend-ai-review Bot commented Sep 15, 2026

Copy link
Copy Markdown

🤖 Review · ⚠️ Cancelled · Started 5:18 PM UTC · Ended 5:22 PM UTC

Commit: c33ffa1 · View workflow run →

Assisted-By: OpenCode
Signed-off-by: Stan Lewis <gashcrumb@gmail.com>

rh-pre-commit.version: 2.4.0
rh-pre-commit.check-secrets: ENABLED
@fullsend-ai-review

fullsend-ai-review Bot commented Sep 15, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 5:23 PM UTC · Completed 5:38 PM UTC

Commit: 7d13730 · View workflow run →

Runtime: claude · Model: sonnet → claude-sonnet-4-6 · Effort: high · Cost: $2.40

fullsend-ai-review[bot]

This comment was marked as outdated.

Assisted-By: OpenCode
Signed-off-by: Stan Lewis <gashcrumb@gmail.com>

rh-pre-commit.version: 2.4.0
rh-pre-commit.check-secrets: ENABLED
@fullsend-ai-review

fullsend-ai-review Bot commented Sep 15, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 5:55 PM UTC · Completed 6:07 PM UTC

Commit: 6a8ef29 · View workflow run →

Runtime: claude · Model: sonnet → claude-sonnet-4-6 · Effort: high · Cost: $1.99

fullsend-ai-review[bot]

This comment was marked as outdated.

Assisted-By: OpenCode
Signed-off-by: Stan Lewis <gashcrumb@gmail.com>

rh-pre-commit.version: 2.4.0
rh-pre-commit.check-secrets: ENABLED
@sonarqubecloud

Copy link
Copy Markdown

@fullsend-ai-review

fullsend-ai-review Bot commented Sep 15, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 7:09 PM UTC · Completed 7:21 PM UTC

Commit: 87ccace · View workflow run →

Runtime: claude · Model: sonnet → claude-sonnet-4-6 · Effort: high · Cost: $1.97

@fullsend-ai-review
fullsend-ai-review Bot dismissed stale reviews from themself September 15, 2026 19:21

Superseded by updated review

@fullsend-ai-review fullsend-ai-review Bot added the ready-for-merge All reviewers approved — ready to merge label Sep 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-merge All reviewers approved — ready to merge risk/moderate PR risk: moderate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants