Skip to content

Version 4.5.0rc2 (master) - #4084

Merged
T4rk1n merged 40 commits into
masterfrom
master-4.5.0rc2
Oct 23, 2026
Merged

T4rk1n merged 40 commits into
masterfrom
master-4.5.0rc2

Conversation

@T4rk1n

@T4rk1n T4rk1n commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

Bring master up to date with dev for the 4.5.0rc2 release and commit the built distribution artifacts.

Commits

  1. Merge origin/dev into master (all 4.5.0rc2 source, from Version 4.5.0rc2 #4083).
  2. Version 4.5.0rc2 build artifacts: rebuilt component and renderer bundles.

Artifacts (13 files)

  • Rebuilt dash/dcc, dash/html, dash/dash_table bundles and package-info.json, and the renderer dash_renderer.min.js/dev.js.
  • No generated .py changes, and no new or removed runtime files since rc1.

Verification

  • Dash app instantiates with dcc.Location(refresh=True) and a DataTable; versions report dash 4.5.0rc2, renderer 3.5.2, dcc/html 4.5.2, dash-table 7.5.2.
  • Every runtime resource in _js_dist / deps is tracked, same set as rc1.

brandonschabell and others added 30 commits October 2, 2026 19:29
Bumps the npm-dependencies group with 2 updates in the /components/dash-html-components directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) and [webpack-sources](https://github.com/webpack/webpack-sources).


Updates `@types/node` from 26.6.2 to 26.6.5
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `webpack-sources` from 3.5.1 to 3.6.0
- [Release notes](https://github.com/webpack/webpack-sources/releases)
- [Changelog](https://github.com/webpack/webpack-sources/blob/main/CHANGELOG.md)
- [Commits](webpack/webpack-sources@v3.5.1...v3.6.0)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 26.6.5
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: npm-dependencies
- dependency-name: webpack-sources
  dependency-version: 3.6.0
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: npm-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps the npm-dependencies group with 3 updates in the /dash/dash-renderer directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [@types/ws](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ws) and [webpack-sources](https://github.com/webpack/webpack-sources).


Updates `@types/node` from 26.6.2 to 26.6.5
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `@types/ws` from 8.18.1 to 8.18.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ws)

Updates `webpack-sources` from 3.5.1 to 3.6.0
- [Release notes](https://github.com/webpack/webpack-sources/releases)
- [Changelog](https://github.com/webpack/webpack-sources/blob/main/CHANGELOG.md)
- [Commits](webpack/webpack-sources@v3.5.1...v3.6.0)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 26.6.5
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: npm-dependencies
- dependency-name: "@types/ws"
  dependency-version: 8.18.2
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: npm-dependencies
- dependency-name: webpack-sources
  dependency-version: 3.6.0
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: npm-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps the npm-dependencies group with 2 updates in the /components/dash-core-components directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) and [webpack-sources](https://github.com/webpack/webpack-sources).


Updates `@types/node` from 26.6.2 to 26.6.5
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `webpack-sources` from 3.5.1 to 3.6.0
- [Release notes](https://github.com/webpack/webpack-sources/releases)
- [Changelog](https://github.com/webpack/webpack-sources/blob/main/CHANGELOG.md)
- [Commits](webpack/webpack-sources@v3.5.1...v3.6.0)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 26.6.5
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: npm-dependencies
- dependency-name: webpack-sources
  dependency-version: 3.6.0
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: npm-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
…updates

Bumps the npm-dependencies-security group with 3 updates in the /@plotly/dash-jupyterlab directory: [fast-uri](https://github.com/fastify/fast-uri), [lodash-es](https://github.com/lodash/lodash) and [minimist](https://github.com/minimistjs/minimist).
Bumps the npm-dependencies-security group with 1 update in the /@plotly/eslint-config-dash directory: [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse).


Updates `fast-uri` from 3.1.7 to 3.1.8
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](fastify/fast-uri@v3.1.7...v3.1.8)

Updates `fast-uri` from 3.1.7 to 3.1.8
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](fastify/fast-uri@v3.1.7...v3.1.8)

Updates `lodash-es` from 4.17.23 to 4.18.1
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](lodash/lodash@4.17.23...4.18.1)

Updates `minimist` from 1.2.5 to 1.2.8
- [Changelog](https://github.com/minimistjs/minimist/blob/main/CHANGELOG.md)
- [Commits](minimistjs/minimist@v1.2.5...v1.2.8)

Updates `minimist` from 1.2.5 to 1.2.8
- [Changelog](https://github.com/minimistjs/minimist/blob/main/CHANGELOG.md)
- [Commits](minimistjs/minimist@v1.2.5...v1.2.8)

Updates `@babel/traverse` from 7.16.3 to 7.29.10
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.29.10/packages/babel-traverse)

Updates `@babel/traverse` from 7.16.3 to 7.29.10
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.29.10/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-version: 7.29.10
  dependency-type: indirect
  dependency-group: npm-dependencies-security
- dependency-name: fast-uri
  dependency-version: 3.1.8
  dependency-type: indirect
  dependency-group: npm-dependencies-security
- dependency-name: lodash-es
  dependency-version: 4.18.1
  dependency-type: indirect
  dependency-group: npm-dependencies-security
- dependency-name: minimist
  dependency-version: 1.2.8
  dependency-type: indirect
  dependency-group: npm-dependencies-security
...

Signed-off-by: dependabot[bot] <support@github.com>
numpy<=2.2.6 kept CI on a numpy that has no Python 3.14 wheels and
never tested the numpy 2.5 that users get on 3.13/3.14. Python 3.9 jobs
still resolve to numpy 2.0.2.
plotly-cloud is not on conda-forge, so as a hard dependency the dash
conda-forge package can't be built for 4.5.0. It stays installable with
dash[cloud], and Dash already handles it being absent. Reverts #3947.
- fastapi: run before_request hooks on every route, when mounted and on the
  WebSocket handshake, and send a hook's returned response.
- Background callbacks: key results per run when cache_by is unset and per
  callback always, so equal inputs never share another request's result.
- dcc.Location(refresh=True).href and html.Area.href go through clean_url.
- Pages path_template matching: no IndexError or regex backtracking on
  pathnames containing a newline.
- MCP: build the callback adapter collection per request so values computed
  for one user are not served to another.
Bump numpy cap in CI requirements to 2.5.4
- fastapi: accept Flask style (body, headers) and string status hook tuples.
- Log a before_request hook failure before rejecting a WebSocket; Quart now
  runs before_request hooks on the WebSocket handshake too.
- Diskcache: expire uncached background results after a day so results nobody
  polls for do not pile up.
- MCP: keep the cached callback map, keyed by configure_mcp_server(cache_by=...)
  so apps can cache per user; a failing cache_by returns a JSON-RPC error.
- Sanitize html.Base href.
Move plotly-cloud back to the optional cloud extra
Fix security findings reported against 4.5.0rc1
fix(renderer): clear paths for null children
@sonarqubecloud

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown
Contributor

Dash performance benchmarks

⚠️ regressions to review

scenario metric p90 (ms) median growth baseline p90 note
⚠️ full_children_replace replace_ms 5107.0 1827.7 21.18x 4697.1 1.3x baseline (norm)
⚠️ initial_render_small render_ms 115.3 78.7 1.29x 104.0 1.4x baseline (norm)
✅ callback_chain chain_ms 429.2 413.0 0.94x 499.1
✅ callback_chain graph_ms 2.5 2.5 1.0x 2.4
✅ callback_fanout fanout_ms 80.4 69.2 0.85x 92.5
✅ deep_nesting render_ms 50.8 48.6 1.02x 56.8
✅ initial_render_large render_ms 496.8 464.7 1.02x 694.4
✅ patch_append_nested append_ms 112.5 80.6 2.54x 192.3
✅ patch_append_toplevel append_ms 99.8 73.8 2.17x 140.2
✅ patch_scalar_update_large update_ms 124.9 107.6 0.99x 202.9
✅ wildcard_all_resolve wildcard_ms 253.0 235.6 0.96x 313.6
✅ wildcard_all_resolve graph_ms 1.0 1.0 1.0x 1.3

growth = late-third / early-third per-op time; ~1 is flat, a large value means the per-op cost scales with accumulated state.

machine scale vs baseline: 0.82x - divided out of the baseline ratios so they compare like for like (the absolute warn/fail ceilings are left un-scaled); calibrated on initial_render_small.

@T4rk1n
T4rk1n merged commit c673687 into master Oct 23, 2026
59 of 60 checks passed
@T4rk1n
T4rk1n deleted the master-4.5.0rc2 branch October 23, 2026 16:01
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.

3 participants