Conversation
- Add docs/Plugin-Development-CLI.md covering standalone scaffolding, local runtime testing, dependency auditing, upgrading, and dynamic export - Document plugin new template shapes, version pinning, and standalone harnesses - Document plugin check-versions (and versions:lint alias), 3-tier version mapping, audit statuses, and CI pipeline recipes - Document plugin upgrade (and versions:bump alias), dry-run mode, and lockfile synchronization - Document plugin dev Compose runtime lifecycle, automated config include, and watch mode - Document air-gapped/offline operations with local manifests and RHDH_OFFLINE - Update README.md with cross-links to the new guide and list all plugin development commands Assisted-By: opencode Signed-off-by: Stan Lewis <gashcrumb@gmail.com> rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
|
/fs-review |
|
🤖 Finished Review · ✅ Success · Started 6:25 PM UTC · Completed 6:40 PM UTC Commit: Runtime: claude · Model: sonnet → claude-sonnet-4-6 · Effort: high · Cost: $4.18 |
|
Risk Assessment: moderate (2/5) DetailsPure documentation PR by an established contributor with no source, CI, or dependency changes; moderate line count elevates one Tier 1 signal but the docs-only scope and no regression history keep the composite at moderate, consistent with the prior assessment. Previous runRisk Assessment: moderate (2/5) DetailsPure documentation PR by an established contributor with no source, CI, or dependency changes; moderate line count elevates Tier 1 slightly, but docs-only scope and no regression history on the new file keep the composite risk low-moderate. |
ReviewFindingsHigh
Low
Next steps:
Previous runReviewFindingsHigh
Medium
Low
Labels: PR adds comprehensive documentation for CLI plugin commands Next steps:
|
…guide - Add --name option to plugin new syntax reference - Avoid hardcoding current GA version in --rhdh-version option description - Add missing 1.7.0 and 1.6.0 entries to static compatibility matrix table - Clarify Yarn lockfile detection behavior in lockfile synchronization section - Accurately describe stop --clean behavior preserving staged dynamic plugin artifacts - Correct container event types and clarify HTTP readiness polling in watch mode Assisted-By: opencode Signed-off-by: Stan Lewis <gashcrumb@gmail.com> rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
|
|
/fs-review |
|
🤖 Finished Review · ✅ Success · Started 6:48 PM UTC · Completed 7:02 PM UTC Commit: Runtime: claude · Model: sonnet → claude-sonnet-4-6 · Effort: high · Cost: $3.22 |
| | Command | Alias | Description | | ||
| | -------------------------------- | ---------------------- | --------------------------------------------------------------------------------------------------------- | | ||
| | `rhdh-cli plugin new` | — | Scaffold a standalone, version-pinned dynamic plugin project | | ||
| | `rhdh-cli plugin check-versions` | `plugin versions:lint` | Audit plugin dependencies against target RHDH Backstage release manifests | |
There was a problem hiding this comment.
[high] api-contract
plugin versions:lint is documented as an alias for plugin check-versions in the command summary table (line 57), the syntax block (line 137), the code fence (line 219), and README.md (lines 45, 60, 154), but no such alias is registered in src/commands/index.ts. The check-versions command (lines 135-148) has no .alias() call; only upgrade has .alias("versions:bump") at line 152. Running rhdh-cli plugin versions:lint will fail with an unknown-command error.
Suggested fix: Either add .alias("versions:lint") to the check-versions command registration in src/commands/index.ts (after line 148, before .action()), or remove all versions:lint alias references from docs/Plugin-Development-CLI.md (lines 57, 137, 219) and README.md (lines 45, 60, 154).
|
|
||
| ### Audit Statuses | ||
|
|
||
| | Status | Symbol | Meaning | |
There was a problem hiding this comment.
[low] logic-error
The plugin new Syntax & Options section lists 7 options but omits --manifest-file <path>, which is registered in src/commands/index.ts (line 201) for plugin new and is required for air-gapped scaffolding. The Air-Gapped section also omits plugin new from its --manifest-file examples.
Suggested fix: Add --manifest-file <path> to the plugin new options list describing it as the path to a local Backstage release manifest for air-gapped use. Also add a plugin new usage example in the Air-Gapped section.
|
|
||
| Requirements for `plugin package`: | ||
|
|
||
| - `bash`, `npm` (v7+), and `tar` available on `$PATH`. |
There was a problem hiding this comment.
[low] incorrect-doc
The four progress-phase labels in the doc use imperative wording without ellipsis (e.g. [1/4] Build and export plugin, [4/4] Wait for RHDH readiness), but the CLI prints gerund phrases with trailing ellipsis: [1/4] Building and exporting plugin..., [2/4] Starting RHDH Local runtime..., [3/4] Installing dynamic plugins..., [4/4] Waiting for RHDH to be ready... (src/commands/dev/command.ts lines 256-266). All four labels differ in verb form and punctuation; the fourth also differs in wording.
Suggested fix: Update the four phase labels in the --configure section to exactly match the strings from src/commands/dev/command.ts lines 256-266.



Summary
Consolidates and refactors developer-facing documentation across all dynamic plugin development and on-ramp commands in
rhdh-cli, fulfilling the documentation deliverables of RHIDP-16669 and RHIDP-13614.Highlights
docs/Plugin-Development-CLI.md):plugin new: Standalone scaffolding, NFS frontend/backend/catalog-processor module types, upstream@backstage/cli-module-newtemplate reuse, and localdev/harnesses.plugin check-versions(aliasplugin versions:lint): 3-tier RHDH-to-Backstage version resolution, audit statuses (match,mismatch,unmanifested,unverifiable), exit codes, and CI pipeline recipes.plugin upgrade(aliasplugin versions:bump): Targeted upgrades,--dry-runpreviews,--skip-install, range specifier preservation (^,~), and lockfile synchronization for Yarn and npm.plugin dev: Local containerized runtime lifecycle (start,update,restart,stop,logs,status), configuration automation via--configure, and continuous watch mode (--watch).plugin export) and container packaging (plugin package).--manifest-fileandRHDH_OFFLINE=true.README.mdRefactoring:plugin new,plugin dev,plugin check-versions,plugin upgrade,plugin export,plugin package).