Claude Code
dfd3f7b316
ci(lint): enforce no function-body imports (PLC0415) with targeted ignores
...
Follow-up to #40231 (merged), where a reviewer flagged a function-body
`from datetime import datetime, timedelta` instead of a top-of-file
import. Adds a `ruff-import-placement` pre-commit hook running
`ruff check --select PLC0415 --preview --no-fix`.
Per @rusackas's pushback on the first cut of this PR — which spammed
2,657 `# noqa: PLC0415` annotations across ~410 files without fixing
anything — this revision is a much smaller surface area:
1. **Per-file-ignores** for whole directories where function-body
imports are a deliberate pattern, not an oversight:
- `superset/cli/**` and `scripts/**`: subcommand-deferred imports
keep heavy modules out of the CLI startup path.
- `superset/tasks/**`: Celery task bodies defer imports of the
modules they orchestrate.
- `superset/migrations/versions/**`: Alembic migrations interact
with model state at runtime, not at module load.
- `superset/mcp_service/**`: MCP tools lazy-load resources on
invocation so the server can register many tools without paying
their import cost at startup.
- `superset/db_engine_specs/**`: engine specs defer driver imports
so optional DB drivers don't have to be installed.
- `superset/initialization/__init__.py`, `superset/extensions/__init__.py`,
`superset/app.py`: the app-factory and extension wiring are
intentionally full of circular-import workarounds.
- `tests/**`: test files routinely defer imports for fixture
isolation; the rule still applies to production code.
2. **Per-line `# noqa: PLC0415`** on the 259 remaining genuine
circular-import sites (security/manager.py, sql/execution/executor.py,
semantic_layers/labels.py, tags/core.py, core_api_injection.py, etc.).
These are foundational modules where moving the imports up would
actually break things.
Net result: ~410 files / 2,657 grandfathered → ~73 files / 259 actual
noqa annotations. The rule still catches every new function-body
import outside the explicitly-allowed directories.
Also: silences a pre-existing C901 on `mcp_service/sql_lab/tool/execute_sql.py`
that fires under newer local ruff but not CI's pinned ruff 0.9.7 — blocks
the local pre-commit run otherwise.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-20 13:55:14 -07:00
Evan Rusackas
b23c65e04f
test(charts): regression for last-modified sort order ( #27500 ) ( #40231 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-20 11:43:19 -07:00
Evan Rusackas
aa8255c55c
test(reports): regression for alerts CSV missing chart time filters ( #25538 ) ( #40232 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-20 11:42:52 -07:00
Evan Rusackas
10b7bfc8c1
test(helpers): regression for humanize locale activation ( #28331 ) ( #40233 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-20 11:42:17 -07:00
Evan Rusackas
89cab1860e
chore(codeowners): add @rusackas as translations maintainer ( #40295 )
...
Co-authored-by: Claude <claude@anthropic.com >
2026-05-20 11:41:58 -07:00
dependabot[bot]
b7585122c8
chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.59.3 to 8.59.4 in /superset-websocket ( #40250 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-20 10:45:00 -07:00
dependabot[bot]
f2d80a183e
chore(deps): bump content-disposition from 1.1.0 to 2.0.0 in /superset-frontend ( #40109 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude <claude@anthropic.com >
2026-05-20 10:41:34 -07:00
Shaitan
69adecd6a3
fix(reports): enforce server-side recipient on chart/dashboard report subscriptions ( #38847 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-20 10:36:42 -07:00
Mike Bridge
fbffae0444
fix(dataset-editor): drop null warning_markdown from extra JSON serialisation ( #39706 )
...
Co-authored-by: Mike Bridge <michael.bridge@ext.preset.io >
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 10:34:03 -07:00
dependabot[bot]
6ce7c2e8de
chore(deps-dev): bump react-resizable and @types/react-resizable in /superset-frontend ( #40110 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude <claude@anthropic.com >
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-20 10:32:38 -07:00
SkinnyPigeon
105820f1f4
docs(reports): playwright setup clarification ( #40168 )
2026-05-20 10:32:02 -07:00
Evan Rusackas
92b1b0a219
ci(docs): soft-fail badge localization on transient fetch errors ( #40236 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-20 10:21:58 -07:00
Evan Rusackas
c39a47cbac
test(sql-parser): pin WITH+UNION as non-mutating across dialects ( #25659 ) ( #40138 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-20 10:08:21 -07:00
dependabot[bot]
dacda71f77
chore(deps-dev): bump typescript-eslint from 8.59.3 to 8.59.4 in /superset-websocket ( #40251 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-20 09:57:53 -07:00
dependabot[bot]
12a21c8933
chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.59.3 to 8.59.4 in /superset-frontend ( #40256 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-20 09:57:01 -07:00
dependabot[bot]
13fa3810a8
chore(deps): bump react-map-gl from 8.1.0 to 8.1.1 in /superset-frontend ( #40262 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-20 09:56:40 -07:00
dependabot[bot]
3356f4d3e1
chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend ( #40265 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-20 09:56:17 -07:00
dependabot[bot]
4a17c49d74
chore(deps): bump zod from 4.4.1 to 4.4.3 in /superset-frontend ( #40272 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-20 09:55:49 -07:00
dependabot[bot]
ea1ce7140c
chore(deps-dev): bump webpack from 5.106.2 to 5.107.0 in /docs ( #40291 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-20 22:35:32 +07:00
dependabot[bot]
038414ea5c
chore(deps-dev): bump ts-jest from 29.4.9 to 29.4.10 in /superset-websocket ( #40290 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-20 22:34:25 +07:00
jesperct
5bb54cc96b
fix(echarts): preserve dataZoom range across setOption(notMerge) ( #40173 )
2026-05-20 17:33:29 +02:00
Alexandru Soare
fb276b08dd
fix(mcp): Skip misleading trend analysis for categorical ASCII charts ( #39761 )
2026-05-20 18:04:21 +03:00
Alexandru Soare
6e8b3bf976
fix(mcp): raise right error ( #39964 )
2026-05-20 14:32:45 +03:00
Alexandru Soare
55024e8f4d
feat(mcp): Add mcp_call_id to tool responses for server log correlation ( #39776 )
2026-05-20 14:30:22 +03:00
Alexandru Soare
b98bd2a07a
fix(mcp): Block destructive DDL (DROP, TRUNCATE, ALTER) in execute_sql ( #39621 )
2026-05-20 14:29:15 +03:00
Alexandru Soare
0a3a35018c
fix(mcp): changed_on_humanized null in write tool responses (generate_dashboard, generate_chart) ( #39488 )
2026-05-20 14:08:51 +03:00
Jean Massucatto
e6179036ec
fix(sqllab): handle scientific notation in big number JSON responses ( #39994 )
2026-05-20 07:39:47 +02:00
dependabot[bot]
81b4d580db
chore(deps-dev): bump @types/node from 25.8.0 to 25.9.1 in /superset-websocket ( #40249 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-19 21:54:36 -07:00
dependabot[bot]
9acfac1523
chore(deps-dev): bump @typescript-eslint/parser from 8.59.3 to 8.59.4 in /superset-websocket ( #40252 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-19 21:53:59 -07:00
dependabot[bot]
aa9af6c307
chore(deps-dev): bump typescript-eslint from 8.59.3 to 8.59.4 in /docs ( #40254 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-19 21:52:10 -07:00
dependabot[bot]
fbb3056508
chore(deps): bump baseline-browser-mapping from 2.10.30 to 2.10.31 in /docs ( #40255 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-19 21:51:56 -07:00
dependabot[bot]
ffbce27c9b
chore(deps): bump codecov/codecov-action from 6.0.0 to 6.0.1 ( #40269 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-19 21:51:40 -07:00
dependabot[bot]
fe8b218a5f
chore(deps): bump mapbox-gl from 3.23.1 to 3.24.0 in /superset-frontend ( #40258 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-19 21:50:31 -07:00
dependabot[bot]
f5fe9bfa26
chore(deps-dev): bump ts-jest from 29.4.9 to 29.4.10 in /superset-frontend ( #40260 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-19 21:50:16 -07:00
dependabot[bot]
7f1c47521e
chore(deps-dev): bump @typescript-eslint/parser from 8.59.3 to 8.59.4 in /superset-frontend ( #40263 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-19 21:50:03 -07:00
dependabot[bot]
0fffa74bc6
chore(deps-dev): bump tsx from 4.22.0 to 4.22.3 in /superset-frontend ( #40267 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-19 21:49:40 -07:00
dependabot[bot]
738ebf9cc6
chore(deps-dev): bump @types/node from 25.8.0 to 25.9.1 in /superset-frontend ( #40268 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-19 21:49:26 -07:00
dependabot[bot]
98dff2e170
chore(deps): bump yeoman-generator from 8.1.2 to 8.2.2 in /superset-frontend ( #40271 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-19 20:03:44 -07:00
Evan Rusackas
b5ad4a7a07
test(sql-parser): pin TimescaleDB hyperfunctions parse on postgresql ( #32028 ) ( #40142 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-19 19:53:33 -07:00
Evan Rusackas
1230b9091b
docs: hide Component Playground top-level nav item ( #40247 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-19 09:32:53 -07:00
madhushreeag
852d0182b5
fix(roles): prevent 404 and silent user removal on large role edits ( #40178 )
...
Co-authored-by: madhushree agarwal <madhushree_agarwal@apple.com >
2026-05-19 09:13:43 -07:00
dependabot[bot]
ac5e8f1308
chore(deps): bump swagger-ui-react from 5.32.5 to 5.32.6 in /docs ( #40056 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude <claude@anthropic.com >
2026-05-18 21:51:35 -07:00
Evan Rusackas
f98edc351e
chore(deps): coordinated bump jest 30.3→30.4 + jest-environment-jsdom 29→30 ( #40206 )
...
Co-authored-by: Claude <claude@anthropic.com >
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-19 11:35:19 +07:00
dependabot[bot]
4ceefb7e40
chore(deps): bump fs-extra from 11.3.2 to 11.3.5 in /superset-frontend ( #39936 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: hainenber <dotronghai96@gmail.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com >
Co-authored-by: Evan Rusackas <evan@preset.io >
2026-05-18 20:38:57 -07:00
dependabot[bot]
1b9f06c840
chore(deps-dev): bump eslint-plugin-react-you-might-not-need-an-effect from 0.10.0 to 0.10.1 in /superset-frontend ( #39902 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io >
2026-05-18 16:28:05 -07:00
Evan Rusackas
9bfa0642a1
test(sql-parser): pin quoted identifiers with spaces are not subqueries ( #32541 , #32684 ) ( #40143 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-18 14:21:59 -07:00
Beto Dealmeida
e874e5cbaf
fix: OAuth2 trigger ( #40097 )
2026-05-18 17:00:06 -04:00
Elizabeth Thompson
ef0efb7493
fix(mcp): exclude self-referencing filter columns from get_schema output ( #39826 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com >
2026-05-18 13:51:25 -07:00
alex
0e46d21205
fix(deckgl): emit usable cross-filter values from polygon and geojson clicks ( #39906 )
...
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-18 22:07:05 +02:00
Evan Rusackas
6fa0b48752
docs: cut 6.1.0 versions for user_docs, admin_docs, developer_docs, components ( #40126 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-18 12:59:39 -07:00