Skip to content

build(deps): update dependencies - #4837

Merged
alexander-akait merged 3 commits into
mainfrom
build/update-dependencies
Aug 28, 2026
Merged

build(deps): update dependencies#4837
alexander-akait merged 3 commits into
mainfrom
build/update-dependencies

Conversation

@alexander-akait

Copy link
Copy Markdown
Member

Summary

Update every dependency whose new version still runs on the Node.js the packages declare (>=20.9.0) and CI tests, plus changesets v3 — its new major needs Node.js ^22.11 || ^24 || >=26, which the release workflow's lts/* satisfies.

Two updates needed code changes:

  • webpack 5.110 strips TypeScript types through module.stripTypeScriptTypes, so building a .ts entry now carries Node's experimental-API warning on stderr. That is upstream behaviour the CLI should not hide, so the config-format tests filter that one warning instead of asserting an empty stderr.
  • @changesets/get-github-info v1 reshaped its API (getInfogetCommitInfo, getInfoFromPullRequestgetPullRequestInfo, a {commit, pull, author} object carrying markdownLink instead of a flat links map, and undefined when the commit or pull request is not found). The changelog generator follows it and keeps its output byte-identical.

toml@5 is also accepted as a peer dependency — its parse export is unchanged, which is all the on-demand loader uses.

Held back, each needing a Node.js newer than the declared baseline: commander 15 (>=22.12, and a runtime dependency of both published packages), execa 10 (>=22, used by tests that run on the Node.js 20.x job). typescript 7 is held back because typescript-eslint does not support it yet, so lint:code refuses to run.

What kind of change does this PR introduce?

build

Did you add tests for your changes?

No new tests — existing ones cover it. test/build/config-format/** was updated for the webpack 5.110 warning, and the changelog generator's output was checked against the previous implementation over every entry shape it handles (plain summary, no commit, PR: in summary, PR: plus commit: override, author: override, multi-line body, and the three dependency-line cases) — all byte-identical, with npm run version additionally exercised end to end.

Does this PR introduce a breaking change?

No. The toml peer range only widens, and the Node.js baseline is unchanged.

If relevant, what needs to be documented once your changes are merged or what have you already documented?

n/a

Use of AI

Claude Code was used to survey outdated packages, check each candidate's engines against the supported Node.js versions, bisect the test failures to the webpack bump, write the changelog-generator migration, and run the verification described above. All changes were reviewed before committing.


Generated by Claude Code

Refresh every dependency whose new version still runs on the Node.js baseline
the packages declare (>=20.9.0) and CI tests: eslint, webpack, sass, cspell,
prettier, lint-staged, js-yaml, tsx, @swc/core, @types/node, @inquirer/*,
webpack-bundle-analyzer and pkg-pr-new.

webpack 5.110 strips TypeScript types through `module.stripTypeScriptTypes`,
so builds of a `.ts` entry now carry Node's experimental-API warning on
stderr. That is upstream behaviour the CLI should not hide, so the config
format tests filter the warning instead of asserting an empty stderr.

Also accept `toml@5` as a peer dependency — its `parse` export is unchanged,
which is all the on-demand loader uses.

Held back, each needing a Node.js newer than the declared baseline: commander
15 (>=22.12, and a runtime dependency of both published packages), execa 10
(>=22), @changesets/cli 3 and @changesets/get-github-info 1 (^22.11 || ^24 ||
>=26). TypeScript 7 is held back too: typescript-eslint does not support it
yet, so `lint:code` refuses to run.
The release workflow runs on `lts/*`, which satisfies the Node.js the new
major asks for (^22.11 || ^24 || >=26).

`@changesets/get-github-info` v1 reshaped its API: `getInfo` is now
`getCommitInfo`, `getInfoFromPullRequest` is `getPullRequestInfo`, both return
`{commit, pull, author}` objects carrying a `markdownLink` instead of a flat
`links` map, and either can return undefined when the commit or pull request
is not found. The changelog generator follows, and keeps its output
byte-identical for every entry shape it handles.

Also point the config `$schema` at `@changesets/config@4.0.0`, which the new
major ships.
@changeset-bot

changeset-bot Bot commented Aug 28, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: e2218aa

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

This PR includes changesets to release 1 package
Name Type
webpack-cli 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

@socket-security

socket-security Bot commented Aug 28, 2026

Copy link
Copy Markdown

@socket-security

socket-security Bot commented Aug 28, 2026

Copy link
Copy Markdown

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
Obfuscated code: npm yargs is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/jest@30.4.2npm/yargs@17.7.3

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/yargs@17.7.3. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

@github-actions

github-actions Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

This PR is packaged and the instant preview is available (99cfc4f).

Install it locally:

  • npm
npm i -D create-webpack-app@https://pkg.pr.new/create-webpack-app@99cfc4f webpack-cli@https://pkg.pr.new/webpack-cli@99cfc4f
  • yarn
yarn add -D create-webpack-app@https://pkg.pr.new/create-webpack-app@99cfc4f webpack-cli@https://pkg.pr.new/webpack-cli@99cfc4f
  • pnpm
pnpm add -D create-webpack-app@https://pkg.pr.new/create-webpack-app@99cfc4f webpack-cli@https://pkg.pr.new/webpack-cli@99cfc4f

@codecov

codecov Bot commented Aug 28, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.78%. Comparing base (11be634) to head (e2218aa).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #4837      +/-   ##
==========================================
- Coverage   94.80%   94.78%   -0.02%     
==========================================
  Files          14       14              
  Lines        5406     5406              
  Branches      799      799              
==========================================
- Hits         5125     5124       -1     
- Misses        280      281       +1     
  Partials        1        1              

see 1 file with indirect coverage changes


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 11be634...e2218aa. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

`.c8rc.json` sets `exclude-after-remap`, so c8 source-map remaps every
script V8 reported — all of node_modules included — before applying its
`packages/*/src` include filter. On macOS runners that peaked at 2033 MB
against Node.js 20's 2078 MB default cap: every test passed and the process
then died merging coverage.

Updating webpack to 5.110 grows what has to be remapped (measured over
`test/build/config-format`: 99 MB of V8 coverage across 55 files before,
103 MB across 60 after), which is more than the 45 MB of headroom that job
had left. Node.js 22 and newer, and the Linux and Windows runners, have room
to spare and were unaffected.
@alexander-akait
alexander-akait merged commit 99cfc4f into main Aug 28, 2026
40 of 41 checks passed
@alexander-akait
alexander-akait deleted the build/update-dependencies branch August 28, 2026 09: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.

1 participant