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 2024/04/17 17:43:37 UTC

(superset) branch folderizing-charts updated (6f5dac42f5 -> 69a7bfc88d)

This is an automated email from the ASF dual-hosted git repository.

rusackas pushed a change to branch folderizing-charts
in repository https://gitbox.apache.org/repos/asf/superset.git


    omit 6f5dac42f5 chore(examples): folderizing chart assets by dashboard
     add 6f3afab01d fix(docker): error around missing requirements/base.txt (#27608)
     add 72a41c1642 fix: sqlglot SQL Server (#27577)
     add bfe55b9ded fix: Volatile datasource ordering in dashboard export (#19595)
     add d4d8625ab8 fix(utils): fix off-by-one error in how rolling window's min_periods truncates dataframe (#27388)
     add a8c01f4cad build(deps-dev): bump webpack-dev-middleware from 5.3.3 to 5.3.4 in /superset-frontend (#27610)
     add b25dd0c055 fix(sql_parse): Ensure table extraction handles Jinja templating (#27470)
     add 842b0939f6 fix(Dashboard): Add editMode conditional for translate3d fix on charts to allow intended Fullscreen (#27613)
     add a47469f4c5 chore(examples): organizing example chart yaml files into dashboard folders (#27572)
     add ec6bfcbaa0 chore(docs): clarifying doc comments about LOGO_TARGET_PATH (#27579)
     add 8a715cc1b5 feat(bar_chart): Stacked Bar chart with Time comparison in separated stacks (#27589)
     add 5083ca0e81 fix: Persist query params appended to permalink (#27601)
     add cd7972d05b feat: support for KQL in `SQLScript` (#27522)
     add 30b497e758 feat(alerts-reports): adding pdf filetype to email and slack reports (#27497)
     add 0f6e4041c7 fix(AlertReports): clearing custom_width when disabled (#27551)
     add 3f073dcd98 refactor: Migrate CopyToClipboard to typescript (#27309)
     add 20007355d1 fix(dashboard,css): center align 'waiting on database' (#27611)
     add bcfb8f4349 build(deps): bump webpack-dev-middleware from 5.3.1 to 5.3.4 in /docs (#27609)
     add f94f08eddd docs: updates list of countries in country-map-tools.mdx (#27596)
     add 0df7832639 chore: replace "dashboard" -> "report" in chart email report modal (#25540)
     add 22e823b5f9 build(deps-dev): bump webpack from 5.90.1 to 5.91.0 in /docs (#27626)
     add 235670244e test(Migration to RTL): Refactor ActivityTable.test.tsx from Enzyme to RTL (#27422)
     add d87422527b feat(jinja): metric macro (#27582)
     add 33c2d98e66 feat: use the local supersetbot (#27615)
     add a2fd83367e refactor: Migrate CssEditor to typescript (#27498)
     add 4fce940a9c fix(AlertReports): defaulting grace period to undefined (#27552)
     add 560097931d chore(🤖): bump python "markdown==3.6" (#27649)
     add b07c07de05 build(deps): bump express from 4.18.2 to 4.19.2 in /docs (#27652)
     add bd281ee51c build(deps): bump express from 4.18.3 to 4.19.2 in /superset-websocket/utils/client-ws-app (#27651)
     add a19398445b build(deps-dev): bump express from 4.17.3 to 4.19.2 in /superset-frontend (#27653)
     add 4720b4f0e6 chore(🤖): bump python "alembic==1.13.1" (#27650)
     add 6aee58fad6 chore: fix master builds + bump python library "cryptography" (#27641)
     add cf010b63e3 chore(🤖): bump python "sqlalchemy==1.4.52" (#27655)
     add ce210eebde fix(Chart Annotation modal): Table and Superset annotation options will paginate, exceeding previous max limit 100 (#27022)
     add fa3fea9dd8 fix(sqllab): unable to remove table (#27636)
     add ed9e542781 fix(AlertReports): disabling value when not null option is active (#27550)
     add 28cbedb82f fix: Leverage actual database for rendering Jinjarized SQL (#27646)
     add 12921e6ec3 chore(🤖): bump python "flask==2.3.3" (#27657)
     add 3ae74d1f2d fix: Provide more inclusive error handling for saved queries (#27644)
     add 46fcfd80d7 chore(🦾): bump python "pyarrow==14.0.2" (#27684)
     add 2c833b507c chore(🦾): bump python "polyline==2.0.2" (#27681)
     add 9960c78923 chore(🦾): bump python "click==8.1.7" (#27682)
     add a0cf91dad0 chore(🦾): bump python "croniter==2.0.3" (#27693)
     add c2183e47ec chore(🦾): bump python "pyparsing==3.1.2" (#27692)
     add 4b971ec7a9 chore(🦾): bump python "backoff==2.2.1" (#27698)
     add 349e496da5 chore(🦾): bump python "geopy==2.4.1" (#27699)
     add 6db94e98b5 other: Add TechAuditBI to supersetbot metadata.js (#27634)
     add 47adcd7f32 chore(🦾): bump python "wtforms==3.1.2" (#27688)
     add 86bd7a93b5 chore(🦾): bump python "msgpack==1.0.8" (#27696)
     add a48f770195 chore: bump pylint (#27711)
     add 7369754192 fix(explore): drag and drop indicator UX (#27558)
     add 7b44b8b7e1 chore(🦾): bump python "isodate==0.6.1" (#27680)
     add c73b24ad08 chore(🦾): bump python "nh3==0.2.17" (#27687)
     add 38eecfc5d4 perf(explore): virtualized datasource field sections (#27625)
     add 585144578e chore(🦾): bump python "sqlalchemy==1.4.52" (#27695)
     add 528946d3cc fix: Revert "chore: bump pylint (#27711)" (#27714)
     add 883e455e12 fix: Pylint errors on master (#27710)
     add bccd654b01 chore(🦾): bump python thrift 0.16.0 -> 0.20.0 (#27730)
     add 40a4806857 chore(🦾): bump python pydruid 0.6.5 -> 0.6.6 (#27731)
     add 5dbee13b3e chore(🦾): bump python playwright 1.41.2 -> 1.42.0 (#27726)
     add 0c192232ca chore(🦾): bump python typing-extensions 4.4.0 -> 4.10.0 (#27742)
     add 0710242f22 chore(🦾): bump python click-option-group 0.5.5 -> 0.5.6 (#27741)
     add c9d98a5679 chore(🦾): bump python pyjwt 2.4.0 -> 2.8.0 (#27737)
     add 1e3393cfa0 chore(🦾): bump python python-dateutil 2.8.2 -> 2.9.0.post0 (#27736)
     add 2ed5a346c4 chore(🦾): bump python mako 1.2.4 -> 1.3.2 (#27735)
     add bc62a80b8c chore(🦾): bump python tabulate 0.8.9 -> 0.8.10 (#27733)
     add fa76262b01 chore(🦾): bump python tableschema 1.20.2 -> 1.20.10 (#27732)
     add e5ebfd5c50 chore(🦾): bump python sqlalchemy-bigquery 1.6.1 -> 1.10.0 (#27727)
     add 34dca0eb31 chore(🦾): bump python mysqlclient 2.1.0 -> 2.2.4 (#27729)
     add a4c5446d2f chore(🦾): bump python flask-compress 1.13 -> 1.14 (#27740)
     add 96dde34cdc chore(🦾): bump python gevent 23.9.1 -> 24.2.1 (#27728)
     add 9065a4e7d2 chore(🦾): bump python google-cloud-bigquery 3.10.0 -> 3.20.0 (#27752)
     add 70da454bbc fix: reduce alert error to warning (#27744)
     add 6cc1391173 chore(🦾): bump python packaging 23.1 -> 23.2 (#27753)
     add 84b01a312f chore(🦾): bump python flask-talisman 1.0.0 -> 1.1.0 (#27755)
     add 0804c424c0 chore(🦾): bump python humanize 3.11.0 -> 4.9.0 (#27756)
     add 424afe09f5 chore(🦾): bump python sqlglot 23.0.2 -> 23.2.0 (#27749)
     add ca033efc6c chore(🦾): bump python cron-descriptor 1.2.24 -> 1.4.3 (#27746)
     add fcfdb819f2 chore(🦾): bump python flask-cors 3.0.10 -> 4.0.0 (#27748)
     add 10785e301e chore(🦾): bump python python-dotenv 0.19.0 -> 1.0.1 (#27759)
     add e1e3b99d03 chore(🦾): bump python google-cloud-bigquery 3.10.0 -> 3.20.0 (#27758)
     add a52f0d6947 chore(🦾): bump python xlsxwriter 3.0.7 -> 3.0.9 (#27747)
     add 951d7d66ac chore(🦾): bump python pandas-gbq 0.19.1 -> 0.22.0 (#27750)
     add bbcb722e50 fix: Removes filter plugins from viz gallery (#27763)
     add d69a1870a0 fix: Select onChange is fired when the same item is selected in single mode (#27706)
     add 546d48adbb feat: Adds the ECharts Heatmap chart (#25353)
     add 8ae4662f17 chore(docs): Cleanup UPDATING.md (#27768)
     add fcf90dffa8 feat(db_engine): Add custom_user_agent when connecting to MotherDuck (#27665)
     add 79cf2060e5 docs: simplify the Quickstart guide (#27612)
     add c0f8dfc7f9 chore(🦾): bump python thrift 0.16.0 -> 0.20.0 (#27754)
     add 356b0d8ee5 feat: Adds Heatmap chart migration logic (#27771)
     add 5b1d6b2850 fix: Select's storybook (#27785)
     add a23bfeda0a chore: Updates translation owners (#27839)
     add a664e21054 chore(🦾): bump python simplejson 3.17.3 -> 3.19.2 (#27757)
     add ca47717eb0 chore: Adds the 4.0 release notes (#27441)
     add 0d0e47acf7 chore(🦾): bump python flask-session 0.5.0 -> 0.8.0 (#27751)
     add 3e147f8693 fix: alembic's 'superset db migrate' fails with CompileError (#27846)
     add 9fece4f811 build(deps): bump actions/github-script from 5 to 7 (#27802)
     add 8bdf457dfa feat(db): Adding DB_SQLA_URI_VALIDATOR (#27847)
     add f25795c4e4 fix(dashboard): missing null check in error extra (#27845)
     add 3a34c7ff7c chore: Bump to Python3.10 (#24112)
     add 9fea3154fa fix: pkg-config dependency in Dockerfile (#27855)
     add 12fe2929a4 fix: row limits & row count labels are confusing (#27700)
     add 48bff6b352 build(deps-dev): bump @tsconfig/docusaurus from 2.0.2 to 2.0.3 in /docs (#27823)
     add e2b708e8f7 build(deps-dev): bump @docusaurus/module-type-aliases from 3.1.1 to 3.2.0 in /docs (#27818)
     add 29a5b72d5f build(deps-dev): bump typescript from 5.3.3 to 5.4.3 in /docs (#27814)
     add 5603453c18 chore(node): bumping Superset to Node 18 (#27198)
     add 1c742f5866 feat: setup a pyproject.toml (#27859)
     add 5ab95aaf7d chore(sql_parse): Strip leading/trailing whitespace in Jinja macro extraction (#27842)
     add fa74d32a6a build(deps): bump @ant-design/icons from 5.3.1 to 5.3.6 in /docs (#27819)
     add fdc2dbe7db build(deps-dev): bump react-test-renderer from 16.9.0 to 16.14.0 in /superset-frontend (#27808)
     add 9022f5c519 feat(SIP-85): OAuth2 for databases (#27631)
     add 8e3cecda9f feat: move supersetbot out of repo (#27647)
     add 59f0057017 build(deps): update xss requirement from ^1.0.14 to ^1.0.15 in /superset-frontend/plugins/plugin-chart-table (#27835)
     add c990baf96a fix: GHA update-monorepo-lockfiles (#27860)
     add ad752f04c7 docs: small cleanup (#27791)
     add 6683d292ce fix: run pip-compile-multi --no-upgrade (#27861)
     add 08700f8cb9 chore(🦾): bump python pre-commit 3.3.3 -> 3.7.0 (#27865)
     add e39bb57c07 chore(🦾): bump python pillow 10.2.0 -> 10.3.0 (#27873)
     add 9c3915d42c chore(🦾): bump python freezegun 1.2.2 -> 1.4.0 (#27869)
     add 976b098421 chore(🦾): bump python docker 6.1.1 -> 7.0.0 (#27870)
     add 271fbc064e chore(🦾): bump python sqlglot 23.2.0 -> 23.6.3 (#27875)
     add 1d3fdc74dc chore(🦾): bump python sqloxide 0.1.33 -> 0.1.43 (#27871)
     add 9d0928633a chore(🦾): bump python pytest-cov 4.0.0 -> 5.0.0 (#27866)
     add 87e1c3f2fd chore(🦾): bump python google-cloud-bigquery 3.20.0 -> 3.20.1 (#27868)
     add 6052ef656d chore(🦾): bump python grpcio 1.60.1 -> 1.62.1 (#27872)
     add 208afc96a1 chore(🦾): bump python pyfakefs 5.2.2 -> 5.3.5 (#27874)
     add d318df96ae build(deps): bump dompurify from 2.4.9 to 3.0.11 in /superset-frontend/plugins/legacy-preset-chart-nvd3 (#27816)
     add c3149994ac feat(viz picker): Remove some tags, refactor Recommended section (#27708)
     add 848a7ffbf3 build(deps): bump @algolia/client-search from 4.22.1 to 4.23.2 in /docs (#27824)
     add c38529741e chore(sql_parse): Provide more meaningful SQLGlot errors (#27858)
     add 6e8ea2753b build(deps-dev): bump @types/redux-mock-store from 1.0.2 to 1.0.6 in /superset-frontend (#27836)
     add 2a06c08c6b chore(🦾): bump python pylint 2.17.7 -> 3.1.0 (#27867)
     add 24fc2b67d8 chore: Updates CHANGELOG.md with 3.1.2 data (#27878)
     add 30bc8f06dc chore: Default to engine specification regarding using wildcard (#27843)
     add a498d6d10f refactor: Move fetchTimeRange to core package (#27852)
     add 1b9e2581d2 build(deps-dev): bump @types/underscore from 1.11.6 to 1.11.15 in /superset-frontend (#27343)
     add 870e94809c chore(🦾): bump python pytest 7.3.1 -> 7.4.4 (#27864)
     add c661518bb1 build(deps): bump @docsearch/react from 3.5.2 to 3.6.0 in /docs (#27813)
     add ebdf1bbdd5 build(deps): update @types/react-table requirement from ^7.7.19 to ^7.7.20 in /superset-frontend/plugins/plugin-chart-table (#27833)
     add 5cde275965 build(deps-dev): update @types/jest requirement from ^29.5.11 to ^29.5.12 in /superset-frontend/plugins/plugin-chart-pivot-table (#26975)
     add 3f24083ed6 build(deps): bump bootstrap-slider from 10.6.2 to 11.0.2 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#27317)
     add 9a4bdeabbd build(deps): update lodash requirement from ^4.17.15 to ^4.17.21 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#27318)
     add 394abced43 build(deps-dev): update @types/lodash requirement from ^4.14.202 to ^4.17.0 in /superset-frontend/plugins/plugin-chart-handlebars (#27800)
     add 5beda309ab build(deps): bump winston from 3.11.0 to 3.13.0 in /superset-websocket (#27804)
     add 27acc0b133 chore: Cleanup table access check naming (#27772)
     add cfa0556df7 fix(bar-chart): change legend padding for horizontal orientation (#27883)
     add 949e6b52e6 build(deps): bump fetch-retry from 4.1.1 to 6.0.0 in /superset-frontend (#27887)
     add e5837b46e5 build(deps): bump @types/lodash from 4.14.202 to 4.17.0 in /superset-websocket (#27805)
     add a9681fa3f3 build(deps-dev): bump @types/node from 20.11.24 to 20.12.4 in /superset-websocket (#27888)
     add 601432ad82 fix(pylint): Address errors/warnings introduced by #27867 (#27889)
     add 5ed48760fb chore(sqllab): Do not strip comments when executing SQL statements (#27725)
     add ebcf4e044b fix: corrects some inaccuracies zh translation (#27794)
     add 265390c243 fix(Dashboard): Add border to row when hovering HoverMenu in edit mode (#27593)
     add fb919c718d docs: replace broken david badges with libraries.io (#27903)
     add 47d629f50c build(deps): update @types/d3-time requirement from ^3.0.0 to ^3.0.3 in /superset-frontend/packages/superset-ui-core (#27319)
     add 104299a211 build(deps): bump memoize-one from 5.2.1 to 6.0.0 in /superset-frontend/packages/superset-ui-demo (#27322)
     add 31d0c542e2 build(deps-dev): bump fork-ts-checker-webpack-plugin from 5.2.1 to 9.0.2 in /superset-frontend/packages/superset-ui-demo (#27321)
     add 559605e393 fix: add mariadb engine spec same as MySQL (#27919)
     add 3e6d966513 fix(docs): restoring search capability with new public key (#27912)
     add bbe209a9e8 build(deps-dev): update @babel/types requirement from ^7.23.9 to ^7.24.0 in /superset-frontend/plugins/plugin-chart-pivot-table (#27334)
     add 62433c14a7 chore(helm): Bumping app version to 3.1.2 in helm chart (#27915)
     add 9377227e06 chore(OAuth2): refactor for custom OAuth2 clients (#27880)
     add eda304bda9 chore(explore): Hide non-droppable metric and column list (#27717)
     add a1983e468b fix(frontend): allow "constructor" property in response data (#25407)
     add 4428bde024 docs: fix broken OS Dependencies link in CONTRIBUTING.md (#27932)
     add 662c1ed618 chore: Adds 4.0.0 data to CHANGELOG.md and UPDATING.md (#27937)
     add 34b1db219c feat(accessibility): add tabbing to chart menu in dashboard (#26138)
     add c5b7f7a08c fix: fix-zh-translation-2 (#27922)
     add 5377b6cb2f fix: docker-release GHA fails with pathspec error (#27925)
     add 996cced3d4 fix: Locale sent to frontend (#27926)
     add 7c8e1bb46e fix(docs): CSP mods to re-enable Algolia search (#27942)
     add e80d194b8f fix: improve change detection for GHAs (#27904)
     add 4ecfce98f6 feat(explore): Clear temporal filter value (#27788)
     add ae0f2ce3c1 fix: useTruncation infinite loop, reenable dashboard cross links on ChartList (#27701)
     add 481a63da55 chore(tests): Remove ineffectual login (#27149)
     add 93b83febc2 chore(helm): bumping app version to 4.0.0 in helm chart (#27946)
     add a5e65d572a fix(node): missed one bump from node 16 to 18. (#27955)
     add 71d174bad6 build(deps-dev): update @types/mapbox__geojson-extent requirement from ^1.0.0 to ^1.0.3 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#27810)
     add 4202fba0f1 fix(Dashboard): Add aria-label to filters and search forms (#27968)
     add 717a3991f4 fix(asf): removing google hosted analytics and fonts (#27963)
     add c5c5f4dbc1 docs(k8s): making it clear users MUST update secrets for prod instances. (#27954)
     add 601d011986 fix(node): bump node version in nvmrc files (#27974)
     add 8200261506 chore(docs): adding ASF Privacy Link. (#27975)
     add eb4ca010ae fix(alerts/reports): removing duplicate notification method options (#27239)
     add cbfdba2ca6 chore(docs): removing Superset Community Newsletter archive (#27977)
     add 9423d59132 chore(docs): remove seemingly unused unpkg domain from CSPs (#27976)
     add dea430649d chore: [proposal] de-matrix python-version in GHAs (#27906)
     add a6d16ed477 docs: deploy docs when merging to master (#27956)
     add a29cdefedf chore(ci): make pre-commit step faster by skipping superset install (#27979)
     add cd136ad847 feat: GHA to bump python packages using supersetbot (#27863)
     add 9998a11fdd chore: remove no-op.yml as it's not needed anymore (#27980)
     add aef325a416 feat(alert report tabs): adding feature flag (#27773)
     add 7e679d56ea fix(superset-frontend): remove unused `@superset-ui/plugin-chart-period-over-period-kpi` package (#27994)
     add 4f363e1180 feat: add option to disable rendering of html in sql lab and table chart (#27969)
     add 35c8b7a162 fix(drillby): Enable DrillBy in charts w/o filters (dimensions) (#27941)
     add 02b69709bb fix(docs): add missing code formatting, fix broken link (#27992)
     add 6844735a45 fix(time_offset): improved LIMIT-handling in advanced analytics (#27934)
     add 06077d42a8 fix: Incorrect onChange value when an unloaded value is pasted into AsyncSelect (#27996)
     add 99a1601aea refactor: rename get_sqla_engine_with_context (#28012)
     add 8afe973968 chore: Revert "chore(ci): make pre-commit step faster by skipping superset install" (#27999)
     add 40e77be813 feat: optimize docker-compose up for faster boot time (#27953)
     add 54387b4589 feat: new CSV upload form and API (#27840)
     add caad29b5b3 fix: Select is accepting unknown pasted values when `allowNewOptions` is false (#28017)
     add 08aaebbf7c feat(dbview): Add token request button to DuckDB and MotherDuck database modal (#27908)
     add 2a62c40526 chore(Dashboard): Accessibility filters Popover (#28015)
     add 8538796128 docs: Updated NOTICE to 2024 (#28040)
     add 0c12369084 fix: support docker/.env-local for docker-compose (#28039)
     add 99c414e4da fix: bump client side chart timeouts to use the SUPERSET_WEBSERVER_TIMEOUT (#28018)
     add c225e17a75 chore: consolidate the Superset python package metadata (#27884)
     add de9daf7ad9 chore: stabilize MySQL tests by aligning isolation levels (#28028)
     add 4b0452b87b chore(docs): disable bugherd for now (#28045)
     add 6e01a68276 fix: Dynamic filter does not show all values on blur/clear events (#28036)
     add e9c0ca545f feat: Slack Avatar integration (#27849)
     add aab645e01c chore: Updates release related assets (#28041)
     add 181a901f75 chore(ASF): adds DOAP file and bumping apache-rat (#27978)
     add 5a9ddbba2e docs: move mp4 video to superset-site/tree/lfs (#27998)
     add 89da4f82d3 fix(Dashboard): Support "Edit chart" click on a new window (#28054)
     add 80f76947d1 chore(csp): nix bugherd, add githubusercontent (#28064)
     add 3310315d4b fix: switch off dependabot for pip/python (#28061)
     add 594e5a50a3 docs: add more warnings for default secrets and docker-compose (#27921)
     add 19170d94c8 chore(asf): disable calendar display by default, click to show (#28048)
     add c457add848 build(deps-dev): bump typescript from 5.4.3 to 5.4.5 in /docs (#28074)
     add cd15655ed3 build(deps): bump @algolia/client-search from 4.23.2 to 4.23.3 in /docs (#28077)
     add f3c538a3dd fix: Upgrade eyes-cypress to latest (#27195)
     add 8a390f03e3 chore(docs): splitting out "stable" feature flags by intent (config vs feature dev) (#28016)
     add 5ece57bd34 fix: db migrations on downgrade (#28106)
     add 0e096e8001 chore(asf): setting website staging server to point at superset-site's lfs branch (#28099)
     add 69a7bfc88d chore(Dashboard): Improve Table accessibility (#28059)

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (6f5dac42f5)
            \
             N -- N -- N   refs/heads/folderizing-charts (69a7bfc88d)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .asf.yaml                                          |    19 +-
 .github/CODEOWNERS                                 |     4 +-
 .github/ISSUE_TEMPLATE/bug-report.yml              |     5 +-
 .github/actions/change-detector/action.yml         |    31 +
 .github/actions/setup-backend/action.yml           |    36 +-
 .github/actions/setup-supersetbot/action.yml       |    40 +
 .github/dependabot.yml                             |    13 +-
 .github/supersetbot/.eslintrc.json                 |    22 -
 .github/supersetbot/README.md                      |    37 -
 .github/supersetbot/jest.config.js                 |     8 -
 .github/supersetbot/package-lock.json              | 11020 -----
 .github/supersetbot/package.json                   |    36 -
 .github/supersetbot/src/cli.js                     |   175 -
 .github/supersetbot/src/context.js                 |   152 -
 .github/supersetbot/src/docker.js                  |   142 -
 .github/supersetbot/src/docker.test.js             |   244 -
 .github/supersetbot/src/git.js                     |   120 -
 .github/supersetbot/src/git_release.js             |    50 -
 .github/supersetbot/src/github.js                  |   252 -
 .github/supersetbot/src/index.js                   |    39 -
 .github/supersetbot/src/index.test.js              |    51 -
 .github/supersetbot/src/utils.js                   |    78 -
 .github/workflows/bashlib.sh                       |    16 +-
 .github/workflows/bump-python-package.yml          |    68 +
 .github/workflows/codeql-analysis.yml              |    11 +-
 .github/workflows/dependency-review.yml            |     4 +-
 .github/workflows/docker-release.yml               |    30 +-
 .github/workflows/docker.yml                       |    34 +-
 .github/workflows/embedded-sdk-release.yml         |     4 +-
 .github/workflows/embedded-sdk-test.yml            |     2 +-
 .github/workflows/issue_creation.yml               |    18 +-
 .github/workflows/no-op.yml                        |    84 -
 .github/workflows/pre-commit.yml                   |     3 -
 .github/workflows/release.yml                      |     2 +-
 .github/workflows/superset-applitool-cypress.yml   |     2 +-
 .../workflows/superset-applitools-storybook.yml    |     2 +-
 .github/workflows/superset-cli.yml                 |    21 +-
 .github/workflows/superset-docs-deploy.yml         |     5 +-
 .github/workflows/superset-docs-verify.yml         |     4 +-
 .github/workflows/superset-e2e.yml                 |    35 +-
 .github/workflows/superset-frontend.yml            |    38 +-
 .github/workflows/superset-helm-lint.yml           |     5 +-
 .../workflows/superset-python-integrationtest.yml  |    80 +-
 .github/workflows/superset-python-misc.yml         |    35 +-
 .github/workflows/superset-python-presto-hive.yml  |    60 +-
 .github/workflows/superset-python-unittest.yml     |    28 +-
 .github/workflows/superset-translations.yml        |    34 +-
 .github/workflows/supersetbot.yml                  |    35 +-
 .github/workflows/tech-debt.yml                    |     2 +-
 .github/workflows/update-monorepo-lockfiles.yml    |     7 +-
 .gitignore                                         |     1 +
 .pre-commit-config.yaml                            |     1 +
 ASF/doap_Superset.rdf                              |    63 +
 CHANGELOG.md                                       |     2 +
 CHANGELOG/3.1.2.md                                 |    93 +
 CHANGELOG/4.0.0.md                                 |   472 +
 CONTRIBUTING.md                                    |     6 +-
 Dockerfile                                         |    28 +-
 Makefile                                           |     6 +-
 NOTICE                                             |     2 +-
 README.md                                          |     2 +-
 RELEASING/Dockerfile.from_local_tarball            |     2 +-
 RELEASING/Dockerfile.from_svn_tarball              |     2 +-
 RELEASING/Dockerfile.make_docs                     |     2 +-
 RELEASING/Dockerfile.make_tarball                  |     2 +-
 RELEASING/email_templates/announce.j2              |     4 +-
 RELEASING/email_templates/result_pmc.j2            |     3 +-
 RELEASING/email_templates/vote_pmc.j2              |     6 +-
 RELEASING/generate_email.py                        |     2 +-
 RELEASING/release-notes-4-0/README.md              |   151 +
 .../release-notes-4-0/media/alert-modal-1.png      |   Bin 0 -> 156064 bytes
 .../release-notes-4-0/media/alert-modal-2.png      |   Bin 0 -> 146949 bytes
 .../release-notes-4-0/media/alert-modal-3.png      |   Bin 0 -> 158396 bytes
 .../release-notes-4-0/media/dashboard-dnd-1.png    |   Bin 0 -> 626066 bytes
 .../release-notes-4-0/media/dashboard-dnd-2.png    |   Bin 0 -> 451634 bytes
 RELEASING/release-notes-4-0/media/explore-dnd.png  |   Bin 0 -> 640684 bytes
 RELEASING/release-notes-4-0/media/sunburst.png     |   Bin 0 -> 383032 bytes
 RELEASING/release-notes-4-0/media/tags-1.png       |   Bin 0 -> 273468 bytes
 RELEASING/release-notes-4-0/media/tags-2.png       |   Bin 0 -> 301495 bytes
 RESOURCES/FEATURE_FLAGS.md                         |    14 +-
 RESOURCES/STANDARD_ROLES.md                        |   419 +-
 UPDATING.md                                        |    26 +-
 docker-compose-image-tag.yml                       |    37 +-
 docker-compose-non-dev.yml                         |    39 +-
 docker-compose.yml                                 |    55 +-
 docker/.env                                        |    10 +
 docker/docker-bootstrap.sh                         |     8 -
 docker/docker-frontend.sh                          |     2 +-
 docs/docs/contributing/local-backend.mdx           |     7 +-
 docs/docs/contributing/pull-request-guidelines.mdx |     4 +-
 .../docs/databases/installing-database-drivers.mdx |     4 +-
 docs/docs/installation/configuring-superset.mdx    |    18 +-
 docs/docs/installation/docker.mdx                  |     2 +-
 .../installation/installing-superset-from-pypi.mdx |     6 +-
 .../installing-superset-using-docker-compose.mdx   |    64 +-
 docs/docs/installation/running-on-kubernetes.mdx   |     2 +-
 docs/docs/installation/sql-templating.mdx          |    14 +
 docs/docs/intro.mdx                                |     2 +-
 docs/docs/miscellaneous/country-map-tools.mdx      |   130 +-
 docs/docs/quickstart.mdx                           |    96 +-
 docs/docusaurus.config.js                          |    21 +-
 docs/package.json                                  |    15 +-
 docs/src/fonts/Roboto-Bold.woff                    |   Bin 0 -> 94476 bytes
 docs/src/fonts/Roboto-Bold.woff2                   |   Bin 0 -> 63920 bytes
 docs/src/fonts/Roboto-Regular.woff                 |   Bin 0 -> 94220 bytes
 docs/src/fonts/Roboto-Regular.woff2                |   Bin 0 -> 63748 bytes
 docs/src/pages/community.tsx                       |    40 +-
 docs/src/pages/index.tsx                           |     2 +-
 docs/src/styles/custom.css                         |    15 +-
 docs/static/.asf.yaml                              |     2 +-
 docs/static/.htaccess                              |     2 +-
 docs/static/video/superset-video-4k.mp4            |   Bin 66845979 -> 0 bytes
 docs/yarn.lock                                     |   331 +-
 helm/superset/Chart.yaml                           |     4 +-
 helm/superset/README.md                            |     2 +-
 pyproject.toml                                     |   394 +
 requirements/base.txt                              |    92 +-
 requirements/development.in                        |    24 +-
 requirements/development.txt                       |   130 +-
 scripts/build_docker.py                            |     8 +-
 scripts/change_detector.py                         |   156 +
 scripts/check_license.sh                           |     2 +-
 scripts/ci_check_no_file_changes.sh                |    68 -
 setup.cfg                                          |    52 -
 setup.py                                           |   156 +-
 superset-embedded-sdk/README.md                    |     3 +
 superset-frontend/.nvmrc                           |     2 +-
 superset-frontend/cypress-base/cypress.config.ts   |    91 +-
 .../cypress/e2e/chart_list/list.test.ts            |     9 +-
 .../cypress/e2e/dashboard/drilltodetail.test.ts    |    18 +-
 .../cypress/e2e/dashboard/editmode.test.ts         |    26 +-
 .../cypress-base/cypress/e2e/explore/chart.test.js |     4 +-
 superset-frontend/cypress-base/package-lock.json   | 19000 ++++-----
 superset-frontend/cypress-base/package.json        |     2 +-
 superset-frontend/cypress-base/tsconfig.json       |     2 +-
 superset-frontend/package-lock.json                |  3121 +-
 superset-frontend/package.json                     |    10 +-
 .../packages/generator-superset/README.md          |     2 +-
 .../packages/superset-ui-chart-controls/README.md  |     2 +-
 .../src/operators/index.ts                         |     1 +
 .../src/operators/rankOperator.ts}                 |    20 +-
 .../src/operators/types.ts                         |     2 +-
 .../test/operators/rankOperator.test.ts}           |    32 +-
 .../packages/superset-ui-core/README.md            |     2 +-
 .../packages/superset-ui-core/package.json         |     4 +-
 .../src/connection/callApi/parseResponse.ts        |     6 +-
 .../superset-ui-core/src/connection/constants.ts   |     5 +
 .../superset-ui-core/src/connection/index.ts       |     1 +
 .../useChildElementTruncation.test.ts              |   196 +-
 .../useTruncation/useChildElementTruncation.ts     |   122 +-
 .../src/query}/getClientErrorObject.ts             |    54 +-
 .../packages/superset-ui-core/src/query/index.ts   |     1 +
 .../src/query/types/PostProcessing.ts              |    12 +-
 .../superset-ui-core/src/query/types/Query.ts      |    21 +-
 .../src/query/types/QueryResponse.ts               |     1 +
 .../src/time-comparison/fetchTimeRange.ts}         |    34 +-
 .../superset-ui-core/src/time-comparison/index.ts  |     1 +
 .../superset-ui-core/src/utils/featureFlags.ts     |     1 +
 .../chart/components/ChartDataProvider.test.tsx    |    13 +-
 .../test/color/SharedLabelColorSingleton.test.ts   |    14 +-
 .../test/connection/callApi/parseResponse.test.ts  |    12 +-
 .../test/query/getClientErrorObject.test.ts        |   233 +
 .../test/time-comparison/fetchTimeRange.test.ts    |   118 +
 .../packages/superset-ui-demo/README.md            |     3 +-
 .../packages/superset-ui-demo/package.json         |     4 +-
 .../plugins/legacy-plugin-chart-calendar/README.md |     4 +-
 .../plugins/legacy-plugin-chart-chord/README.md    |     4 +-
 .../plugins/legacy-plugin-chart-chord/src/index.js |     8 +-
 .../legacy-plugin-chart-country-map/README.md      |     4 +-
 .../legacy-plugin-chart-event-flow/README.md       |     4 +-
 .../plugins/legacy-plugin-chart-heatmap/README.md  |     4 +-
 .../legacy-plugin-chart-heatmap/src/index.js       |     9 +-
 .../legacy-plugin-chart-histogram/README.md        |     4 +-
 .../plugins/legacy-plugin-chart-horizon/README.md  |     4 +-
 .../plugins/legacy-plugin-chart-map-box/README.md  |     4 +-
 .../legacy-plugin-chart-paired-t-test/README.md    |     4 +-
 .../README.md                                      |     4 +-
 .../src/index.js                                   |     2 +-
 .../legacy-plugin-chart-partition/README.md        |     4 +-
 .../plugins/legacy-plugin-chart-rose/README.md     |     4 +-
 .../legacy-plugin-chart-sankey-loop/README.md      |     4 +-
 .../plugins/legacy-plugin-chart-sankey/README.md   |     4 +-
 .../legacy-plugin-chart-world-map/README.md        |     4 +-
 .../legacy-plugin-chart-world-map/src/index.js     |     1 -
 .../plugins/legacy-preset-chart-deckgl/README.md   |     4 +-
 .../legacy-preset-chart-deckgl/package.json        |     8 +-
 .../src/layers/Contour/index.ts                    |     2 +-
 .../src/layers/Geojson/index.ts                    |     2 +-
 .../src/layers/Grid/index.ts                       |     2 +-
 .../src/layers/Heatmap/index.ts                    |     2 +-
 .../src/layers/Hex/index.ts                        |     2 +-
 .../src/layers/Polygon/index.ts                    |     8 +-
 .../src/layers/Screengrid/index.ts                 |     8 +-
 .../plugins/legacy-preset-chart-nvd3/README.md     |     4 +-
 .../plugins/legacy-preset-chart-nvd3/package.json  |     2 +-
 .../legacy-preset-chart-nvd3/src/Area/index.js     |     2 -
 .../legacy-preset-chart-nvd3/src/Bar/index.js      |     2 -
 .../legacy-preset-chart-nvd3/src/Bubble/index.js   |     2 -
 .../legacy-preset-chart-nvd3/src/DistBar/index.js  |     4 -
 .../legacy-preset-chart-nvd3/src/Line/index.js     |     2 +-
 .../legacy-preset-chart-nvd3/src/Pie/index.js      |     2 +-
 .../plugins/plugin-chart-echarts/README.md         |     4 +-
 .../plugins/plugin-chart-echarts/package.json      |    35 +-
 .../BigNumber/BigNumberPeriodOverPeriod/index.ts   |     1 -
 .../src/BigNumber/BigNumberTotal/index.ts          |     1 -
 .../src/BigNumber/BigNumberWithTrendline/index.ts  |     1 -
 .../plugin-chart-echarts/src/Bubble/index.ts       |     1 -
 .../plugin-chart-echarts/src/Graph/index.ts        |     1 -
 .../plugin-chart-echarts/src/Heatmap/Heatmap.tsx   |    22 +-
 .../plugin-chart-echarts/src/Heatmap/buildQuery.ts |    68 +
 .../src/Heatmap/controlPanel.tsx                   |   304 +
 .../src/Heatmap/images/example1.png                |   Bin 0 -> 69070 bytes
 .../src/Heatmap/images/example2.png                |   Bin 0 -> 101622 bytes
 .../src/Heatmap/images/example3.png                |   Bin 0 -> 76688 bytes
 .../src/Heatmap/images/thumbnail.png               |   Bin 0 -> 66135 bytes
 .../src/Heatmap/index.ts}                          |    23 +-
 .../src/Heatmap/transformProps.ts                  |   243 +
 .../plugin-chart-echarts/src/Heatmap/types.ts      |    53 +
 .../src/MixedTimeseries/index.ts                   |     2 -
 .../plugins/plugin-chart-echarts/src/Pie/index.ts  |     1 -
 .../plugin-chart-echarts/src/Radar/index.ts        |     1 -
 .../plugin-chart-echarts/src/Sunburst/index.ts     |     7 +-
 .../src/Timeseries/Area/index.ts                   |     1 -
 .../src/Timeseries/Regular/Bar/index.ts            |     2 -
 .../src/Timeseries/Regular/Line/index.ts           |     1 -
 .../src/Timeseries/Regular/Scatter/index.ts        |     1 -
 .../src/Timeseries/Regular/SmoothLine/index.ts     |     1 -
 .../src/Timeseries/Step/index.ts                   |     1 -
 .../plugin-chart-echarts/src/Timeseries/index.ts   |     1 -
 .../src/Timeseries/transformProps.ts               |     1 +
 .../src/Timeseries/transformers.ts                 |    21 +-
 .../plugin-chart-echarts/src/Treemap/index.ts      |     1 -
 .../plugins/plugin-chart-echarts/src/index.ts      |     2 +
 .../plugin-chart-echarts/src/utils/series.ts       |    38 +-
 .../plugin-chart-echarts/test/utils/series.test.ts |    31 +
 .../plugins/plugin-chart-handlebars/README.md      |     3 +-
 .../plugins/plugin-chart-handlebars/package.json   |     2 +-
 .../plugins/plugin-chart-pivot-table/README.md     |     3 +-
 .../plugins/plugin-chart-pivot-table/package.json  |     4 +-
 .../plugins/plugin-chart-table/README.md           |     4 +-
 .../plugins/plugin-chart-table/package.json        |     4 +-
 .../plugin-chart-table/src/DataTable/DataTable.tsx |     8 +-
 .../src/DataTable/hooks/useSticky.tsx              |    20 +-
 .../plugins/plugin-chart-table/src/TableChart.tsx  |    11 +-
 .../plugin-chart-table/src/controlPanel.tsx        |    12 +
 .../plugins/plugin-chart-table/src/index.ts        |     1 -
 .../plugin-chart-table/src/transformProps.ts       |     2 +
 .../plugins/plugin-chart-table/src/types.ts        |     1 +
 .../plugins/plugin-chart-table/test/testData.ts    |     1 +
 .../plugins/plugin-chart-word-cloud/README.md      |     4 +-
 .../plugin-chart-word-cloud/src/plugin/index.ts    |     9 +-
 superset-frontend/src/SqlLab/actions/sqlLab.js     |    12 +-
 .../src/SqlLab/actions/sqlLab.test.js              |    24 +-
 .../AceEditorWrapper/useAnnotations.test.ts        |     2 +-
 .../components/AceEditorWrapper/useAnnotations.ts  |     4 +-
 .../src/SqlLab/components/ResultSet/index.tsx      |     6 +
 .../SqlLab/components/ShareSqlLabQuery/index.tsx   |     2 +-
 .../src/SqlLab/components/SqlEditor/index.tsx      |    16 +
 superset-frontend/src/SqlLab/fixtures.ts           |     1 +
 .../src/assets/images/icons/ballot.svg             |     4 +-
 .../src/assets/images/icons/category.svg           |     4 +-
 superset-frontend/src/assets/images/icons/tags.svg |     4 +-
 superset-frontend/src/components/Chart/Chart.jsx   |     2 +
 .../Chart/ChartContextMenu/ChartContextMenu.tsx    |     4 +
 .../src/components/Chart/ChartErrorMessage.tsx     |     2 +-
 .../Chart/DrillBy/DrillByMenuItems.test.tsx        |     4 +-
 .../components/Chart/DrillBy/DrillByMenuItems.tsx  |     4 +-
 .../Chart/DrillBy/useDrillByBreadcrumbs.tsx        |    42 +-
 .../Chart/DrillBy/useResultsTableView.tsx          |     2 +
 .../DrillDetail/DrillDetailMenuItems.test.tsx      |    28 +-
 .../Chart/DrillDetail/DrillDetailMenuItems.tsx     |    16 +-
 .../Chart/DrillDetail/DrillDetailPane.tsx          |     4 +-
 .../src/components/Chart/chartAction.js            |    23 +-
 .../src/components/Chart/chartActions.test.js      |   117 +-
 .../CopyToClipboard/{index.jsx => index.tsx}       |    54 +-
 .../Datasource/ChangeDatasourceModal.tsx           |     8 +-
 .../src/components/Datasource/DatasourceEditor.jsx |     2 +-
 .../src/components/Datasource/DatasourceModal.tsx  |     4 +-
 .../src/components/Dropdown/Dropdown.test.tsx      |    65 +
 .../src/components/Dropdown/index.tsx              |    22 +-
 .../src/components/EditableTitle/index.tsx         |     1 +
 .../ErrorMessage/BasicErrorAlert.test.tsx          |     3 +-
 .../components/ErrorMessage/BasicErrorAlert.tsx    |     3 +-
 .../ErrorMessage/DatabaseErrorMessage.test.tsx     |    11 +-
 .../ErrorMessage/DatabaseErrorMessage.tsx          |     4 +-
 .../DatasetNotFoundErrorMessage.test.tsx           |     2 +-
 .../components/ErrorMessage/ErrorAlert.test.tsx    |     3 +-
 .../src/components/ErrorMessage/ErrorAlert.tsx     |    40 +-
 .../ErrorMessageWithStackTrace.test.tsx            |     2 +-
 .../ErrorMessage/ErrorMessageWithStackTrace.tsx    |     3 +-
 .../ErrorMessage/MarshmallowErrorMessage.test.tsx  |     8 +-
 .../ErrorMessage/OAuth2RedirectMessage.test.tsx    |   171 +
 .../ErrorMessage/OAuth2RedirectMessage.tsx         |   179 +
 .../ErrorMessage/ParameterErrorMessage.test.tsx    |     2 +-
 .../ErrorMessage/TimeoutErrorMessage.test.tsx      |     2 +-
 .../src/components/ErrorMessage/types.ts           |    87 +-
 .../src/components/FacePile/index.tsx              |    16 +-
 .../src/components/FilterableTable/index.tsx       |     7 +-
 .../src/components/Form/LabeledErrorBoundInput.tsx |    18 +
 .../src/components/ListView/CrossLinks.tsx         |    25 +-
 .../components/ListView/DashboardCrossLinks.tsx    |    36 +-
 superset-frontend/src/components/Menu/index.tsx    |    29 +
 .../src/components/ModalTrigger/index.tsx          |     3 +-
 .../src/components/PageHeaderWithActions/index.tsx |     3 +
 .../src/components/Select/AsyncSelect.test.tsx     |    82 +-
 .../src/components/Select/AsyncSelect.tsx          |    50 +-
 .../src/components/Select/Select.stories.tsx       |   269 +-
 .../src/components/Select/Select.test.tsx          |    26 +
 superset-frontend/src/components/Select/Select.tsx |    26 +-
 superset-frontend/src/components/Select/utils.tsx  |    18 +-
 .../src/components/TableSelector/index.tsx         |    11 +-
 superset-frontend/src/components/Tags/utils.tsx    |    11 +-
 .../src/components/TruncatedList/index.tsx         |    10 +-
 superset-frontend/src/constants.ts                 |     8 +
 .../src/dashboard/actions/dashboardInfo.ts         |     8 +-
 .../src/dashboard/actions/dashboardState.js        |     2 +-
 .../src/dashboard/actions/sliceEntities.ts         |     8 +-
 .../components/CssEditor/{index.jsx => index.tsx}  |    58 +-
 .../DashboardBuilder/DashboardBuilder.tsx          |     5 +
 .../DashboardBuilder/DashboardContainer.tsx        |    13 +
 .../DetailsPanel/DetailsPanel.test.tsx             |    92 +-
 .../components/FiltersBadge/DetailsPanel/index.tsx |    86 +-
 .../FiltersBadge/FilterIndicator/index.tsx         |    69 +-
 .../dashboard/components/FiltersBadge/Styles.tsx   |     3 +-
 .../dashboard/components/FiltersBadge/index.tsx    |    41 +-
 .../Header/HeaderActionsDropdown/index.jsx         |    43 +-
 .../dashboard/components/PropertiesModal/index.tsx |     2 +-
 .../SliceHeaderControls.test.tsx                   |   198 +-
 .../components/SliceHeaderControls/index.tsx       |   476 +-
 .../components/URLShortLinkButton/index.tsx        |     5 +-
 .../src/dashboard/components/dnd/DragDroppable.jsx |     5 +-
 .../dashboard/components/gridComponents/Row.jsx    |    16 +-
 .../dashboard/components/menu/HoverMenu.test.tsx   |    16 +-
 .../src/dashboard/components/menu/HoverMenu.tsx    |    19 +
 .../components/menu/ShareMenuItems/index.tsx       |    31 +-
 .../FilterBar/FilterControls/FilterControl.tsx     |     1 +
 .../FilterBar/FilterControls/FilterValue.tsx       |     6 +-
 .../nativeFilters/FilterCard/DependenciesRow.tsx   |    10 +-
 .../nativeFilters/FilterCard/NameRow.tsx           |     5 +-
 .../nativeFilters/FilterCard/ScopeRow.tsx          |    12 +-
 .../FiltersConfigForm/ColumnSelect.test.tsx        |     4 +-
 .../FiltersConfigForm/ColumnSelect.tsx             |     9 +-
 .../FiltersConfigForm/DatasetSelect.tsx            |     7 +-
 .../FiltersConfigForm/FiltersConfigForm.tsx        |     6 +-
 .../src/dashboard/containers/DashboardPage.tsx     |     4 +
 superset-frontend/src/dashboard/styles.ts          |    42 +
 superset-frontend/src/dashboard/types.ts           |    29 +
 .../src/explore/actions/datasourcesActions.test.ts |     4 +-
 .../src/explore/actions/datasourcesActions.ts      |     3 +-
 .../src/explore/components/ChartPills.tsx          |     2 +-
 .../explore/components/ControlPanelsContainer.tsx  |    27 +-
 .../explore/components/DataTableControl/index.tsx  |    23 +-
 .../components/DataTableControls.tsx               |     7 +-
 .../DataTablesPane/components/SamplesPane.tsx      |     4 +
 .../components/SingleQueryResultPane.tsx           |     2 +
 .../DataTablesPane/components/useResultsPane.tsx   |     5 +-
 .../DataTablesPane/test/DataTablesPane.test.tsx    |     5 +
 .../test/ResultsPaneOnDashboard.test.tsx           |     4 +
 .../DataTablesPane/test/SamplesPane.test.tsx       |     2 +
 .../src/explore/components/DataTablesPane/types.ts |     2 +
 .../DatasourcePanel/DatasourcePanel.test.tsx       |    95 +-
 .../DatasourcePanel/DatasourcePanelItem.test.tsx   |   199 +
 .../DatasourcePanel/DatasourcePanelItem.tsx        |   269 +
 .../explore/components/DatasourcePanel/index.tsx   |   403 +-
 .../ExploreContainer/ExploreContainer.test.tsx     |   123 +
 .../explore/components/ExploreContainer/index.tsx  |    88 +
 .../components/ExploreViewContainer/index.jsx      |    44 +-
 .../explore/components/PropertiesModal/index.tsx   |     2 +-
 .../RowCountLabel/RowCountLabel.test.tsx           |     2 +-
 .../src/explore/components/RowCountLabel/index.tsx |    10 +-
 .../AnnotationLayerControl/AnnotationLayer.jsx     |   350 +-
 .../AnnotationLayer.test.tsx                       |   125 +-
 .../explore/components/controls/BoundsControl.tsx  |    14 +-
 .../controls/DateFilterControl/DateFilterLabel.tsx |     2 +-
 .../DateFilterControl/components/AdvancedFrame.tsx |     3 +-
 .../controls/DateFilterControl/tests/utils.test.ts |    33 -
 .../DateFilterControl/utils/dateFilterUtils.ts     |    47 +-
 .../controls/DateFilterControl/utils/dateParser.ts |     2 +-
 .../DndFilterSelect.test.tsx                       |    77 +-
 .../DndColumnSelectControl/DndFilterSelect.tsx     |     4 +-
 .../DndColumnSelectControl/DndSelectLabel.test.tsx |    40 +
 .../DndColumnSelectControl/DndSelectLabel.tsx      |    37 +-
 .../utils/useGetTimeRangeLabel.test.ts             |     6 +-
 .../FilterControl/utils/useGetTimeRangeLabel.tsx   |     3 +-
 .../components/controls/OptionControls/index.tsx   |    92 +-
 .../controls/SelectAsyncControl/index.tsx          |     3 +-
 .../explore/components/controls/ViewQueryModal.tsx |     8 +-
 .../controls/VizTypeControl/VizTypeGallery.tsx     |    62 +-
 .../components/controls/VizTypeControl/index.tsx   |     5 +-
 .../DashboardsSubMenu.test.tsx                     |     2 +-
 .../useExploreAdditionalActionsMenu/index.jsx      |     2 +-
 .../src/features/alerts/AlertReportModal.test.tsx  |     5 +-
 .../src/features/alerts/AlertReportModal.tsx       |    96 +-
 .../alerts/components/NotificationMethod.tsx       |    10 +-
 superset-frontend/src/features/alerts/types.ts     |     6 +
 .../CSVUploadModal/CSVUploadModal.test.tsx         |   355 +
 .../databases/CSVUploadModal/ColumnsPreview.tsx    |    54 +
 .../CSVUploadModal/StyledFormItemWithTip.tsx}      |    45 +-
 .../features/databases/CSVUploadModal/index.tsx    |   841 +
 .../features/databases/CSVUploadModal/styles.ts    |   100 +
 .../DatabaseConnectionForm/CommonParameters.tsx    |    10 +-
 .../DatabaseModal/DatabaseConnectionForm/index.tsx |     2 +
 .../databases/DatabaseModal/ModalHeader.tsx        |     3 +-
 superset-frontend/src/features/databases/types.ts  |     2 +
 .../src/features/home/ActivityTable.test.tsx       |   137 +-
 .../src/features/home/ChartTable.test.tsx          |    12 +-
 superset-frontend/src/features/home/Menu.tsx       |     8 +-
 .../src/features/home/RightMenu.test.tsx           |     2 +-
 superset-frontend/src/features/home/SubMenu.tsx    |    18 +-
 .../src/features/reports/ReportModal/index.tsx     |     7 +-
 .../components/Select/SelectFilterPlugin.tsx       |     6 +-
 .../src/hooks/apiResources/queryApi.ts             |     4 +-
 .../src/middleware/asyncEvent.test.ts              |     5 +-
 superset-frontend/src/middleware/asyncEvent.ts     |     8 +-
 .../src/pages/AnnotationList/index.tsx             |     9 +-
 superset-frontend/src/pages/Chart/Chart.test.tsx   |     3 +
 superset-frontend/src/pages/Chart/index.tsx        |     2 +-
 .../src/pages/ChartCreation/index.tsx              |     6 +-
 superset-frontend/src/pages/ChartList/index.tsx    |    19 +-
 .../src/pages/DashboardList/index.tsx              |     3 +
 superset-frontend/src/pages/DatabaseList/index.tsx |    17 +-
 superset-frontend/src/setup/setupApp.ts            |     4 +-
 superset-frontend/src/setup/setupErrorMessages.ts  |     7 +-
 superset-frontend/src/types/bootstrapTypes.ts      |     1 +
 .../src/utils/getClientErrorObject.test.ts         |    83 -
 superset-frontend/src/utils/localStorageHelpers.ts |     2 +
 superset-frontend/src/views/CRUD/hooks.ts          |     9 +-
 superset-frontend/src/views/CRUD/utils.tsx         |     4 +-
 .../src/visualizations/presets/MainPreset.js       |    17 +-
 superset-websocket/.nvmrc                          |     2 +-
 superset-websocket/package-lock.json               |   161 +-
 superset-websocket/package.json                    |     6 +-
 superset-websocket/utils/client-ws-app/.nvmrc      |     2 +-
 .../utils/client-ws-app/package-lock.json          |    30 +-
 .../utils/client-ws-app/package.json               |     2 +-
 superset/__init__.py                               |     1 +
 superset/cli/viz_migrations.py                     |     3 +
 superset/commands/chart/data/get_data_command.py   |     1 -
 superset/commands/database/csv_import.py           |   198 +
 superset/commands/database/exceptions.py           |    16 +
 superset/commands/database/test_connection.py      |     4 +-
 superset/commands/database/validate.py             |     2 +-
 superset/commands/dataset/importers/v1/utils.py    |     2 +-
 superset/commands/report/alert.py                  |     2 +-
 superset/commands/report/exceptions.py             |     4 +
 superset/commands/report/execute.py                |    23 +-
 superset/commands/sql_lab/execute.py               |     4 +-
 superset/common/query_actions.py                   |     2 +
 superset/common/query_context.py                   |     2 +-
 superset/common/query_context_factory.py           |     2 +-
 superset/common/query_context_processor.py         |     8 +
 superset/common/query_object.py                    |     2 +-
 superset/common/utils/query_cache_manager.py       |     5 +
 superset/config.py                                 |    63 +-
 superset/connectors/sqla/models.py                 |    17 +-
 superset/connectors/sqla/utils.py                  |     2 +-
 superset/connectors/sqla/views.py                  |     3 +-
 superset/daos/base.py                              |     2 +-
 superset/daos/database.py                          |     8 +-
 superset/{utils/retries.py => daos/user.py}        |    43 +-
 superset/databases/api.py                          |   182 +-
 superset/databases/decorators.py                   |     4 +-
 superset/databases/schemas.py                      |   223 +-
 superset/databases/utils.py                        |     1 -
 superset/db_engine_specs/README.md                 |    55 +-
 superset/db_engine_specs/base.py                   |   208 +-
 superset/db_engine_specs/bigquery.py               |     2 +-
 superset/db_engine_specs/drill.py                  |     6 +-
 superset/db_engine_specs/duckdb.py                 |   220 +-
 superset/db_engine_specs/gsheets.py                |    20 +-
 superset/db_engine_specs/hive.py                   |    12 +-
 superset/db_engine_specs/impala.py                 |    13 +-
 .../db_engine_specs/mariadb.py                     |     8 +-
 superset/db_engine_specs/postgres.py               |     2 +-
 superset/db_engine_specs/presto.py                 |     7 +-
 superset/db_engine_specs/trino.py                  |    17 +-
 superset/errors.py                                 |     6 +-
 superset/examples/bart_lines.py                    |     2 +-
 superset/examples/birth_names.py                   |     4 +-
 superset/examples/country_map.py                   |     2 +-
 superset/examples/energy.py                        |     2 +-
 superset/examples/flights.py                       |     2 +-
 superset/examples/long_lat.py                      |     2 +-
 superset/examples/multiformat_time_series.py       |     2 +-
 superset/examples/paris.py                         |     2 +-
 superset/examples/random_time_series.py            |     2 +-
 superset/examples/sf_population_polygons.py        |     2 +-
 superset/examples/supported_charts_dashboard.py    |     2 +-
 superset/examples/world_bank.py                    |     2 +-
 superset/exceptions.py                             |    50 +
 superset/extensions/metadb.py                      |     2 +-
 superset/forms.py                                  |    25 +-
 superset/initialization/__init__.py                |     5 +-
 superset/jinja_context.py                          |    80 +-
 superset/key_value/types.py                        |     1 +
 .../migrations/shared/migrate_viz/processors.py    |    15 +
 ...20_16-02_678eefb4ab44_add_access_token_table.py |    84 +
 ...-01_22-44_c22cb5c2e546_user_attr_avatar_url.py} |    33 +-
 ...8_15-43_5ad7321c2169_mig_new_csv_upload_perm.py |    85 +
 superset/models/core.py                            |    98 +-
 superset/models/dashboard.py                       |     7 +-
 superset/models/helpers.py                         |     8 +-
 superset/models/slice.py                           |    12 +-
 superset/models/sql_lab.py                         |    44 +-
 superset/models/user_attributes.py                 |     5 +-
 superset/reports/models.py                         |     7 +-
 superset/reports/notifications/base.py             |     1 +
 superset/reports/notifications/email.py            |    12 +-
 superset/reports/notifications/slack.py            |    23 +-
 superset/reports/schemas.py                        |     4 +-
 superset/security/manager.py                       |    22 +-
 superset/sql_lab.py                                |    14 +-
 superset/sql_parse.py                              |   441 +-
 superset/sql_validators/presto_db.py               |     6 +-
 superset/sqllab/query_render.py                    |     3 +-
 superset/superset_typing.py                        |    49 +
 superset/tags/models.py                            |     4 +-
 .../templates/superset/oauth2.html                 |    23 +-
 superset/translations/zh/LC_MESSAGES/messages.json |  2598 +-
 superset/translations/zh/LC_MESSAGES/messages.po   | 40177 ++++++++++---------
 superset/utils/core.py                             |    15 +-
 superset/utils/date_parser.py                      |     2 +-
 superset/utils/hashing.py                          |     4 +-
 superset/utils/lock.py                             |    99 +
 superset/utils/mock_data.py                        |     2 +-
 superset/utils/oauth2.py                           |   182 +
 superset/utils/pandas_postprocessing/__init__.py   |     2 +
 .../{hashing.py => pandas_postprocessing/rank.py}  |    34 +-
 superset/utils/pandas_postprocessing/rolling.py    |     2 +-
 superset/utils/pdf.py                              |    48 +
 superset/utils/retries.py                          |     4 +-
 superset/utils/slack.py                            |    53 +
 superset/views/base.py                             |    17 +-
 superset/views/chart/mixin.py                      |     2 +-
 superset/views/core.py                             |     4 +
 superset/views/database/forms.py                   |   173 -
 superset/views/database/mixins.py                  |     2 +-
 superset/views/database/views.py                   |   147 +-
 superset/views/users/api.py                        |    71 +-
 superset/viz.py                                    |     2 +
 tests/conftest.py                                  |     2 +-
 tests/integration_tests/access_tests.py            |     7 +-
 .../annotation_layers/api_tests.py                 |    69 +-
 tests/integration_tests/async_events/api_tests.py  |     9 +-
 tests/integration_tests/base_api_tests.py          |    37 +-
 tests/integration_tests/base_tests.py              |    11 +-
 tests/integration_tests/cache_tests.py             |     7 +-
 tests/integration_tests/celery_tests.py            |    34 +-
 tests/integration_tests/charts/api_tests.py        |   131 +-
 tests/integration_tests/charts/commands_tests.py   |     7 +-
 tests/integration_tests/charts/data/api_tests.py   |    28 +-
 tests/integration_tests/charts/schema_tests.py     |     3 -
 tests/integration_tests/conftest.py                |     4 +-
 .../integration_tests/constants.py                 |    12 +-
 tests/integration_tests/core_tests.py              |    90 +-
 tests/integration_tests/css_templates/api_tests.py |    34 +-
 tests/integration_tests/csv_upload_tests.py        |   234 +-
 tests/integration_tests/dashboard_tests.py         |    14 +-
 tests/integration_tests/dashboards/api_tests.py    |   169 +-
 tests/integration_tests/dashboards/base_case.py    |     3 -
 tests/integration_tests/dashboards/consts.py       |     3 -
 tests/integration_tests/dashboards/dao_tests.py    |     1 -
 .../dashboards/security/base_case.py               |     1 +
 .../dashboards/security/security_dataset_tests.py  |     5 +-
 .../dashboards/security/security_rbac_tests.py     |    41 +-
 tests/integration_tests/databases/api_tests.py     |   224 +-
 .../databases/commands}/__init__.py                |     0
 .../databases/commands/csv_upload_test.py          |   283 +
 tests/integration_tests/datasets/api_tests.py      |   209 +-
 tests/integration_tests/datasets/commands_tests.py |    14 +-
 tests/integration_tests/datasource/api_tests.py    |    29 +-
 tests/integration_tests/datasource_tests.py        |    43 +-
 .../db_engine_specs/hive_tests.py                  |     4 +-
 tests/integration_tests/dynamic_plugins_tests.py   |     9 +-
 tests/integration_tests/embedded/api_tests.py      |     5 +-
 .../integration_tests/fixtures/energy_dashboard.py |     4 +-
 .../fixtures/unicode_dashboard.py                  |     4 +-
 tests/integration_tests/fixtures/users.py          |     5 +-
 .../fixtures/world_bank_dashboard.py               |     4 +-
 tests/integration_tests/import_export_tests.py     |     7 +-
 tests/integration_tests/log_api_tests.py           |    30 +-
 tests/integration_tests/log_model_view_tests.py    |     8 +-
 tests/integration_tests/model_tests.py             |    26 +-
 tests/integration_tests/queries/api_tests.py       |    27 +-
 .../queries/saved_queries/api_tests.py             |    65 +-
 .../queries/saved_queries/commands_tests.py        |     1 +
 tests/integration_tests/query_context_tests.py     |    89 +-
 tests/integration_tests/reports/api_tests.py       |    81 +-
 tests/integration_tests/reports/commands_tests.py  |    22 +-
 tests/integration_tests/reports/utils.py           |     4 +-
 tests/integration_tests/security/api_tests.py      |    13 +-
 .../security/row_level_security_tests.py           |    45 +-
 tests/integration_tests/security_tests.py          |    15 +-
 tests/integration_tests/sql_lab/api_tests.py       |    33 +-
 tests/integration_tests/sql_validator_tests.py     |     5 +-
 tests/integration_tests/sqla_models_tests.py       |    55 +
 tests/integration_tests/sqllab_tests.py            |   104 +-
 tests/integration_tests/strategy_tests.py          |    13 +-
 tests/integration_tests/tags/api_tests.py          |    41 +-
 tests/integration_tests/thumbnails_tests.py        |    30 +-
 tests/integration_tests/users/api_tests.py         |    33 +-
 tests/integration_tests/utils/encrypt_tests.py     |     2 +-
 tests/integration_tests/utils_tests.py             |     3 +-
 .../unit_tests/connectors}/__init__.py             |     0
 .../unit_tests/connectors/sqla}/__init__.py        |     0
 tests/unit_tests/connectors/sqla/models_test.py    |    66 +
 tests/unit_tests/dao/user_test.py                  |    94 +
 tests/unit_tests/databases/api_test.py             |   537 +-
 tests/unit_tests/databases/schema_tests.py         |    42 +
 tests/unit_tests/db_engine_specs/test_base.py      |    20 +
 .../unit_tests/db_engine_specs/test_clickhouse.py  |     6 +-
 tests/unit_tests/db_engine_specs/test_databend.py  |     6 +-
 tests/unit_tests/db_engine_specs/test_drill.py     |     8 +-
 tests/unit_tests/db_engine_specs/test_duckdb.py    |    87 +
 .../db_engine_specs/test_elasticsearch.py          |     5 +-
 tests/unit_tests/db_engine_specs/test_gsheets.py   |   205 +
 tests/unit_tests/extensions/test_sqlalchemy.py     |    10 +-
 tests/unit_tests/fixtures/common.py                |    22 +-
 tests/unit_tests/forms_tests.py                    |    70 -
 tests/unit_tests/jinja_context_test.py             |   672 +-
 .../migrations/viz/heatmap_v1_v2_test.py           |    78 +
 tests/unit_tests/models/core_test.py               |     2 +-
 tests/unit_tests/models/helpers_test.py            |     6 +-
 tests/unit_tests/models/sql_lab_test.py            |    59 +
 tests/unit_tests/notifications/slack_tests.py      |     3 +-
 .../pandas_postprocessing/test_rolling.py          |     4 +-
 tests/unit_tests/sql_lab_test.py                   |     8 +-
 tests/unit_tests/sql_parse_tests.py                |   212 +-
 tests/unit_tests/test_jinja_context.py             |   305 -
 tests/unit_tests/utils/lock_tests.py               |    79 +
 tests/unit_tests/utils/oauth2_tests.py             |    95 +
 tox.ini                                            |   177 -
 632 files changed, 48526 insertions(+), 51350 deletions(-)
 create mode 100644 .github/actions/change-detector/action.yml
 create mode 100644 .github/actions/setup-supersetbot/action.yml
 delete mode 100644 .github/supersetbot/.eslintrc.json
 delete mode 100644 .github/supersetbot/README.md
 delete mode 100644 .github/supersetbot/jest.config.js
 delete mode 100644 .github/supersetbot/package-lock.json
 delete mode 100644 .github/supersetbot/package.json
 delete mode 100755 .github/supersetbot/src/cli.js
 delete mode 100644 .github/supersetbot/src/context.js
 delete mode 100644 .github/supersetbot/src/docker.js
 delete mode 100644 .github/supersetbot/src/docker.test.js
 delete mode 100644 .github/supersetbot/src/git.js
 delete mode 100644 .github/supersetbot/src/git_release.js
 delete mode 100644 .github/supersetbot/src/github.js
 delete mode 100644 .github/supersetbot/src/index.js
 delete mode 100644 .github/supersetbot/src/index.test.js
 delete mode 100644 .github/supersetbot/src/utils.js
 create mode 100644 .github/workflows/bump-python-package.yml
 delete mode 100644 .github/workflows/no-op.yml
 create mode 100644 ASF/doap_Superset.rdf
 create mode 100644 CHANGELOG/3.1.2.md
 create mode 100644 CHANGELOG/4.0.0.md
 create mode 100644 RELEASING/release-notes-4-0/README.md
 create mode 100644 RELEASING/release-notes-4-0/media/alert-modal-1.png
 create mode 100644 RELEASING/release-notes-4-0/media/alert-modal-2.png
 create mode 100644 RELEASING/release-notes-4-0/media/alert-modal-3.png
 create mode 100644 RELEASING/release-notes-4-0/media/dashboard-dnd-1.png
 create mode 100644 RELEASING/release-notes-4-0/media/dashboard-dnd-2.png
 create mode 100644 RELEASING/release-notes-4-0/media/explore-dnd.png
 create mode 100644 RELEASING/release-notes-4-0/media/sunburst.png
 create mode 100644 RELEASING/release-notes-4-0/media/tags-1.png
 create mode 100644 RELEASING/release-notes-4-0/media/tags-2.png
 create mode 100644 docs/src/fonts/Roboto-Bold.woff
 create mode 100644 docs/src/fonts/Roboto-Bold.woff2
 create mode 100644 docs/src/fonts/Roboto-Regular.woff
 create mode 100644 docs/src/fonts/Roboto-Regular.woff2
 delete mode 100644 docs/static/video/superset-video-4k.mp4
 create mode 100644 pyproject.toml
 create mode 100755 scripts/change_detector.py
 delete mode 100755 scripts/ci_check_no_file_changes.sh
 delete mode 100644 setup.cfg
 rename superset-frontend/{src/utils/errorMessages.ts => packages/superset-ui-chart-controls/src/operators/rankOperator.ts} (66%)
 copy superset-frontend/{src/dashboard/components/menu/HoverMenu.test.tsx => packages/superset-ui-chart-controls/test/operators/rankOperator.test.ts} (52%)
 rename superset-frontend/{src/utils => packages/superset-ui-core/src/query}/getClientErrorObject.ts (97%)
 copy superset-frontend/{src/explore/components/controls/DateFilterControl/utils/dateFilterUtils.ts => packages/superset-ui-core/src/time-comparison/fetchTimeRange.ts} (70%)
 create mode 100644 superset-frontend/packages/superset-ui-core/test/query/getClientErrorObject.test.ts
 create mode 100644 superset-frontend/packages/superset-ui-core/test/time-comparison/fetchTimeRange.test.ts
 rename .github/supersetbot/src/supersetbot => superset-frontend/plugins/plugin-chart-echarts/src/Heatmap/Heatmap.tsx (68%)
 mode change 100755 => 100644
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Heatmap/buildQuery.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Heatmap/controlPanel.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Heatmap/images/example1.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Heatmap/images/example2.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Heatmap/images/example3.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Heatmap/images/thumbnail.png
 copy superset-frontend/plugins/{legacy-plugin-chart-heatmap/src/index.js => plugin-chart-echarts/src/Heatmap/index.ts} (71%)
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Heatmap/transformProps.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Heatmap/types.ts
 rename superset-frontend/src/components/CopyToClipboard/{index.jsx => index.tsx} (74%)
 create mode 100644 superset-frontend/src/components/Dropdown/Dropdown.test.tsx
 create mode 100644 superset-frontend/src/components/ErrorMessage/OAuth2RedirectMessage.test.tsx
 create mode 100644 superset-frontend/src/components/ErrorMessage/OAuth2RedirectMessage.tsx
 rename .github/supersetbot/src/metadata.js => superset-frontend/src/components/ListView/DashboardCrossLinks.tsx (59%)
 rename superset-frontend/src/dashboard/components/CssEditor/{index.jsx => index.tsx} (79%)
 create mode 100644 superset-frontend/src/explore/components/DatasourcePanel/DatasourcePanelItem.test.tsx
 create mode 100644 superset-frontend/src/explore/components/DatasourcePanel/DatasourcePanelItem.tsx
 create mode 100644 superset-frontend/src/explore/components/ExploreContainer/ExploreContainer.test.tsx
 create mode 100644 superset-frontend/src/explore/components/ExploreContainer/index.tsx
 create mode 100644 superset-frontend/src/features/databases/CSVUploadModal/CSVUploadModal.test.tsx
 create mode 100644 superset-frontend/src/features/databases/CSVUploadModal/ColumnsPreview.tsx
 rename superset-frontend/src/{explore/components/DataTableControl/RowCount.test.tsx => features/databases/CSVUploadModal/StyledFormItemWithTip.tsx} (58%)
 create mode 100644 superset-frontend/src/features/databases/CSVUploadModal/index.tsx
 create mode 100644 superset-frontend/src/features/databases/CSVUploadModal/styles.ts
 delete mode 100644 superset-frontend/src/utils/getClientErrorObject.test.ts
 create mode 100644 superset/commands/database/csv_import.py
 copy superset/{utils/retries.py => daos/user.py} (51%)
 copy docs/static/.asf.yaml => superset/db_engine_specs/mariadb.py (83%)
 create mode 100644 superset/migrations/versions/2024-03-20_16-02_678eefb4ab44_add_access_token_table.py
 copy superset/{utils/hashing.py => migrations/versions/2024-04-01_22-44_c22cb5c2e546_user_attr_avatar_url.py} (56%)
 create mode 100644 superset/migrations/versions/2024-04-08_15-43_5ad7321c2169_mig_new_csv_upload_perm.py
 copy superset-frontend/src/assets/images/icons/tags.svg => superset/templates/superset/oauth2.html (59%)
 create mode 100644 superset/utils/lock.py
 create mode 100644 superset/utils/oauth2.py
 copy superset/utils/{hashing.py => pandas_postprocessing/rank.py} (57%)
 create mode 100644 superset/utils/pdf.py
 create mode 100644 superset/utils/slack.py
 copy docs/static/.asf.yaml => tests/integration_tests/constants.py (79%)
 copy {superset/advanced_data_type => tests/integration_tests/databases/commands}/__init__.py (100%)
 create mode 100644 tests/integration_tests/databases/commands/csv_upload_test.py
 copy {superset/advanced_data_type => tests/unit_tests/connectors}/__init__.py (100%)
 copy {superset/advanced_data_type => tests/unit_tests/connectors/sqla}/__init__.py (100%)
 create mode 100644 tests/unit_tests/connectors/sqla/models_test.py
 create mode 100644 tests/unit_tests/dao/user_test.py
 delete mode 100644 tests/unit_tests/forms_tests.py
 create mode 100644 tests/unit_tests/migrations/viz/heatmap_v1_v2_test.py
 create mode 100644 tests/unit_tests/models/sql_lab_test.py
 delete mode 100644 tests/unit_tests/test_jinja_context.py
 create mode 100644 tests/unit_tests/utils/lock_tests.py
 create mode 100644 tests/unit_tests/utils/oauth2_tests.py
 delete mode 100644 tox.ini