Skip to content

Commit 6d0cea7

Browse files
authored
Merge branch 'master' into chore/remove-legacy-shim-of-reexport-to-be-working-in-dev-mode
2 parents 62ff652 + 70d06e3 commit 6d0cea7

4,621 files changed

Lines changed: 297214 additions & 95935 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.asf.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ github:
7979
- lint-check
8080
- cypress-matrix-required
8181
- dependency-review
82+
- enforce-single-migration-head
8283
- frontend-build
8384
- playwright-tests-required
8485
- pre-commit (current)

.cursor/rules/dev-standard.mdc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,9 @@ Charts built from enriched datasets containing:
105105
pre-commit install
106106

107107
# Quick validation (faster than --all-files)
108-
pre-commit run # Staged files only
108+
pre-commit run # Staged files only
109109
pre-commit run mypy # Python type checking
110-
pre-commit run prettier # Code formatting
110+
pre-commit run format # Code formatting
111111
pre-commit run eslint # Frontend linting
112112
```
113113

.devcontainer/devcontainer-base.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
"ms-python.vscode-pylance",
3333
"charliermarsh.ruff",
3434
"dbaeumer.vscode-eslint",
35-
"esbenp.prettier-vscode"
3635
]
3736
}
3837
}

.devcontainer/devcontainer.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@
5959
"ms-python.vscode-pylance",
6060
"charliermarsh.ruff",
6161
"dbaeumer.vscode-eslint",
62-
"esbenp.prettier-vscode"
6362
]
6463
}
6564
}

.github/CODEOWNERS

Lines changed: 9 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,3 @@
1-
# Notify all committers of DB migration changes, per SIP-59
2-
3-
/superset/migrations/ @mistercrunch @michael-s-molina @betodealmeida @eschutho @sadpandajoe
4-
5-
# Notify some committers of changes in the components
6-
7-
/superset-frontend/src/components/Select/ @michael-s-molina @geido @kgabryje
8-
/superset-frontend/src/components/MetadataBar/ @michael-s-molina @geido @kgabryje
9-
/superset-frontend/src/components/DropdownContainer/ @michael-s-molina @geido @kgabryje
10-
11-
# Notify Helm Chart maintainers about changes in it
12-
13-
/helm/superset/ @dpgaspar @villebro @nytai @michael-s-molina @mistercrunch @rusackas @Antonio-RiveroMartnez @hainenber
14-
15-
# Notify E2E test maintainers of changes
16-
17-
/superset-frontend/playwright/ @sadpandajoe @geido @eschutho @rusackas @mistercrunch
18-
/superset-frontend/cypress-base/ @sadpandajoe @geido @eschutho @rusackas @mistercrunch
19-
201
# Notify PMC members of changes to GitHub Actions
212

223
/.github/ @villebro @geido @eschutho @rusackas @betodealmeida @nytai @mistercrunch @kgabryje @sha174n @dpgaspar @sadpandajoe @hainenber
@@ -30,23 +11,19 @@
3011

3112
/.asf.yaml @villebro @geido @eschutho @rusackas @betodealmeida @nytai @mistercrunch @kgabryje @dpgaspar @sha174n @Antonio-RiveroMartnez
3213

33-
# Maps are a finicky contribution process we care about
14+
# Maps are fragile and political. GeoJson edits MUST be made in the Jupyter notebook or they'll be overwritten.
3415

3516
**/*.geojson @villebro @rusackas
3617
**/*.ipynb @villebro @rusackas
37-
/superset-frontend/plugins/legacy-plugin-chart-country-map/ @villebro @rusackas
18+
/superset-frontend/plugins/plugin-chart-country-map/ @villebro @rusackas
3819

39-
# Notify translation maintainers of changes to translations
20+
# Notify PMC members of changes to extension-related files
4021

41-
/superset/translations/ @sfirke @rusackas @villebro @sadpandajoe @hainenber
22+
/docs/developer_docs/extensions/ @michael-s-molina @villebro @rusackas
23+
/superset-extensions-cli/ @michael-s-molina @villebro @rusackas @sadpandajoe
24+
/superset/extensions/ @michael-s-molina @villebro @rusackas @sadpandajoe
25+
/superset-frontend/src/extensions/ @michael-s-molina @villebro @rusackas @sadpandajoe
4226

43-
# Notify PMC members of changes to extension-related files
27+
# Notify PMC members of config changes e.g. feature flags
4428

45-
/docs/developer_portal/extensions/ @michael-s-molina @villebro @rusackas
46-
/superset-core/ @michael-s-molina @villebro @geido @eschutho @rusackas @kgabryje
47-
/superset-extensions-cli/ @michael-s-molina @villebro @geido @eschutho @rusackas @kgabryje
48-
/superset/core/ @michael-s-molina @villebro @geido @eschutho @rusackas @kgabryje
49-
/superset/extensions/ @michael-s-molina @villebro @geido @eschutho @rusackas @kgabryje
50-
/superset-frontend/src/packages/superset-core/ @michael-s-molina @villebro @geido @eschutho @rusackas @kgabryje
51-
/superset-frontend/src/core/ @michael-s-molina @villebro @geido @eschutho @rusackas @kgabryje
52-
/superset-frontend/src/extensions/ @michael-s-molina @villebro @geido @eschutho @rusackas @kgabryje
29+
/superset/config.py @michael-s-molina @villebro @rusackas @sadpandajoe

.github/ISSUE_TEMPLATE/bug-report.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,8 @@ body:
5050
attributes:
5151
label: Python version
5252
options:
53-
- "3.9"
54-
- "3.10"
5553
- "3.11"
54+
- "3.12"
5655
- Not applicable
5756
- I don't know
5857
validations:
Lines changed: 0 additions & 1 deletion
This file was deleted.

.github/actions/setup-backend/action.yml

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,6 @@ inputs:
55
description: 'Python version to set up. Accepts a version number, "current", or "next".'
66
required: true
77
default: 'current'
8-
cache:
9-
description: 'Cache dependencies. Options: pip'
10-
required: false
11-
default: 'pip'
128
requirements-type:
139
description: 'Type of requirements to install. Options: base, development, default'
1410
required: false
@@ -43,17 +39,31 @@ runs:
4339
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
4440
with:
4541
python-version: ${{ steps.set-python-version.outputs.python-version }}
46-
cache: ${{ inputs.cache }}
42+
- name: Install uv
43+
if: inputs.install-superset == 'true'
44+
uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
45+
with:
46+
python-version: ${{ steps.set-python-version.outputs.python-version }}
47+
enable-cache: true
48+
- name: Update apt package lists
49+
# cache-apt-pkgs-action assumes a fresh `apt-cache` index (true on GitHub-hosted
50+
# runners, not on all self-hosted/custom runner images), so refresh it explicitly
51+
# or package lookups silently resolve to an empty list.
52+
if: inputs.install-superset == 'true'
53+
shell: bash
54+
run: sudo apt-get update
55+
- name: Install apt packages
56+
if: inputs.install-superset == 'true'
57+
uses: awalsh128/cache-apt-pkgs-action@553a35bb8ebd9fcabcb1c9451aa4c98e1b4ca8a9 # v1.6.3
58+
with:
59+
packages: libldap2-dev libsasl2-dev
60+
version: 1.0
4761
- name: Install dependencies
4862
env:
4963
INPUT_INSTALL_SUPERSET: ${{ inputs.install-superset }}
5064
INPUT_REQUIREMENTS_TYPE: ${{ inputs.requirements-type }}
5165
run: |
5266
if [ "$INPUT_INSTALL_SUPERSET" = "true" ]; then
53-
sudo apt-get update && sudo apt-get -y install libldap2-dev libsasl2-dev
54-
55-
pip install --upgrade pip setuptools wheel uv
56-
5767
if [ "$INPUT_REQUIREMENTS_TYPE" = "dev" ]; then
5868
uv pip install --system -r requirements/development.txt
5969
elif [ "$INPUT_REQUIREMENTS_TYPE" = "base" ]; then

.github/dependabot.yml

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ updates:
2828
# See https://github.com/apache/superset/pull/37384#issuecomment-3793991389
2929
# TODO: remove the plugin once Lodash usage has been migrated to a more readily tree-shakeable alternative
3030
- dependency-name: "@swc/plugin-transform-imports"
31+
# deck.gl and luma.gl share strict peer constraints across the root and
32+
# plugin workspaces, and root overrides pin their transitive versions.
33+
# Upgrade both families together in a manually validated change.
34+
- dependency-name: "@deck.gl/*"
35+
- dependency-name: "@luma.gl/*"
3136
# `just-handlerbars-helpers` library in plugin-chart-handlebars requires `currencyformatter`` to be < 2
3237
- dependency-name: "currencyformatter.js"
3338
update-types: ["version-update:semver-major"]
@@ -42,6 +47,13 @@ updates:
4247
# as a single manual upgrade anyway. TODO: remove when Babel 8 support is viable.
4348
- dependency-name: "@babel/*"
4449
update-types: ["version-update:semver-major"]
50+
# v2.0.0 renamed ZSTDDecompress to decompress and made it async, breaking
51+
# the webpack dev proxy (see #38662, #39138, #39139). Dependabot reopened
52+
# the same bump in #39369 after the first revert, so pin it here instead
53+
# of relying on a package.json comment (package.json is JSON and can't
54+
# hold comments). Remove this once the proxy code is updated to await
55+
# the async decompress() API.
56+
- dependency-name: "simple-zstd"
4557
directory: "/superset-frontend/"
4658
schedule:
4759
interval: "daily"
@@ -59,12 +71,15 @@ updates:
5971
babel:
6072
patterns:
6173
- "@babel/*"
62-
deckgl:
74+
storybook:
6375
patterns:
64-
- "@deck.gl/*"
65-
lumagl:
76+
- "@storybook/*"
77+
- "storybook"
78+
- "eslint-plugin-storybook"
79+
ag-grid:
6680
patterns:
67-
- "@luma.gl/*"
81+
- "ag-grid-react"
82+
- "ag-grid-community"
6883
open-pull-requests-limit: 30
6984
versioning-strategy: increase
7085
cooldown:
@@ -99,6 +114,22 @@ updates:
99114
directory: "/docs/"
100115
schedule:
101116
interval: "daily"
117+
groups:
118+
storybook:
119+
patterns:
120+
- "@storybook/*"
121+
- "storybook"
122+
docusaurus:
123+
patterns:
124+
- "@docusaurus/*"
125+
docusaurus-openapi:
126+
patterns:
127+
- "docusaurus-plugin-openapi-docs"
128+
- "docusaurus-theme-openapi-docs"
129+
typescript-eslint:
130+
patterns:
131+
- "@typescript-eslint/*"
132+
- "typescript-eslint"
102133
open-pull-requests-limit: 10
103134
versioning-strategy: increase
104135
cooldown:

.github/workflows/bashlib.sh

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -201,18 +201,23 @@ cypress-run-all() {
201201
# navigation flow under E2E. We diverge from the entrypoint on:
202202
# --timeout 120: heavy dashboard import/export specs exceed the 60s
203203
# default
204-
# --max-requests / --max-requests-jitter: recycle the worker under
205-
# test load to avoid leaks accumulating across the run
206204
# superset.app:create_app(): explicit factory so we don't depend on
207205
# FLASK_APP being exported
206+
#
207+
# No --max-requests, matching the entrypoint's default of 0 (recycling
208+
# off). With a single worker a recycle takes the whole backend offline for
209+
# the graceful-timeout drain — browser keep-alive connections hold it open
210+
# for the full 30s — plus ~5s of app boot. A run issues ~3800 requests in
211+
# ~8 minutes, so recycling every 500 produced seven ~35s outages per run
212+
# and flaked whichever specs happened to navigate into one. Lowering
213+
# --graceful-timeout is not enough: a dashboard load plus chart render
214+
# needs 6-10s, which still lands inside the window.
208215
nohup gunicorn \
209216
--bind "127.0.0.1:$port" \
210217
--workers 1 \
211218
--worker-class gthread \
212219
--threads 20 \
213220
--timeout 120 \
214-
--max-requests 500 \
215-
--max-requests-jitter 50 \
216221
--access-logfile - \
217222
--error-logfile - \
218223
"superset.app:create_app()" \
@@ -256,7 +261,7 @@ cypress-run-all() {
256261
# UNCOMMENT the next few commands to monitor memory usage
257262
# monitor_memory & # Start memory monitoring in the background
258263
# memoryMonitorPid=$!
259-
python ../../scripts/cypress_run.py --parallelism $PARALLELISM --parallelism-id $PARALLEL_ID --group $PARALLEL_ID --retries 5 $USE_DASHBOARD_FLAG
264+
python ../../scripts/cypress_run.py --retries 5 $USE_DASHBOARD_FLAG
260265
# kill $memoryMonitorPid
261266
}
262267

@@ -294,16 +299,14 @@ playwright-run() {
294299
export PLAYWRIGHT_BASE_URL
295300

296301
# See cypress-run-all() above for the args rationale (1 worker × 20
297-
# gthread threads matching docker/entrypoints/run-server.sh, plus a
298-
# 120s timeout and request-recycling for heavy E2E load).
302+
# gthread threads matching docker/entrypoints/run-server.sh, a 120s
303+
# timeout for heavy E2E load, and why worker recycling is off).
299304
nohup gunicorn \
300305
--bind "127.0.0.1:$port" \
301306
--workers 1 \
302307
--worker-class gthread \
303308
--threads 20 \
304309
--timeout 120 \
305-
--max-requests 500 \
306-
--max-requests-jitter 50 \
307310
--access-logfile - \
308311
--error-logfile - \
309312
"superset.app:create_app()" \

0 commit comments

Comments
 (0)