feat: add plugin check-versions command and RHDH version resolution engine - #176
Conversation
|
/fs-review |
|
🤖 Review · Commit: |
|
🤖 Finished Review · ❌ Failure (validation failed after 2 iteration(s)) · Started 1:02 PM UTC · Completed 1:44 PM UTC Commit: Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high |
PatAKnight
left a comment
There was a problem hiding this comment.
A few inline comments and an observation.
It doesn't really seem like this repo documents any of the commands (README only
covers the janus rename and plugin package requirements). I’m not
blocking on a full guide, but I wonder if we should add a few lines in the README for
check-versions (--rhdh-version, --manifest-file, --json), especially --manifest-file for air-gapped use. This way we can at least have them started here. But if we want to keep them externally (not certain if they exist elsewhere), then that is also fine.
|
/fs-review |
|
🤖 Finished Review · ❌ Failure (validation failed after 1 iteration(s)) · Started 8:13 AM UTC · Completed 8:15 AM UTC Commit: Runtime: claude · Model: sonnet → claude-sonnet-4-6 · Effort: high |
0408433 to
6e35784
Compare
|
🤖 Finished Review · ❌ Failure (validation failed after 1 iteration(s)) · Started 10:17 AM UTC · Completed 10:19 AM UTC Commit: Runtime: claude · Model: claude-sonnet-4-5@20250929 · Effort: high |
|
🤖 Finished Review · ❌ Failure (validation failed after 1 iteration(s)) · Started 10:27 AM UTC · Completed 10:29 AM UTC Commit: Runtime: claude · Model: claude-sonnet-4-5@20250929 · Effort: high |
|
/fs-review |
|
🤖 Finished Review · ✅ Success · Started 12:04 PM UTC · Completed 12:26 PM UTC Commit: Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $8.81 |
|
Risk Assessment: moderate (2/5) DetailsModerate risk: large blast radius and substantial line count offset by no protected paths, no security-sensitive changes, good test coverage, experienced non-bot author, and mostly new files with low historical churn. |
ReviewFindingsMedium
Low
Next steps:
|
| * limitations under the License. | ||
| */ | ||
|
|
||
| import semver from 'semver'; |
There was a problem hiding this comment.
[low] import-organization
No blank line between third-party import (semver) and relative import. Sibling backstageVersion.ts uses blank lines between groups.
Suggested fix: Add blank line between semver and relative imports.
| @@ -0,0 +1,292 @@ | |||
| /* | |||
There was a problem hiding this comment.
[low] naming-coherence
The versions:lint alias mirrors the directory path of existing src/commands/versions/lint.ts utility module, potentially misleading contributors.
|
🤖 Finished Review · ❌ Failure (validation failed after 1 iteration(s)) · Started 12:53 PM UTC · Completed 12:55 PM UTC Commit: Runtime: claude · Model: claude-sonnet-4-5@20250929 · Effort: high |
…ngine (RHIDP-16665, RHIDP-16667) Assisted-by: opencode rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
- Use node:path instead of path - Reduce cognitive complexity in checkPluginDependencies and resolveRhdhVersion - Remove nested template literals in linter output - Use optional chaining for cached manifest - Deduplicate test setup fixtures in check-versions unit tests Assisted-by: opencode rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
Assisted-by: opencode rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
Assisted-by: opencode rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
…re blocks Assisted-by: opencode rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
- Fall back to main branch when targeting in-development releases before branch cuts - Support direct Backstage version specifiers (e.g. backstage:1.54.0 or 1.54.0) - Update 2.1.0 and main compatibility matrix to Backstage 1.54.0 Assisted-by: opencode rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
Assisted-by: opencode rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
Assisted-by: openai/gpt-5.6-terra rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
Assisted-by: openai/gpt-5.6-terra rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
b9deaf8 to
e9c5e7e
Compare
|
🤖 Review · ❌ Terminated · Started 12:58 PM UTC · Ended 1:00 PM UTC Commit: |
|
🤖 Finished Review · ❌ Failure (validation failed after 1 iteration(s)) · Started 12:58 PM UTC · Completed 1:00 PM UTC Commit: Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $0.13 |
Assisted-by: openai/gpt-5.6-terra rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
|
🤖 Finished Review · ❌ Failure (validation failed after 1 iteration(s)) · Started 1:16 PM UTC · Completed 1:17 PM UTC Commit: Runtime: claude · Model: opus → claude-opus-5 · Effort: high |
Assisted-by: openai/gpt-5.6-terra rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
|
🤖 Finished Review · ❌ Failure (validation failed after 1 iteration(s)) · Started 1:20 PM UTC · Completed 1:22 PM UTC Commit: Runtime: claude · Model: opus → claude-opus-5 · Effort: high |
Assisted-by: openai/gpt-5.6-terra rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
|
|
🤖 Finished Review · ❌ Failure (validation failed after 1 iteration(s)) · Started 3:48 PM UTC · Completed 3:49 PM UTC Commit: Runtime: claude · Model: opus → claude-opus-5 · Effort: high |
PatAKnight
left a comment
There was a problem hiding this comment.
Overall looks pretty good to me, just one final question.
|
🤖 Finished Retro · ✅ Success · Started 12:31 PM UTC · Completed 12:50 PM UTC Commit: Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $3.83 |
Retro: PR #176 – plugin check-versions commandTimeline
Review agent reliability: 1/10 success rateOf 10 review agent runs, 9 failed before producing any output:
The model alias This evidence corroborates several existing open issues (no new proposals filed):
Review quality: agent vs. humanThe human reviewer caught 5 design-level concerns the agent missed entirely: fallback-to-main giving wrong Backstage version, The agent's one medium finding ( Autonomy assessmentThis PR does not support increased agent review autonomy. The agent missed all domain-level design concerns, and the 9/10 infrastructure failure rate meant the single successful review arrived after the human had already provided the most impactful feedback. The repo's Proposals filed
|



Description
Implements RHIDP-16665 (RHDH-to-Backstage version mapping and manifest resolution) and RHIDP-16667 (
rhdh-cli plugin check-versions) under RHIDP-13609 / RHDHPLAN-985.Key Features
Version resolution engine (
src/lib/rhdhVersion.ts)release-X.Ybuild metadata, with a static compatibility-matrix fallback when metadata is unavailable.mainandnextfrom RHDHmain.backstage:<version>, including two-component versions such asbackstage:1.54.2.0,1.9,latest,stable,next, andmain.Compatibility linter (
src/commands/check-versions/)rhdh-cli plugin check-versions.dependencies,devDependencies, andpeerDependenciesagainst the resolved Backstage release manifest.match,mismatch,unmanifested, andunverifiabledependencies.backstage:^is reported as unverifiable because it is resolved during plugin export.--json.1for mismatched or unmanifested dependencies.Offline and air-gapped use
RHDH_OFFLINE=trueskips RHDH GitHub metadata lookup.--manifest-fileselects a local Backstage manifest.Release and documentation
2.0.5.Jira Issues
Verification
35passingyarn tsc