You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by "dosubot[bot] (via GitHub)" <gi...@apache.org> on 2026/05/02 03:11:27 UTC
Re: [D] [TypeScript] Complete migration: Convert remaining 285 JavaScript files (8.7%) [superset]
GitHub user dosubot[bot] edited a comment on the discussion: [TypeScript] Complete migration: Convert remaining 285 JavaScript files (8.7%)
<!-- Greeting -->
Hi @siddhitripathi25! I'm [Dosu](https://go.dosu.dev/dosubot) and I’m helping the superset team.
<!-- Answer -->
Here's what the migration landscape looks like and answers to your questions:
**Legacy plugins:** The current consensus is to migrate/refactor legacy plugins (like rose, partition, map-box, deck.gl) to TypeScript and modern best practices, rather than deprecate or archive them outright. They're still actively configured and shipped as part of the main plugin preset, and are included in the TypeScript project—there's no explicit exclusion or deprecation plan unless a new architecture or library offers clear advantages. The intention is to eventually drop the "legacy" prefix once they meet modern standards. See [MainPreset.js](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-frontend/src/visualizations/presets/MainPreset.js#L25-L193) and [plugin package.json](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-frontend/plugins/legacy-plugin-chart-rose/package.json#L1-L39).
**TypeScript patterns for Redux:** Superset uses explicit TypeScript interfaces for state and action payloads, discriminated union types for actions, and typed thunk actions with `Dispatch` from redux. Actions are functions returning typed objects, and reducers use union types for actions and Record types for state. See recent migration PRs for concrete patterns: [PR #35147](https://github.com/apache/superset/pull/35147), [PR #35045](https://github.com/apache/superset/pull/35045), and [nativeFilters.ts](https://github.com/apache/superset/blob/master/superset-frontend/src/dashboard/actions/nativeFilters.ts).
**PR approach:** Maintainers strongly prefer many small, focused PRs (by directory or feature) over large ones for easier review and maintainability. Start with simple, isolated files or controls as pilots, then expand the pattern. See [discussion](https://github.com/apache/superset/issues/35655#issuecomment-3407079814).
**Files/directories to exclude:** Only generator test files (`./packages/generator-superset/test/**/*`) are excluded from migration in `tsconfig.json`. The deprecated dashboard code (`src/dashboard/deprecated`) is excluded from linting in `.eslintignore` and may be considered out of scope. All plugin and core source directories—including legacy plugins—are included in the TypeScript project and are candidates for migration. See [tsconfig.json](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-frontend/tsconfig.json#L24-L35) and [.eslintignore](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-frontend/.eslintignore#L0-L35).
**Migration tracking label:** There is no explicit mention of a `ts-migration` label in docs or PRs. Creating one would be a good idea to track and coordinate migration efforts.
**Migration documentation:** The authoritative source for migration guidelines and coding standards is [AGENTS.md](https://github.com/apache/superset/blob/master/AGENTS.md). Migration patterns and ongoing efforts are also documented in `context/refactors/typescript-conversion.md` and `legacy-charts-migration.md`.
Let me know if you want code samples or more details on any of these points!
<!-- Dosu Comment Footer -->
*To reply, just mention [@dosu](https://go.dosu.dev/dosubot?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=reply-with-mention&utm_term=apache%2Fsuperset).*
---
Share context across your team and agents. Try [Dosu](https://dosu.dev?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=knowledge-infrastructure-tagline&utm_term=apache%2Fsuperset).
[](https://app.dosu.dev/response-feedback?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=knowledge-infrastructure-feedback&utm_term=apache%2Fsuperset&message_id=ccf7add4-66e8-43d5-9c6d-a75f000dba58) [](https://github.dosu.com/apache/superset?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=knowledge-infrastructure-learn-repo&utm_term=apache%2Fsuperset) [](https://app.dosu.dev/signup?referrer=openSource&source=github-footer&utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=knowledge-infrastructure-add-team&utm_term=apache%2Fsuperset)
GitHub link: https://github.com/apache/superset/discussions/37230#discussioncomment-15532260
----
This is an automatically sent email for notifications@superset.apache.org.
To unsubscribe, please send an email to: notifications-unsubscribe@superset.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org