Skip to content

chore(FR-2892): bump @cloudscape-design/board-components 3.0.60 -> 3.0.176 and regenerate local patch#7410

Merged
graphite-app[bot] merged 1 commit into
mainfrom
05-14-chore_fr-2892_bump_cloudscape-design_board-components_3.0.60_-_3.0.176_and_regenerate_local_patch
May 14, 2026
Merged

chore(FR-2892): bump @cloudscape-design/board-components 3.0.60 -> 3.0.176 and regenerate local patch#7410
graphite-app[bot] merged 1 commit into
mainfrom
05-14-chore_fr-2892_bump_cloudscape-design_board-components_3.0.60_-_3.0.176_and_regenerate_local_patch

Conversation

@yomybaby
Copy link
Copy Markdown
Member

@yomybaby yomybaby commented May 14, 2026

Resolves #7408(FR-2892)

Summary

Bumps @cloudscape-design/board-components from 3.0.60 to 3.0.176 and regenerates the local patch against the new sources. Also adds @cloudscape-design/components (^3.0.1280) as a direct dependency, because 3.0.176 introduced a runtime import that the bare peer-dep declaration no longer satisfies in this repo.

3.0.176 is the latest version that satisfies the repo's 7-day minimumReleaseAge quarantine in pnpm-workspace.yaml (3.0.178 is newer but still inside the quarantine window).

Patch decision: kept + regenerated

The local patch is kept because upstream 3.0.176 still does not:

  • Expose className on BoardProps / BoardItemProps (used by BAIBoard.tsx to style the board wrapper and items).
  • Provide stable class-name selectors — the CSS-module class hashes rotate on every minor bump. We append stable bai_board_* / bai_grid_item suffixes so that BAIBoard.tsx styling and the E2E suite (e2e/start/start-page.spec.ts, e2e/dashboard/dashboard.spec.ts, e2e/utils/classes/common/StartPage.ts) can locate elements deterministically.

The regenerated patch is also cleaner than the 3.0.60 version: fixes a String → string type bug, uses the upstream clsx(...) pattern instead of hand-rolled string concat, and drops Prettier-formatted noise that bloated the prior diff (264 lines → 196 lines).

New direct dependency: @cloudscape-design/components

board-components PR #362 ("UAP directional controls and tooltips", merged 2025-06-24) made the drag/resize handles delegate to InternalDragHandle from @cloudscape-design/components/internal/do-not-use/drag-handle. Every version from that change onward (3.0.149+) carries the same import.

In 3.0.60 we got away with @cloudscape-design/components being a bare peer dep — nothing pulled it in at runtime, so pnpm never installed it. With 3.0.176 the import is real, and pnpm dev fails at vite pre-bundle with Missing "./internal/do-not-use/drag-handle" specifier in "@cloudscape-design/components" package. scripts/verify.sh does not catch this (TypeScript doesn't verify external-module subpath existence).

Mitigations:

  • Pinned to ^3.0.1280 — the same minimum-release-age quarantine applies, so pnpm resolves to a stable, ≥7-day-old version.
  • @cloudscape-design/components declares narrow sideEffects (CSS + base-component only), so Rollup tree-shaking should keep the production bundle close to "just the drag-handle module + its CSS". Install footprint (~37 MB / 5,558 files in node_modules) is the real cost, not bundle weight.

Side effect: fewer Vite serving-allow-list warnings on dev

The dev server used to print recurring warnings like:

The request url ".../@cloudscape-design/board-components/3.0.60/.../internal/screenreader-grid-navigation/styles.scoped.css" is outside of Vite serving allow list.

caused by absolute paths baked into the published 3.0.60 source maps. 3.0.176 refactored the board internals and removed the ScreenReaderGridNavigation module entirely, so the offending sourcemap reference is gone and the warning no longer fires.

Incidental lockfile changes

pnpm install reconciled a few unrelated rows:

  • vite@6.4.1 → 6.4.2 in the @vitest/browser snapshot.
  • eslint-plugin-import re-resolved @typescript-eslint/parser between two existing variants — no new packages added.
  • @cloudscape-design/design-tokens@3.0.51 removed from the snapshot (upstream dropped it as a peer dep). Verified no direct imports of @cloudscape-design/design-tokens exist in react/src or packages/backend.ai-ui/src, so no action needed.

Follow-up

Filing a Jira follow-up to migrate BAIBoard styling and E2E selectors away from injected bai_* class hooks (use data-testid instead). That would reduce future bumps to "just the className interface delta" or eliminate the patch entirely if upstream accepts a className upstream-PR.

Test plan

  • pnpm install --frozen-lockfile applies cleanly.
  • pnpm dev boots: vite pre-bundle succeeds, tsc --watch reports 0 errors, board page reachable at https://fr-2892.localhost:1356.
  • Open /start (and /dashboard): drag a board card across slots, resize a card width, reload — layout persists.
  • pnpm exec playwright test e2e/start/start-page.spec.ts e2e/dashboard/dashboard.spec.ts passes against a real cluster.

Copy link
Copy Markdown
Member Author


How to use the Graphite Merge Queue

Add either label to this PR to merge it via the merge queue:

  • flow:merge-queue - adds this PR to the back of the merge queue
  • flow:hotfix - for urgent changes, fast-track this PR to the front of the merge queue

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has required the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions github-actions Bot added the size:XL 500~ LoC label May 14, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 14, 2026

Coverage Report for react-coverage (./react)

Status Category Percentage Covered / Total
🔵 Lines 6.45% 1783 / 27632
🔵 Statements 5.3% 1978 / 37268
🔵 Functions 5.18% 296 / 5713
🔵 Branches 3.71% 1293 / 34787
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
react/src/components/BAIBoard.tsx 0% 0% 0% 0% 10-226
Generated in workflow #689 for commit 98d5479 by the Vitest Coverage Report Action

@yomybaby yomybaby marked this pull request as ready for review May 14, 2026 03:19
Copilot AI review requested due to automatic review settings May 14, 2026 03:19
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Bumps @cloudscape-design/board-components from 3.0.60 to 3.0.176 (the latest version satisfying the 7-day minimumReleaseAge quarantine), regenerates the local patch against the new sources, and reconciles the lockfile. The patch is still required because upstream does not expose className on BoardProps/BoardItemProps and the CSS-module class hashes are unstable across releases — both are needed by BAIBoard.tsx styling and Playwright E2E selectors.

Changes:

  • Upgrade @cloudscape-design/board-components 3.0.60 → 3.0.176 in react/package.json, pnpm-workspace.yaml, and pnpm-lock.yaml.
  • Replace react/patches/@cloudscape-design__board-components@3.0.60.patch with a regenerated …@3.0.176.patch (cleaner: String → string, uses clsx(...) instead of hand-rolled string concat, drops Prettier noise).
  • Incidental lockfile churn: vite 6.4.1 → 6.4.2 in a @vitest/browser snapshot, eslint-plugin-import re-resolves between two existing @typescript-eslint/parser variants, and @cloudscape-design/design-tokens@3.0.51 is dropped (no longer a peer dep; verified no direct imports).

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
react/package.json Bumps @cloudscape-design/board-components to 3.0.176.
pnpm-workspace.yaml Updates patchedDependencies key + path to the new patch file.
pnpm-lock.yaml Reflects the version bump, new patch hash, dropped design-tokens peer, and incidental resolver swaps.
react/patches/@cloudscape-design__board-components@3.0.60.patch Removed (superseded).
react/patches/@cloudscape-design__board-components@3.0.176.patch New regenerated patch: adds className?: string to BoardProps/BoardItemProps, threads className via clsx, and appends stable bai_board_* / bai_grid_item selectors used by BAIBoard.tsx and the E2E suite.
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

@yomybaby yomybaby force-pushed the 05-14-chore_fr-2892_bump_cloudscape-design_board-components_3.0.60_-_3.0.176_and_regenerate_local_patch branch 2 times, most recently from 8a6206c to 8796061 Compare May 14, 2026 06:34
@yomybaby yomybaby requested a review from nowgnuesLee May 14, 2026 06:35
@nowgnuesLee nowgnuesLee force-pushed the 05-14-chore_fr-2892_bump_cloudscape-design_board-components_3.0.60_-_3.0.176_and_regenerate_local_patch branch from 8796061 to 557f41e Compare May 14, 2026 07:18
Copy link
Copy Markdown
Contributor

@nowgnuesLee nowgnuesLee left a comment

Choose a reason for hiding this comment

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

LGTM

@graphite-app
Copy link
Copy Markdown

graphite-app Bot commented May 14, 2026

Merge activity

…0.176 and regenerate local patch (#7410)

Resolves #7408([FR-2892](https://lablup.atlassian.net/browse/FR-2892))

## Summary

Bumps `@cloudscape-design/board-components` from **3.0.60** to **3.0.176** and regenerates the local patch against the new sources. Also adds `@cloudscape-design/components` (`^3.0.1280`) as a direct dependency, because 3.0.176 introduced a runtime import that the bare peer-dep declaration no longer satisfies in this repo.

3.0.176 is the latest version that satisfies the repo's 7-day `minimumReleaseAge` quarantine in `pnpm-workspace.yaml` (3.0.178 is newer but still inside the quarantine window).

## Patch decision: kept + regenerated

The local patch is **kept** because upstream 3.0.176 still does not:
- Expose `className` on `BoardProps` / `BoardItemProps` (used by `BAIBoard.tsx` to style the board wrapper and items).
- Provide stable class-name selectors — the CSS-module class hashes rotate on every minor bump. We append stable `bai_board_*` / `bai_grid_item` suffixes so that `BAIBoard.tsx` styling and the E2E suite (`e2e/start/start-page.spec.ts`, `e2e/dashboard/dashboard.spec.ts`, `e2e/utils/classes/common/StartPage.ts`) can locate elements deterministically.

The regenerated patch is also cleaner than the 3.0.60 version: fixes a `String → string` type bug, uses the upstream `clsx(...)` pattern instead of hand-rolled string concat, and drops Prettier-formatted noise that bloated the prior diff (264 lines → 196 lines).

## New direct dependency: `@cloudscape-design/components`

board-components PR [#362](cloudscape-design/board-components#362) ("UAP directional controls and tooltips", merged 2025-06-24) made the drag/resize handles delegate to `InternalDragHandle` from `@cloudscape-design/components/internal/do-not-use/drag-handle`. Every version from that change onward (3.0.149+) carries the same import.

In 3.0.60 we got away with `@cloudscape-design/components` being a bare peer dep — nothing pulled it in at runtime, so pnpm never installed it. With 3.0.176 the import is real, and `pnpm dev` fails at vite pre-bundle with `Missing "./internal/do-not-use/drag-handle" specifier in "@cloudscape-design/components" package`. `scripts/verify.sh` does not catch this (TypeScript doesn't verify external-module subpath existence).

Mitigations:
- Pinned to `^3.0.1280` — the same minimum-release-age quarantine applies, so pnpm resolves to a stable, ≥7-day-old version.
- `@cloudscape-design/components` declares narrow `sideEffects` (CSS + base-component only), so Rollup tree-shaking should keep the production bundle close to "just the drag-handle module + its CSS". Install footprint (~37 MB / 5,558 files in `node_modules`) is the real cost, not bundle weight.

## Side effect: fewer Vite serving-allow-list warnings on dev

The dev server used to print recurring warnings like:

```
The request url ".../@cloudscape-design/board-components/3.0.60/.../internal/screenreader-grid-navigation/styles.scoped.css" is outside of Vite serving allow list.
```

caused by absolute paths baked into the published 3.0.60 source maps. 3.0.176 refactored the board internals and removed the `ScreenReaderGridNavigation` module entirely, so the offending sourcemap reference is gone and the warning no longer fires.

## Incidental lockfile changes

`pnpm install` reconciled a few unrelated rows:
- `vite@6.4.1 → 6.4.2` in the `@vitest/browser` snapshot.
- `eslint-plugin-import` re-resolved `@typescript-eslint/parser` between two existing variants — no new packages added.
- `@cloudscape-design/design-tokens@3.0.51` removed from the snapshot (upstream dropped it as a peer dep). Verified no direct imports of `@cloudscape-design/design-tokens` exist in `react/src` or `packages/backend.ai-ui/src`, so no action needed.

## Follow-up

Filing a Jira follow-up to migrate `BAIBoard` styling and E2E selectors away from injected `bai_*` class hooks (use `data-testid` instead). That would reduce future bumps to "just the `className` interface delta" or eliminate the patch entirely if upstream accepts a `className` upstream-PR.

## Test plan

- [x] `pnpm install --frozen-lockfile` applies cleanly.
- [x] `pnpm dev` boots: `vite` pre-bundle succeeds, `tsc --watch` reports 0 errors, board page reachable at `https://fr-2892.localhost:1356`.
- [ ] Open `/start` (and `/dashboard`): drag a board card across slots, resize a card width, reload — layout persists.
- [ ] `pnpm exec playwright test e2e/start/start-page.spec.ts e2e/dashboard/dashboard.spec.ts` passes against a real cluster.

[FR-2892]: https://lablup.atlassian.net/browse/FR-2892?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
@graphite-app graphite-app Bot force-pushed the 05-14-chore_fr-2892_bump_cloudscape-design_board-components_3.0.60_-_3.0.176_and_regenerate_local_patch branch from 557f41e to 98d5479 Compare May 14, 2026 07:19
@graphite-app graphite-app Bot merged commit 98d5479 into main May 14, 2026
12 checks passed
@graphite-app graphite-app Bot deleted the 05-14-chore_fr-2892_bump_cloudscape-design_board-components_3.0.60_-_3.0.176_and_regenerate_local_patch branch May 14, 2026 07:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL 500~ LoC

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update BAIBoard's claudescape dependency and review whether local patch is still needed

3 participants