Skip to content

chore: upgrade stale dependencies - #2114

Merged
tassoevan merged 14 commits into
mainfrom
chore/upgrade-some-deps
Jul 22, 2026
Merged

tassoevan merged 14 commits into
mainfrom
chore/upgrade-some-deps

Conversation

@tassoevan

Copy link
Copy Markdown
Member

Proposed changes (including videos or screenshots)

Maintenance pass upgrading stale build/tooling dependencies across the monorepo. Each change was verified so that lint passes and generated outputs stay unchanged where a package produces build artifacts.

  • ESLint → v10 (eslint 9→10, typescript-eslint, eslint-plugin-react-hooks 5→7, globals 16→17). Wrapped eslint-plugin-react with @eslint/compat's fixupPluginRules (it still relies on APIs removed in ESLint 10) and pinned @types/eslint-scope to resolve a type conflict. eslint-plugin-storybook stays on 9.x (its latest requires a Storybook v10 upgrade, out of scope).
  • webpack & loaders (webpack 5.108, webpack-cli 6→7, sass-loader 16→17, ts-loader). Dropped the redundant direct webpack dependency from fuselage-forms (it builds with tsc; webpack is transitive via @storybook/react-webpack5). Fixed a Storybook sass-loader regression (v17 changed how the implementation option loads).
  • Sass & PostCSS toolchain (sass 1.101, postcss 8.5.20, postcss-logical 8→9, postcss-dir-pseudo-class 9→10, cssnano 7→8). The generated @rocket.chat/fuselage bundle (CSS + JS) is byte-for-byte identical and all 505 visual-regression tests pass.
  • stylelint & plugins (stylelint 17.14, stylelint-scss 7.2).
  • turbo 2.9→2.10, stylis 4.3→4.4.
  • sharp 0.34→0.35 — @rocket.chat/logo output (incl. the rasterized logo.png) is byte-for-byte identical despite the bundled libvips bump.
  • style-dictionary 5.4→5.5 — @rocket.chat/fuselage-tokens output is byte-for-byte identical.
  • rollup 4.60→4.62 — dist output of all four rollup-built packages (emitter, css-in-js, fuselage-hooks, mp3-encoder) is byte-for-byte identical.

Some packages could not reach their absolute-latest version because this repo enforces a 3-day minimum-package-age gate (npmMinimalAgeGate); those were taken to the newest version that clears the gate.

Issue(s)

Further comments

yarn lint --force passes, yarn build-storybook succeeds, and the @rocket.chat/fuselage visual-regression suite passes (505/505). For every package that emits build artifacts, the generated output was diffed against a pre-upgrade baseline and confirmed unchanged.

tassoevan and others added 12 commits July 21, 2026 16:00
Bumps eslint 9.39.5 -> 10.7.0, typescript-eslint -> 8.64.0, eslint-plugin-react-hooks -> 7.1.1,
and globals -> 17.7.0 across the workspace. Wraps eslint-plugin-react with @eslint/compat's
fixupPluginRules since it still relies on APIs ESLint 10 removed, and pins
@types/eslint-scope to 9.1.0 to resolve a type conflict with ESLint 10's updated Scope types
(a stale transitive type package pulled in by webpack). eslint-plugin-storybook stays on 9.x
since its latest requires a Storybook v10 upgrade, which is out of scope here.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Bumps webpack 5.105.4 -> 5.108.4, webpack-cli 6.0.1 -> 7.2.1,
sass-loader 16.0.8 -> 17.0.0, and ts-loader 9.5.7 -> 9.6.2 in fuselage.
Also drops the redundant direct webpack dependency from fuselage-forms,
which builds with tsc and only uses webpack transitively via
@storybook/react-webpack5 (matching its sibling Storybook-only packages).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bumps sass 1.100.0 -> 1.101.0, postcss 8.5.19 -> 8.5.20, and the PostCSS
plugins postcss-logical 8.1.0 -> 9.0.0, postcss-dir-pseudo-class 9.0.1 ->
10.0.0, and cssnano 7.1.9 -> 8.0.2. The csstools plugin majors drop their
CommonJS API but are imported via ESM in webpack.config.js. The generated
fuselage bundle (CSS + JS) is byte-for-byte identical, and the 505 visual
regression tests pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bumps stylelint 17.12.0 -> 17.14.0 (across fuselage, fuselage-tokens,
icons, and the build tooling) and stylelint-scss 7.1.1 -> 7.2.0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The generated @rocket.chat/logo output (logo.png, logo.svg, and the full
dist tree) is byte-for-byte identical despite the bundled libvips bump
(8.17.3 -> 8.18.3).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The generated @rocket.chat/fuselage-tokens dist output is byte-for-byte
identical.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bumps rollup across emitter, css-in-js, fuselage-hooks, and mp3-encoder
(the @rollup plugins were already at their latest versions). The generated
dist output of all four packages is byte-for-byte identical.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@tassoevan
tassoevan requested a review from a team July 22, 2026 13:46
@changeset-bot

changeset-bot Bot commented Jul 22, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: a14ea2d

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@rocket.chat/css-in-js Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

ggazzo
ggazzo previously approved these changes Jul 22, 2026
@tassoevan
tassoevan dismissed ggazzo’s stale review July 22, 2026 13:53

actually at least one package need a patch changeset

Only @rocket.chat/css-in-js had a runtime dependency upgraded (stylis
4.3.6 -> 4.4.0). All other upgrades were dev/peer dependencies or in
private tooling packages, which do not warrant a release.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@tassoevan
tassoevan marked this pull request as draft July 22, 2026 13:54
…ible

The script is launched via `sh`, which on Ubuntu CI is dash (not bash),
so the bash-only `${BASH_SOURCE[0]}` expanded to empty and the Playwright
version lookup resolved to a non-existent packages/package.json, failing
the visual-regression job. Resolve the tool's package.json from the
already-computed MONOREPO_ROOT instead, and replace the bash `[[ ]]` test
with a POSIX `case` so --update-snapshots detection also works under dash.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@tassoevan
tassoevan marked this pull request as ready for review July 22, 2026 14:33
@tassoevan
tassoevan requested a review from ggazzo July 22, 2026 14:46
@mergify

mergify Bot commented Jul 22, 2026

Copy link
Copy Markdown

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

@tassoevan
tassoevan merged commit 9f17e22 into main Jul 22, 2026
7 checks passed
@tassoevan
tassoevan deleted the chore/upgrade-some-deps branch July 22, 2026 15:02
@github-actions github-actions Bot mentioned this pull request Jul 22, 2026
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