Skip to content

feat(releases): add release family filter, sorting, and target alignment to TV/FV Delta - #1067

Open
dimakis wants to merge 4 commits into
mainfrom
feat/tv-fv-product-filter-and-targets
Open

feat(releases): add release family filter, sorting, and target alignment to TV/FV Delta#1067
dimakis wants to merge 4 commits into
mainfrom
feat/tv-fv-product-filter-and-targets

Conversation

@dimakis

@dimakis dimakis commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Release family filter: Filter pills (All, RHOAI 3.6, RHOAI 3.5, RHELAI 3.2, etc.) that group EA1/EA2/GA milestones together. Families are discovered from the full dataset, not just filtered view.
  • Column sorting: All executive summary columns are sortable with asc → desc → clear cycling. Default sort follows release family order (product alpha → version desc → milestone asc: EA1 < EA2 < GA).
  • Target alignment column: Shows target alignment % based on days-to-GA thresholds (≤30d→100%, ≤60d→95%, ≤90d→90%*). Color-coded red/green vs actual alignment. Asterisk denotes unconfirmed targets. Shows dash for releases without GA dates.

New composable useReleaseFamily with full test coverage (57 tests): release name parsing, family extraction, product identification, version comparison/sorting, and target alignment thresholds.

Also triggers a frontend image rebuild (CI path-based detection), which will fix the PM Hub sorting that wasn't deployed due to identical git trees on the previous squash-merge.

Test plan

  • 45 unit tests for useReleaseFamily composable (parsing, sorting, filtering, targets)
  • 12 view-level tests for TvFvDeltaView (filter pills, sorting, target column rendering)
  • ESLint clean
  • Visual verification on deployed instance

🤖 Generated with Claude Code

dimakis and others added 3 commits June 17, 2026 14:55
…t alignment utilities

Composable (useReleaseFamily) provides:
- Release name parsing: product/major/minor/milestone extraction
- Product filtering with RHOAI default
- Release family sort order (EA1 < EA2 < GA, newer versions first)
- Column sorting with asc/desc/clear cycling
- Target alignment thresholds (≤30d→100%*, ≤60d→95%*, ≤90d→90%*)

36 tests covering parsing, sorting, filtering, and thresholds.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
…ent to TV/FV Delta

- Product filter pill bar (RHOAI/RHELAI/RHAII/All) defaults to RHOAI
- Executive summary table columns are now sortable (asc/desc/clear)
- Default sort: release family order (EA1 < EA2 < GA, newer first)
- New "Target" column shows alignment targets based on days-to-GA:
  ≤30d → 100%*, ≤60d → 95%*, ≤90d → 90%* (asterisk = unconfirmed)
- Target colored red/green based on actual vs target alignment
- 12 view-level tests covering filter, sort, and target rendering

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Filter pills now show release families (e.g. "RHOAI 3.6", "RHOAI 3.5",
"RHELAI 3.2") instead of just product names. Each family groups its
milestones (EA1, EA2, GA). Defaults to All. Family discovery uses the
full API data, not just the picker-filtered subset.

57 tests passing.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@dimakis
dimakis requested a review from saprabhu05 as a code owner June 17, 2026 13:56
@claude

claude Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Claude finished @dimakis's task in 3m 34s —— View job


PR Review: feat(releases): add release family filter, sorting, and target alignment to TV/FV Delta

  • Gather context and read review instructions
  • Read all changed files
  • Review against hard constraints and checklist
  • Fix any issues found
  • Run tests and lint
  • Post findings and verdict

Verdict: PASS

Clean PR. Well-structured composable with comprehensive test coverage (57 tests). No hard constraint violations, no security issues, no bugs.

Fixed (1)

  • Incorrect comment in useReleaseFamily.js:38 — alphabetical sort order was listed as rhelai < rhaii < rhoai but should be rhaii < rhelai < rhoai (the code itself was correct via localeCompare). Fixed in 081afbf.

No issues found in

  • Security — no user input handling, no injection vectors
  • Correctness — parsing, sorting, filtering, and target alignment logic all correct; edge cases (null dates, unparseable names, z-stream versions) handled properly
  • Hard constraints — no cross-module imports, no TypeScript, no process.env reads, no new API routes needing OpenAPI annotations
  • PerformancetargetForRow() and daysToGa() are called multiple times per row in the template, but the functions are trivially cheap (arithmetic + date construction), so this is fine

Note: Integration Tests

This PR modifies a module view (TvFvDeltaView.vue) with non-trivial UI logic (filtering, sorting). An integration test file exists at tests/integration/releases.spec.js but wasn't updated in this PR. The unit and view-level tests (57 total) provide good coverage of the new functionality, but the review policy expects integration test updates for structural view changes. Consider updating the integration tests to cover the new filter pills and sorting behavior in a follow-up.

Tests & Lint

All 4825 tests pass across 268 test files. ESLint clean.

rhaii < rhelai < rhoai (not rhelai < rhaii < rhoai)
if (!pa) return 1
if (!pb) return -1

// Product alphabetical (rhaii < rhelai < rhoai)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The comment had the wrong alphabetical order — rhaii (r-h-a-i-i) sorts before rhelai (r-h-e-l-a-i). Fixed in 081afbf.

@accorvin

Copy link
Copy Markdown
Member

@dimakis do you still care about this PR? It's been open for a while.

@dimakis

dimakis commented Jul 18, 2026

Copy link
Copy Markdown
Contributor Author

Hey Alex. Yea. But there's still some issues with the release tags/ labels. It's still effecting this page and the pm hub page.
I'm looking to fix it and I'll rebase and edit this then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants