Skip to content

fix(RHOAIENG-55746): rename odh-u-spin to ai-u-spin#7362

Open
jenny-s51 wants to merge 2 commits intoopendatahub-io:mainfrom
jenny-s51:RHOAIENG-55746
Open

fix(RHOAIENG-55746): rename odh-u-spin to ai-u-spin#7362
jenny-s51 wants to merge 2 commits intoopendatahub-io:mainfrom
jenny-s51:RHOAIENG-55746

Conversation

@jenny-s51
Copy link
Copy Markdown
Contributor

@jenny-s51 jenny-s51 commented Apr 22, 2026

https://issues.redhat.com/browse/RHOAIENG-55746

Description

Rename odh-u-spinai-u-spin to align with the shared utility class now provided by mod-arch-shared. Bump mod-arch-shared to ^1.15.4 in packages that use the class.

How Has This Been Tested?

Verified inline spinners (workbench start/stop, model serving status) on a dev cluster. Rotation animation works as before.

Test Impact

Updated existing kueue unit test for the renamed class. No new tests needed — class rename only.

Request review criteria:

Self checklist (all need to be checked):

  • The developer has manually tested the changes and verified that the changes work
  • Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
  • The developer has added tests or explained why testing cannot be added (unit or cypress tests for related changes)
  • The code follows our Best Practices (React coding standards, PatternFly usage, performance considerations)

After the PR is posted & before it merges:

  • The developer has tested their solution on a cluster by using the image produced by the PR to main

Made with Cursor

Summary by CodeRabbit

  • Documentation

    • Updated CSS/PatternFly naming conventions documentation with revised utility class patterns.
  • Style

    • Updated spinner animation CSS class references across multiple components to align with new naming conventions; no visual changes.
  • Chores

    • Upgraded shared module dependency versions across multiple frontend packages.

Migrate the spin utility class to the shared ai-u-spin class from
mod-arch-shared. Bump mod-arch-shared to ^1.15.4 across packages.

Made-with: Cursor
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 22, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign manaswinidas for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 22, 2026

📝 Walkthrough

Walkthrough

This PR migrates spinner animation styling and updates CSS naming conventions. A documentation update establishes new odh- namespacing rules for block/element/modifier classes and introduces a shared utility category ai-u-{name}. The implementation updates spinner animations across multiple components from odh-u-spin to ai-u-spin in the CSS definition and ~9 component files, with corresponding test assertion updates. Dependencies on mod-arch-shared are upgraded across three frontend packages to newer versions (^1.5.0 or ^1.2.0 → ^1.15.4).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~14 minutes

Security and actionable concerns

Dependency version bumps require verification:

  • mod-arch-shared upgrades span multiple minor versions (1.5.0→1.15.4, 1.2.0→1.15.4). Review the package changelog/security advisories for breaking changes or known vulnerabilities in the intermediate versions. Verify dependency lock files are updated consistently.

CSS class namespace migration incompleteness:

  • Search the entire codebase for remaining references to odh-u-spin. The diff shows updates across multiple files, but grep for orphaned references to prevent runtime style loss. Verify .odh-u-spin CSS definition is removed or deprecated to avoid confusion.

Semantic naming risk:

  • The new ai-u- utility prefix could be mistaken for AI-specific functionality. If this is truly a generic shared utility, consider clarifying documentation to prevent misuse across modules (e.g., using ai-u-spin in non-AI contexts).
🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically summarizes the main change: renaming a CSS utility class and includes the issue reference.
Description check ✅ Passed The description covers all required sections: issue reference, detailed change explanation, testing approach, test impact rationale, and a completed developer checklist.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@packages/automl/frontend/package.json`:
- Line 116: Replace the invalid dependency version spec for mod-arch-shared in
package.json (currently "^1.15.4") with a published version (e.g., "1.10.1" or
"^1.10.1"); update the package.json entry for "mod-arch-shared" to a valid npm
release and then run your package manager (npm/pnpm/yarn) to regenerate/update
the lockfile so all workspaces resolve to the same published version.

In `@packages/gen-ai/frontend/package.json`:
- Line 105: The package.json declares mod-arch-shared@^1.15.4 while
mod-arch-shared@1.15.4 requires mod-arch-core >=1.15.4, but package.json
currently lists mod-arch-core@^1.2.0—update the dependency versions to satisfy
the peer (either bump mod-arch-core to ^1.15.4 or align mod-arch-shared to a
compatible version), then regenerate the lockfile
(packages/gen-ai/frontend/package-lock.json) by running npm install so the
lockfile no longer references mod-arch-shared@1.2.0 and the dependency graph is
consistent.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 8cbd89b9-e0ad-4ae5-9ee9-2e9134dac984

📥 Commits

Reviewing files that changed from the base of the PR and between 06561b0 and 5e65167.

⛔ Files ignored due to path filters (1)
  • packages/notebooks/upstream/workspaces/frontend/package.json is excluded by !**/upstream/**
📒 Files selected for processing (14)
  • .claude/rules/css-patternfly.md
  • frontend/src/app/App.scss
  • frontend/src/concepts/kueue/__tests__/index.spec.ts
  • frontend/src/concepts/kueue/index.ts
  • frontend/src/concepts/modelServing/ModelStatusIcon.tsx
  • frontend/src/concepts/notebooks/NotebookStatusLabel.tsx
  • frontend/src/concepts/notebooks/StartNotebookModal.tsx
  • frontend/src/concepts/pipelines/content/PipelineComponentStatusIcon.tsx
  • frontend/src/pages/modelRegistrySettings/ModelRegistryTableRowStatus.tsx
  • frontend/src/pages/projects/screens/detail/notebooks/NotebookImageDisplayName.tsx
  • packages/automl/frontend/package.json
  • packages/autorag/frontend/package.json
  • packages/eval-hub/frontend/src/app/components/EvaluationStatusLabel.tsx
  • packages/gen-ai/frontend/package.json

"lodash-es": "^4.17.15",
"mod-arch-core": "^1.6.0",
"mod-arch-shared": "^1.5.0",
"mod-arch-shared": "^1.15.4",
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.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check the other two packages' mod-arch-shared versions to confirm consistency across the monorepo.
fd -t f 'package.json' | xargs rg -nP '"mod-arch-shared"\s*:\s*"[^"]+"'

Repository: opendatahub-io/odh-dashboard

Length of output: 492


🌐 Web query:

mod-arch-shared changelog 1.6.0 through 1.15.4 breaking changes

💡 Result:

No breaking changes identified in mod-arch-shared from versions 1.6.0 through the latest available (1.10.1 as of 2026-03-04). The project uses semantic versioning with automated minor and patch releases via semantic-release. Major versions (breaking changes) require manual release and are blocked from automation; no major versions in this range. Key changes observed: - Dependency updates (e.g., lodash-es 4.17.21 -> 4.17.23, ajv 6.12.6 -> 6.14.0) - typically non-breaking. - New components added (e.g., FieldGroupHelpLabelIcon, manage columns abstraction). - Bug fixes (e.g., cross-work dependencies, theming scopes). - Release process improvements. Major architectural shift: Split from monolithic 'mod-arch-shared' to separate packages mod-arch-core, mod-arch-shared, mod-arch-kubeflow. Previously: npm install mod-arch-shared. Now: npm install mod-arch-core mod-arch-shared mod-arch-kubeflow. Update imports accordingly (e.g., core providers from mod-arch-core, components from mod-arch-shared). Review individual release notes and compare views for full details: - https://github.com/opendatahub-io/mod-arch-library/releases - opendatahub-io/mod-arch-library@1.6.0...1.8.0 - opendatahub-io/mod-arch-library@1.10.0...1.10.1 No evidence of version 1.15.4; highest found is 1.10.1. Packages published to npm as monorepo.

Citations:


🏁 Script executed:

#!/bin/bash
# Check if 1.15.4 is locked in package-lock.json or yarn.lock
find packages -name "package-lock.json" -o -name "yarn.lock" | head -5 | xargs -I {} sh -c 'echo "=== {} ===" && (grep -A 2 -B 2 "mod-arch-shared" {} | head -20 || echo "not found")'

# Also check root-level lock files
ls -la | grep -E "(package-lock|yarn.lock)" || echo "No lock files in root"

# Search for version 1.15.4 anywhere in the repo
rg "1\.15\.4" --type json -l

Repository: opendatahub-io/odh-dashboard

Length of output: 2361


🏁 Script executed:

#!/bin/bash
# Search for release information or tags about newer versions
rg "1\.(11|12|13|14|15)" --type json | grep -E "(version|release|tag)" | head -20

# Check if there's any npm registry information or changelog in the repo
find . -name "CHANGELOG*" -o -name "releases.json" -o -name "versions.txt" 2>/dev/null | head -10

# Look for any reference to mod-arch-shared version constraints or resolution
rg "mod-arch-shared" -A 3 -B 3 packages/automl/frontend/package-lock.json | head -50

Repository: opendatahub-io/odh-dashboard

Length of output: 1583


🏁 Script executed:

#!/bin/bash
# Check for npm overrides or resolution strategies in root package.json
rg -A 20 "overrides|resolutions" packages/automl/frontend/package.json || echo "No overrides found"

# Check root monorepo package.json for workspace constraints
rg -A 5 "mod-arch-shared" package.json 2>/dev/null || echo "No root reference found"

# Look for any .npmrc or similar configuration
find . -maxdepth 2 -name ".npmrc" -o -name "npm-shrinkwrap.json" 2>/dev/null | xargs cat 2>/dev/null || echo "No npm config found"

# Check actual released versions of mod-arch-shared from GitHub
# Search repo for any comments about version mismatch
rg "1\.15\.4|version.*1\.15" -B 3 -A 3 packages/automl/frontend/

Repository: opendatahub-io/odh-dashboard

Length of output: 12501


Fix mod-arch-shared version specification — 1.15.4 does not exist.

The caret constraint ^1.15.4 points to a non-existent version. The latest released version is 1.10.1 (as of March 2026), with 1.11.0 available in some lock files. npm silently falls back to 1.9.1, creating a mismatch between package.json intent and actual installations. Lock files across packages (automl: 1.9.1, autorag: 1.11.0) confirm inconsistent resolution. Update to a valid version that exists on npm.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/automl/frontend/package.json` at line 116, Replace the invalid
dependency version spec for mod-arch-shared in package.json (currently
"^1.15.4") with a published version (e.g., "1.10.1" or "^1.10.1"); update the
package.json entry for "mod-arch-shared" to a valid npm release and then run
your package manager (npm/pnpm/yarn) to regenerate/update the lockfile so all
workspaces resolve to the same published version.

"immer": "^11.1.3",
"mod-arch-core": "^1.2.0",
"mod-arch-shared": "^1.2.0",
"mod-arch-shared": "^1.15.4",
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.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== Published metadata for mod-arch-shared@1.15.4 =="
npm view mod-arch-shared@1.15.4 version peerDependencies dependencies --json

echo
echo "== Local gen-ai imports from mod-arch-shared =="
rg -n -C2 --type=ts --type=tsx "from ['\"]mod-arch-shared['\"]|import\\(['\"]mod-arch-shared['\"]\\)" packages/gen-ai/frontend/src || true

echo
echo "== Lockfile/package references to mod-arch-shared =="
fd -t f 'package-lock\.json$|npm-shrinkwrap\.json$|package\.json$' | while read -r file; do
  if rg -q '"mod-arch-shared"|node_modules/mod-arch-shared' "$file"; then
    echo ">>> $file"
    rg -n -C2 '"mod-arch-shared"|node_modules/mod-arch-shared' "$file"
  fi
done

echo
echo "== Inspect published package declarations for expected exports =="
tmpdir="$(mktemp -d)"
trap 'rm -rf "$tmpdir"' EXIT

tarball="$(npm pack --silent mod-arch-shared@1.15.4 --pack-destination "$tmpdir")"
tar -xzf "$tmpdir/$tarball" -C "$tmpdir"

rg -n -C2 \
  "DashboardEmptyTableView|useCheckboxTableBase|K8sResourceCommon|ApplicationsPage|EmptyStateErrorMessage|\\bTable\\b" \
  "$tmpdir/package" \
  --glob '*.d.ts' \
  --glob '*.ts' \
  --glob '*.tsx' \
  --glob '*.js' \
  --glob '*.mjs' \
  --glob '*.cjs' || true

Repository: opendatahub-io/odh-dashboard

Length of output: 30740


Peer dependency mismatch will cause install failure.

Line 105 declares mod-arch-shared@^1.15.4, but mod-arch-shared@1.15.4 requires mod-arch-core >=1.15.4 as a peer dependency. The file declares mod-arch-core@^1.2.0 on line 104, which does not satisfy the >=1.15.4 constraint. This incompatibility will fail during npm install/resolution. Additionally, the lockfile (packages/gen-ai/frontend/package-lock.json) still references mod-arch-shared@1.2.0, indicating the lockfile is out of sync and must be regenerated.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/gen-ai/frontend/package.json` at line 105, The package.json declares
mod-arch-shared@^1.15.4 while mod-arch-shared@1.15.4 requires mod-arch-core
>=1.15.4, but package.json currently lists mod-arch-core@^1.2.0—update the
dependency versions to satisfy the peer (either bump mod-arch-core to ^1.15.4 or
align mod-arch-shared to a compatible version), then regenerate the lockfile
(packages/gen-ai/frontend/package-lock.json) by running npm install so the
lockfile no longer references mod-arch-shared@1.2.0 and the dependency graph is
consistent.

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 22, 2026

@jenny-s51: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/odh-mod-arch-autorag-pr-image-mirror 5e65167 link true /test odh-mod-arch-autorag-pr-image-mirror
ci/prow/odh-mod-arch-automl-pr-image-mirror 5e65167 link true /test odh-mod-arch-automl-pr-image-mirror
ci/prow/odh-mod-arch-gen-ai-pr-image-mirror 5e65167 link true /test odh-mod-arch-gen-ai-pr-image-mirror
ci/prow/images 5e65167 link true /test images

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant