From 082a7b54b32110351354bb38ca1848afeb083f16 Mon Sep 17 00:00:00 2001 From: philippe Date: Tue, 11 Aug 2026 09:29:10 -0400 Subject: [PATCH] Make plotly-cloud a default install dependency plotly-cloud is now installed by default with dash instead of only via the optional dash[cloud] extra. The extra is kept for backward compatibility. Update the plotly CLI ImportError hint to no longer point at dash[cloud]. Closes #3513 --- CHANGELOG.md | 1 + dash/_plotly_cli.py | 3 ++- requirements/install.txt | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ec0a56a44..a7d6b3d060 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ This project adheres to [Semantic Versioning](https://semver.org/). ## [Unreleased] ### Added +- [] Make `plotly-cloud` a default install dependency of Dash instead of an optional extra, so the `plotly` CLI and Dash's cloud integration are available out of the box. The `dash[cloud]` extra is kept for backward compatibility. Closes [#3513](https://github.com/plotly/dash/issues/3513). - [#3646](https://github.com/plotly/dash/pull/3646) Experimental support for React 19. The default is still React 18.3.1; to use React 19 set the environment variable `REACT_VERSION=19.2.4` before running your app, or call `dash._dash_renderer._set_react_version("19.2.4")` inside the app. React 19 has no official UMD builds, so Dash serves the [`umd-react`](https://www.npmjs.com/package/umd-react) package, together with a compatibility shim loaded after react-dom and before any component package. The shim keeps component libraries built against React <=18 (e.g. dash-bootstrap-components, dash-mantine-components) working under React 19: it stubs the removed `ReactCurrentOwner` internals, redirects the legacy element `$$typeof` symbol so pre-bundled React 18 jsx-runtimes produce elements React 19 accepts (error #525), and exposes a global `react/jsx-runtime` (`window.ReactJSXRuntime`) that Dash's own component bundles externalize to. Component library authors adopting this convention should copy the defensive `jsxRuntimeExternal` webpack external from `components/dash-core-components/webpack.config.js` rather than a bare `'ReactJSXRuntime'` string: it falls back to a `React.createElement`-based runtime when the global is missing, so the same build also works on Dash versions older than this release. ### Removed diff --git a/dash/_plotly_cli.py b/dash/_plotly_cli.py index 9974cd23b9..4456962746 100644 --- a/dash/_plotly_cli.py +++ b/dash/_plotly_cli.py @@ -9,7 +9,8 @@ def cli(): except ImportError: print( "Plotly cloud is not installed," - " install it with `pip install dash[cloud]` to use the plotly command", + " install it with `pip install plotly-cloud` (or reinstall dash)" + " to use the plotly command", file=sys.stderr, ) sys.exit(-1) diff --git a/requirements/install.txt b/requirements/install.txt index 176d9c8f5e..d5be51096d 100644 --- a/requirements/install.txt +++ b/requirements/install.txt @@ -1,6 +1,7 @@ Flask>=1.0.4,<3.2 Werkzeug<3.2 plotly>=5.0.0 +plotly-cloud importlib-metadata typing_extensions>=4.1.1 requests