Skip to content

chore(deps): major dependency version upgrades#4478

Merged
devinea merged 20 commits intomainfrom
devDep_upgrades_major_p1
Mar 30, 2026
Merged

chore(deps): major dependency version upgrades#4478
devinea merged 20 commits intomainfrom
devDep_upgrades_major_p1

Conversation

@devinea
Copy link
Copy Markdown
Member

@devinea devinea commented Mar 27, 2026

Summary

Upgrades shared dependencies across the ~92-package monorepo to current versions, with hard constraints to prevent ESM-only packages, React 17+ upgrades, and breaking API changes.

Changes by Phase

  • Phase 1 — Alignment fixes: jest-environment-jsdom@29.7.0, @testing-library/jest-dom@6.9.1, prettier@3.x, js-yaml@4.x, typescript-eslint@8.57.2
  • Phase 2 — Storybook cleanup: @storybook/react@8.6.17, removed deprecated @storybook/addons
  • Phase 3 — Renovate config hardening: freeze rules for ESM-only packages (inquirer, memfs, mem-fs, yeoman-*, react-markdown, express)
  • Phase 4 — Minor/patch alignment: jest 30.3.0, babel-jest 30.3.0, i18next 25.x, ws 8.20.0, axios 1.13.6, @ui5/cli 4.0.50
  • Phase 5 — Safe major upgrades: xml-formatter@3, diff@8, commander@14, jest-when@4, jest-extended@7, tsconfig-paths@4
  • Phase 6 — Webpack loader upgrades: sass-loader@16, style-loader@4, css-loader@7
  • Phase 7 — Proxy/HTTP stack: https-proxy-agent@7.0.6 (capped; v8 is ESM-only), http-proxy-middleware@3.0.5
  • Phase 8 — Renovate freeze rules: chalk, open, figures, filenamify, os-name, minimatch, uuid, marked, react-i18next, storybook, ejs, applicationinsights, @sapui5/types, redux/react-redux/@reduxjs/toolkit, https-proxy-agent
  • Phase 9 — Trivial alignment: @types/yeoman-generator@5.2.14 in 13 packages, jest-environment-jsdom@^29.7.0 normalization, removed stale @types/diff from fiori-mcp-server

Frozen Dependencies (intentionally not upgraded)

Package Reason
inquirer@8 v9+ is ESM-only
mem-fs@2 / mem-fs-editor@9 v3+/v10+ have breaking API changes
yeoman-generator@5 / yeoman-environment@3 v6+/v4+ are ESM-only
react@16 / react-dom@16 Renovate hard-cap; enzyme requires React 16
react-markdown@5 v6+ is ESM-only
chalk@4 / open@8 / figures@3 v5+/v9+/v4+ are ESM-only
https-proxy-agent Capped at v7.x; v8 is type: module
redux / react-redux Safe only after React 18 migration
TypeScript Staying at 5.9.3; TS6 has too many breaking changes for this sprint

Test plan

  • pnpm nx run-many -t build — 92/92 projects pass
  • pnpm nx run-many -t lint — 95/95 projects pass (0 errors)
  • pnpm nx run-many -t test — 87/87 projects pass

devinea added 12 commits March 26, 2026 14:26
…ral packages

- Added constraints for mem-fs-editor, inquirer, memfs, yeoman packages, react-markdown, and express to specify allowed versions and provide descriptions regarding ESM-only requirements and breaking changes.
- Included a specific constraint for jest-environment-jsdom to prevent issues with enzyme-adapter-react-16 due to jsdom version conflicts.
- jest: 30.2.0 → 30.3.0 (root + @jest/types, babel-jest in workspace pkgs)
- @typescript-eslint/{eslint-plugin,parser,rule-tester}: align to 8.57.2
- eslint-plugin-eslint-plugin: 7.2.0 → 7.3.2
- eslint-plugin-jsdoc: 62.8.0 → 62.8.1
- @sap-devx/yeoman-ui-types: 1.22.0 → 1.23.0 (22 packages)
- i18next: 25.8.20 → 25.10.10 (46 packages); fix i18n.ts TFunction cast
- @ui5/cli: 4.0.49 → 4.0.50; @ui5/project: 4.0.14 → 4.0.15
- @langchain/core: 1.1.35 → 1.1.36
- @modelcontextprotocol/sdk: 1.27.1 → 1.28.0
- promptfoo: 0.121.2 → 0.121.3
- ws: 8.19.0 → 8.20.0
- xml-formatter: 2.6.1 → 3.7.0 (fe-fpm-writer)
- diff: 5.2.2 → 8.0.4 (create); @types/diff: 5.0.9 → 8.0.0
  - update trace.test.ts expected output (YAML diff formatting changed)
- commander: 9.4.0 → 14.0.3 (create, deploy-tooling)
  - fix: readonly Command[] type in getFeatureSummary
  - fix: use --help flag instead of help subcommand in test
- jest-when: 3.7.0 → 4.0.1 (feature-toggle); remove @types/jest-when
- jest-extended: 6.0.0 → 7.0.0 (7 packages)
- tsconfig-paths: ^3.15.0 → ^4.2.0 (jest-environment-ui5)
- fix: store/src/i18n.ts TFunction cast (missed in phase 4)
- sass-loader: 13.3.2 → 16.0.7 (ui-components, ui-prompting)
- style-loader: 3.3.3 → 4.0.0 (ui-components, ui-prompting)
- css-loader: 6.8.1 → 7.1.4 (ui-components, ui-prompting)
- https-proxy-agent: 5.0.1/7.0.5 → 7.0.6 (latest CJS-compatible; v8 is ESM-only)
  - axios-extension, backend-proxy-middleware, ui5-proxy-middleware
- http-proxy-middleware: 2.0.9 → 3.0.5 in control-property-editor (devDep only)
  - Aligns with other packages already on 3.0.5
  - No source changes needed (not actually used in code)
…erred packages

Add allowedVersions constraints for packages that must not be auto-upgraded:
- ESM-only at higher versions: chalk (<5), open (<9), figures (<4), filenamify (<5),
  os-name (<5), minimatch (<4), marked (<13), https-proxy-agent (<8)
- React 18 dependency: react-i18next (<16), storybook (<10)
- CJS API changes: uuid (<12 - removed CJS named exports)
- Deferred major upgrades: ejs (<4), applicationinsights (<3),
  @sapui5/types (<1.121.0), redux/react-redux/toolkit (react-redux v8+ hooks-only)
