You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ru...@apache.org on 2026/02/03 06:35:44 UTC
(superset) 08/08: chore(frontend): remove deprecated dependencies and update documentation
This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a commit to branch chore/ts-migration-dashboard
in repository https://gitbox.apache.org/repos/asf/superset.git
commit fce0b2ea96bc61513d7f037e3f18b59f898891c9
Author: Evan Rusackas <ev...@rusackas.com>
AuthorDate: Tue Feb 3 07:18:17 2026 +0100
chore(frontend): remove deprecated dependencies and update documentation
- Remove prop-types (unused since TypeScript migration)
- Remove react-hot-loader, @hot-loader/react-dom (replaced by React Refresh)
- Remove babel-plugin-typescript-to-proptypes (obsolete with full TypeScript)
- Update use-query-params to ^2.2.2 (required for adapters/react-router-5)
- Update docs: Enzyme → React Testing Library, MainPreset.js → .ts
- Clean up webpack vendors chunk and babel.config.js
Note: Run `npm install` in superset-frontend to complete the dependency update.
Co-Authored-By: Claude Opus 4.5 <no...@anthropic.com>
---
docs/developer_portal/contributing/development-setup.md | 2 +-
docs/developer_portal/contributing/howtos.md | 2 +-
superset-frontend/babel.config.js | 3 ---
superset-frontend/package.json | 6 +-----
superset-frontend/src/preamble.ts | 6 ------
superset-frontend/src/views/App.tsx | 3 +--
superset-frontend/webpack.config.js | 6 ------
7 files changed, 4 insertions(+), 24 deletions(-)
diff --git a/docs/developer_portal/contributing/development-setup.md b/docs/developer_portal/contributing/development-setup.md
index fdddbf1af55..a543eb24442 100644
--- a/docs/developer_portal/contributing/development-setup.md
+++ b/docs/developer_portal/contributing/development-setup.md
@@ -788,7 +788,7 @@ pytest ./link_to_test.py
### Frontend Testing
-We use [Jest](https://jestjs.io/) and [Enzyme](https://airbnb.io/enzyme/) to test TypeScript/JavaScript. Tests can be run with:
+We use [Jest](https://jestjs.io/) and [React Testing Library](https://testing-library.com/docs/react-testing-library/intro/) to test TypeScript. Tests can be run with:
```bash
cd superset-frontend
diff --git a/docs/developer_portal/contributing/howtos.md b/docs/developer_portal/contributing/howtos.md
index cb52bd5b4c9..e4469dfb07a 100644
--- a/docs/developer_portal/contributing/howtos.md
+++ b/docs/developer_portal/contributing/howtos.md
@@ -100,7 +100,7 @@ npm link superset-plugin-chart-hello-world
```
7. **Import and register in Superset**:
-Edit `superset-frontend/src/visualizations/presets/MainPreset.js` to include your plugin.
+Edit `superset-frontend/src/visualizations/presets/MainPreset.ts` to include your plugin.
## Testing
diff --git a/superset-frontend/babel.config.js b/superset-frontend/babel.config.js
index fc1acf1bab4..9689190c92f 100644
--- a/superset-frontend/babel.config.js
+++ b/superset-frontend/babel.config.js
@@ -52,9 +52,6 @@ module.exports = {
['@babel/plugin-transform-private-methods', { loose: true }],
['@babel/plugin-transform-nullish-coalescing-operator', { loose: true }],
['@babel/plugin-transform-runtime', { corejs: 3 }],
- // only used in packages/superset-ui-core/src/chart/components/reactify.tsx
- ['babel-plugin-typescript-to-proptypes', { loose: true }],
- 'react-hot-loader/babel',
[
'@emotion/babel-plugin',
{
diff --git a/superset-frontend/package.json b/superset-frontend/package.json
index 61113fe9d81..1b0ff7f6e46 100644
--- a/superset-frontend/package.json
+++ b/superset-frontend/package.json
@@ -178,7 +178,6 @@
"mustache": "^4.2.0",
"nanoid": "^5.1.6",
"ol": "^7.5.2",
- "prop-types": "^15.8.1",
"query-string": "6.14.1",
"re-resizable": "^6.11.2",
"react": "^17.0.2",
@@ -189,7 +188,6 @@
"react-dnd-html5-backend": "^11.1.3",
"react-dom": "^17.0.2",
"react-google-recaptcha": "^3.1.0",
- "react-hot-loader": "^4.13.1",
"react-intersection-observer": "^10.0.2",
"react-json-tree": "^0.20.0",
"react-lines-ellipsis": "^0.16.1",
@@ -217,7 +215,7 @@
"urijs": "^1.19.8",
"use-event-callback": "^0.1.0",
"use-immer": "^0.11.0",
- "use-query-params": "^1.1.9",
+ "use-query-params": "^2.2.2",
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz",
"yargs": "^17.7.2"
},
@@ -242,7 +240,6 @@
"@cypress/react": "^8.0.2",
"@emotion/babel-plugin": "^11.13.5",
"@emotion/jest": "^11.14.2",
- "@hot-loader/react-dom": "^17.0.2",
"@istanbuljs/nyc-config-typescript": "^1.0.1",
"@mihkeleidast/storybook-addon-source": "^1.0.1",
"@playwright/test": "^1.58.0",
@@ -293,7 +290,6 @@
"babel-plugin-dynamic-import-node": "^2.3.3",
"babel-plugin-jsx-remove-data-test-id": "^3.0.0",
"babel-plugin-lodash": "^3.3.4",
- "babel-plugin-typescript-to-proptypes": "^2.0.0",
"baseline-browser-mapping": "^2.9.19",
"cheerio": "1.2.0",
"concurrently": "^9.2.1",
diff --git a/superset-frontend/src/preamble.ts b/superset-frontend/src/preamble.ts
index 5fce7ccab02..4595e822ebd 100644
--- a/superset-frontend/src/preamble.ts
+++ b/superset-frontend/src/preamble.ts
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { setConfig as setHotLoaderConfig } from 'react-hot-loader';
import { configure, LanguagePack } from '@apache-superset/core/ui';
import { makeApi, initFeatureFlags, SupersetClient } from '@superset-ui/core';
import { extendedDayjs as dayjs } from '@superset-ui/core/utils/dates';
@@ -40,11 +39,6 @@ import 'dayjs/plugin/localizedFormat';
configure();
-// Set hot reloader config
-if (process.env.WEBPACK_MODE === 'development') {
- setHotLoaderConfig({ logLevel: 'debug', trackTailUpdates: false });
-}
-
// Grab initial bootstrap data
const bootstrapData = getBootstrapData();
diff --git a/superset-frontend/src/views/App.tsx b/superset-frontend/src/views/App.tsx
index f4d301558a8..87df93f8b28 100644
--- a/superset-frontend/src/views/App.tsx
+++ b/superset-frontend/src/views/App.tsx
@@ -17,7 +17,6 @@
* under the License.
*/
import { Suspense, useEffect } from 'react';
-import { hot } from 'react-hot-loader/root';
import {
BrowserRouter as Router,
Switch,
@@ -110,4 +109,4 @@ const App = () => (
</Router>
);
-export default hot(App);
+export default App;
diff --git a/superset-frontend/webpack.config.js b/superset-frontend/webpack.config.js
index 14e9171aa6b..dc88c2f16f7 100644
--- a/superset-frontend/webpack.config.js
+++ b/superset-frontend/webpack.config.js
@@ -224,7 +224,6 @@ if (isDevMode) {
// A Superset webpage normally includes two JS bundles in dev, `theme.ts` and
// the main entrypoint. Only the main entry should have the dev server client,
// otherwise the websocket client will initialize twice, creating two sockets.
- // Ref: https://github.com/gaearon/react-hot-loader/issues/141
PREAMBLE.unshift(
`webpack-dev-server/client?http://${devserverHost}:${devserverPort}`,
);
@@ -355,16 +354,11 @@ const config = {
`/node_modules/(${[
'react',
'react-dom',
- 'prop-types',
- 'react-prop-types',
- 'prop-types-extra',
'redux',
'react-redux',
- 'react-hot-loader',
'react-sortable-hoc',
'react-table',
'react-ace',
- '@hot-loader.*',
'webpack.*',
'@?babel.*',
'lodash.*',