- @types/yeoman-generator: 5.2.11 → 5.2.14 in 13 packages (latest v5 patch)
- @types/diff: removed from fiori-mcp-server (@types/diff v8 is a stub; diff v8 ships
  own types; the package didn't use diff directly anyway)
- jest-environment-jsdom: normalize 29.7.0 → ^29.7.0 in ui-components, ui-prompting
  (cosmetic; matches jest-environment-ui5)
@devinea devinea requested review from a team as code owners March 27, 2026 01:15
@devinea devinea requested review from a team as code owners March 27, 2026 01:15
@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Mar 27, 2026

🦋 Changeset detected

Latest commit: 9270d2e

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

This PR includes changesets to release 49 packages
Name Type
@sap-ux/abap-deploy-config-inquirer Patch
@sap-ux/abap-deploy-config-sub-generator Patch
@sap-ux/adp-flp-config-sub-generator Patch
@sap-ux/adp-tooling Patch
@sap-ux/app-config-writer Patch
@sap-ux/axios-extension Patch
@sap-ux/backend-proxy-middleware Patch
@sap-ux/cap-config-writer Patch
@sap-ux/cds-odata-annotation-converter Patch
@sap-ux/cf-deploy-config-inquirer Patch
@sap-ux/cf-deploy-config-sub-generator Patch
@sap-ux/cf-deploy-config-writer Patch
@sap-ux/control-property-editor Patch
@sap-ux/create Patch
@sap-ux/deploy-config-generator-shared Patch
@sap-ux/deploy-config-sub-generator Patch
@sap-ux/deploy-tooling Patch
@sap-ux/environment-check Patch
@sap-ux/eslint-plugin-fiori-tools Patch
@sap-ux/fe-fpm-writer Patch
@sap-ux/feature-toggle Patch
@sap-ux/fiori-app-sub-generator Patch
@sap-ux/fiori-elements-writer Patch
@sap-ux/fiori-freestyle-writer Patch
@sap-ux/fiori-generator-shared Patch
@sap-ux/fiori-mcp-server Patch
@sap-ux/flp-config-inquirer Patch
@sap-ux/flp-config-sub-generator Patch
@sap-ux/generator-adp Patch
@sap-ux/generator-odata-downloader Patch
@sap-ux/ui-service-inquirer Patch
@sap-ux/backend-proxy-middleware-cf Patch
@sap-ux/preview-middleware Patch
@sap-ux/odata-service-inquirer Patch
@sap-ux/repo-app-import-sub-generator Patch
@sap-ux/system-access Patch
@sap-ux/ui-service-sub-generator Patch
@sap-ux/odata-cli Patch
@sap-ux/generator-simple-fe Patch
@sap-ux/ui5-application-inquirer Patch
@sap-ux/fiori-annotation-api Patch
@sap-ux/fe-fpm-cli Patch
@sap-ux/inquirer-common Patch
@sap-ux/ui5-library-reference-sub-generator Patch
@sap-ux/ui5-library-sub-generator Patch
@sap-ux/abap-deploy-config-writer Patch
@sap-ux/annotation-generator Patch
@sap-ux/ui5-library-inquirer Patch
@sap-ux/ui5-library-reference-inquirer 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

@devinea devinea changed the title chore(deps): major dependency version upgrades (phases 1-9) chore(deps): major dependency version upgrades Mar 27, 2026
IainSAP
IainSAP previously approved these changes Mar 27, 2026
Copy link
Copy Markdown
Contributor

@IainSAP IainSAP left a comment

Choose a reason for hiding this comment

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

Thanks @devinea

  • Updates for (my) relevant modules are straightforward

54 patch changesets covering all public packages affected by phases 1-9:
- jest 29 → 30, babel-jest, @jest/types aligned
- i18next 24 → 25 (TFunction cast fixes in i18n.ts files)
- @types/yeoman-generator 5.2.11 → 5.2.14 (13 packages)
- Major upgrades: xml-formatter 2→3, diff 5→8, commander 9→14,
  jest-when 3→4, tsconfig-paths 3→4
- Webpack loaders: sass-loader 13→16, style-loader 3→4, css-loader 6→7
- prettier 2→3, js-yaml 3→4, typescript-eslint 8.46→8.57
- https-proxy-agent capped at 7.0.6, http-proxy-middleware 2→3
- @testing-library/jest-dom 5→6, storybook 8.4→8.6
- Add changeset for @sap-ux-private/preview-middleware-client
- Add changeset for @sap-ux/sap-systems-ext-webapp
- Update AGENTS.md: clarify private packages still require changesets
  even though they are not published to npm
devinea added 2 commits March 27, 2026 12:37
…ades

- Replace @storybook/addons 7.6.20 with @storybook/manager-api 8.6.17
- Upgrade @storybook/react + @storybook/react-webpack5: 8.4.2 → 8.6.17
- Upgrade sass-loader 13→16, style-loader 3→4, css-loader 6→7
- Upgrade ws 8.19.0 → 8.20.0
- Update source imports from @storybook/addons → @storybook/manager-api
* origin/main:
  chore: apply latest changesets
  fix(btp-utils,deploy-tooling): allow deployment to OnPremise destinations with odata_gen WebIDEUsage (#4471)
cianmSAP
cianmSAP previously approved these changes Mar 27, 2026
Copy link
Copy Markdown
Contributor

@cianmSAP cianmSAP left a comment

Choose a reason for hiding this comment

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

Dependency updates look good

Copy link
Copy Markdown
Contributor

@heimwege heimwege left a comment

Choose a reason for hiding this comment

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

See comments. version bumps are fine but there are some code adjustments I don't understand

815are
815are previously approved these changes Mar 27, 2026
Copy link
Copy Markdown
Contributor

@815are 815are left a comment

Choose a reason for hiding this comment

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

checked ui-components, ui-prompting, fpm-writer:

  1. changes straightforward;
  2. tested with storybook
  3. changesets exists

- odata-vocabularies/jest.config.js: clarify comment that debug-update-vocabularies.test.ts
  is intentionally kept skipped (debug-only helper, not a regular test)
- 15 changeset files: correct descriptions to mention @sap-devx/yeoman-ui-types 1.22.0 → 1.23.0
  as a runtime dependency upgrade (not devDependencies-only)
@devinea devinea dismissed stale reviews from 815are and cianmSAP via 7c08273 March 27, 2026 13:07
Copy link
Copy Markdown
Contributor

@heimwege heimwege left a comment

Choose a reason for hiding this comment

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

  • version bumps lgtm
  • code changes relate to adjusted versions
  • great test coverage
  • did NOT test manually
  • review comments addressed

Copy link
Copy Markdown
Contributor

@IainSAP IainSAP left a comment

Choose a reason for hiding this comment

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

Thanks @devinea

  • Re-approving

@sonarqubecloud
Copy link
Copy Markdown

Copy link
Copy Markdown
Contributor

@longieirl longieirl left a comment

Choose a reason for hiding this comment

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

Changes look good. Reviewed the modules that impact me and that I'm aware of.
Changesets are good.

@devinea devinea merged commit c53a4ba into main Mar 30, 2026
17 checks passed
@devinea devinea deleted the devDep_upgrades_major_p1 branch March 30, 2026 14:59
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.

6 participants