This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a change to branch
dependabot/npm_and_yarn/superset-websocket/prettier-3.1.0
in repository https://gitbox.apache.org/repos/asf/superset.git
omit 0fde66c457 build(deps-dev): bump prettier in /superset-websocket
add 8d73ab9955 feat(sqllab): TRINO_EXPAND_ROWS: expand columns from ROWs
(#25809)
add 92ac6b2c15 feat(sqllab): Show duration as separate column in Query
History view (#25861)
add e1d73d5420 fix(native filters): rendering performance improvement by
reduce overrendering (#25901)
add 628cd345f2 fix: update FAB to 4.3.10, Azure user info fix (#26037)
add e2bfb1216b feat(sqllab): non-blocking persistence mode (#24539)
add e7797b65d1 fix(horizontal filter bar filter labels): Increase
max-width to 96px (#25883)
add dd58b31cc4 chore(sqlalchemy): Remove erroneous SQLAlchemy ORM
session.merge operations (#24776)
add bba7763825 fix(security): restore default value of
SESSION_COOKIE_SECURE to False (#26005)
add 1af5fbbd6a docs(BH#109): Athena URI spec fix (#26044)
add b5e7e707b3 chore: Allow external extensions to include their own
package.json files (#26004)
add fbc66a8177 chore: bump shillelagh (#26043)
add f99c874962 feat(metadb): handle decimals (#25921)
add adb86d35ec build(deps-dev): bump @types/ws from 8.5.9 to 8.5.10 in
/superset-websocket (#26048)
add 9452664079 build(deps-dev): bump @types/node from 20.9.1 to 20.9.3 in
/superset-websocket (#26049)
add 25a737e83c fix: Remove annotation Fuzzy to get french translation
(#26010)
add f934278fef docs(intro): fix a single broken link (BugHerd #97) (#26039)
add 68e5e1afea feat: Add Bubble chart migration logic (#26033)
add 07551dc3d4 chore(connector): Cleanup base models and views according
to SIP-92 (#24773)
add 97121465dd feat: Add Apache Doris support (#24714)
add bd8951e958 fix: Optimize fetching samples logic (#26060)
add 630734b908 fix: Prevent cached bootstrap data from leaking between
users w/ same first/last name (#26023)
add 260d561b9a docs: update security policy and contributing (#25917)
add 843c7ab58a chore: Allow only iterables for BaseDAO.delete() (#25844)
add 2b88225ee1 fix: Flaky test_explore_json_async test (#26059)
add 6359086779 fix: move driver import to method (#26066)
add fef82789b1 build(deps): bump @types/lodash from 4.14.201 to 4.14.202
in /superset-websocket (#26063)
add b1f521263d build(deps-dev): bump @types/node from 20.9.3 to 20.9.4 in
/superset-websocket (#26064)
add 984c278c4c chore: Updates Announce template to include CHANGELOG.md
and UPDATING.md files (#26073)
add 07bcfa9b5f chore(command): Organize Commands according to SIP-92
(#25850)
add 57d61df44d chore: Adds 3.0.2 data to CHANGELOG.md (#26075)
add aad67e43db fix(plugin-chart-echarts): support numerical x-axis (#26087)
add 4fc2758e6a fix: bump node-fetch to 2.6.7 (#26091)
add d20f96f8d0 docs(databases): Update pinot.mdx to incorporate username
and password based connection. (#26000)
add 91a8b69d36 fix: flaky test_explore_json_async test v2 (#26106)
add 849ca64ba8 chore: Adds the 3.1.0 Release Notes (#26058)
add 6447529ee4 docs: update CVEs fixed on 2.1.2 (#26104)
add f3b0706507 build(deps-dev): bump @types/cookie from 0.5.4 to 0.6.0 in
/superset-websocket (#26099)
add 9a13ec6d5f build(deps-dev): bump @types/node from 20.9.4 to 20.10.0 in
/superset-websocket (#26100)
add 976defb91c build(deps-dev): bump prettier in /superset-websocket
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 (0fde66c457)
\
N -- N -- N
refs/heads/dependabot/npm_and_yarn/superset-websocket/prettier-3.1.0
(976defb91c)
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:
.github/SECURITY.md | 4 +-
CHANGELOG.md | 54 ++
CONTRIBUTING.md | 45 ++
README.md | 1 +
RELEASING/README.md | 1 +
RELEASING/email_templates/announce.j2 | 6 +
RELEASING/release-notes-3-1/README.md | 166 +++++
RELEASING/release-notes-3-1/media/bubble_chart.png | Bin 0 -> 430546 bytes
RELEASING/release-notes-3-1/media/contour.png | Bin 0 -> 1035330 bytes
.../release-notes-3-1/media}/databend.png | Bin
.../release-notes-3-1/media/dataset_selector.png | Bin 0 -> 420784 bytes
RELEASING/release-notes-3-1/media/doris.png | Bin 0 -> 17856 bytes
RELEASING/release-notes-3-1/media/france.png | Bin 0 -> 107828 bytes
RELEASING/release-notes-3-1/media/kazakhstan.png | Bin 0 -> 263828 bytes
.../release-notes-3-1/media/keyboard_shortcuts.png | Bin 0 -> 305917 bytes
RELEASING/release-notes-3-1/media/kyrgyzstan.png | Bin 0 -> 183302 bytes
.../release-notes-3-1/media/sql_formatting.png | Bin 0 -> 473810 bytes
RELEASING/release-notes-3-1/media/tajikistan.png | Bin 0 -> 204499 bytes
RELEASING/release-notes-3-1/media/turkmenistan.png | Bin 0 -> 178477 bytes
RELEASING/release-notes-3-1/media/uzbekistan.png | Bin 0 -> 160917 bytes
.../release-notes-3-1/media/waterfall_chart.png | Bin 0 -> 326362 bytes
docs/docs/databases/doris.mdx | 26 +
.../docs/databases/installing-database-drivers.mdx | 83 +--
docs/docs/databases/pinot.mdx | 6 +
docs/docs/intro.mdx | 2 +-
docs/docs/security/cves.mdx | 9 +
docs/src/resources/data.js | 5 +
docs/static/img/databases/doris.png | Bin 0 -> 11539 bytes
requirements/base.txt | 37 +-
requirements/development.txt | 2 -
requirements/testing.txt | 6 -
setup.py | 9 +-
superset-frontend/lerna.json | 2 +-
superset-frontend/package-lock.json | 5 +-
superset-frontend/package.json | 5 +-
.../superset-ui-core/src/chart/types/Base.ts | 1 -
.../src/Bubble/transformProps.ts | 11 +-
.../src/Timeseries/transformProps.ts | 15 +-
.../plugin-chart-echarts/src/utils/series.ts | 9 +-
.../plugin-chart-echarts/test/utils/series.test.ts | 9 +
superset-frontend/src/SqlLab/actions/sqlLab.js | 297 ++------
.../src/SqlLab/actions/sqlLab.test.js | 156 +----
.../EditorAutoSync/EditorAutoSync.test.tsx | 137 ++++
.../src/SqlLab/components/EditorAutoSync/index.tsx | 106 +++
.../src/SqlLab/components/QueryTable/index.tsx | 6 +-
.../src/SqlLab/components/SqlEditor/index.tsx | 7 +-
superset-frontend/src/SqlLab/fixtures.ts | 2 +
.../middlewares/persistSqlLabStateEnhancer.js | 36 +
.../src/SqlLab/reducers/getInitialState.test.ts | 113 ++-
.../src/SqlLab/reducers/getInitialState.ts | 76 +-
superset-frontend/src/SqlLab/reducers/sqlLab.js | 33 +-
superset-frontend/src/SqlLab/types.ts | 10 +-
.../src/SqlLab/utils/emptyQueryResults.test.js | 7 +-
.../SqlLab/utils/reduxStateToLocalStorageHelper.js | 1 +
superset-frontend/src/assets/images/doris.png | Bin 0 -> 11539 bytes
.../src/dashboard/components/Dashboard.jsx | 15 +-
.../src/dashboard/components/Dashboard.test.jsx | 13 +-
.../SyncDashboardState.test.tsx} | 33 +-
.../components/SyncDashboardState/index.tsx | 103 +++
.../FilterBar/FilterControls/FilterControl.tsx | 1 -
.../FilterBar/FilterControls/FilterValue.tsx | 3 +-
.../src/dashboard/containers/Dashboard.ts | 2 -
.../src/dashboard/containers/DashboardPage.tsx | 94 +--
superset-frontend/src/dataMask/reducer.ts | 1 -
.../databases/DatabaseModal/ExtraOptions.tsx | 18 +-
.../databases/DatabaseModal/index.test.tsx | 17 +-
.../src/features/databases/DatabaseModal/index.tsx | 12 +
superset-frontend/src/features/databases/types.ts | 3 +
.../components/Select/SelectFilterPlugin.test.tsx | 24 -
.../components/Select/SelectFilterPlugin.tsx | 41 +-
superset-frontend/src/filters/components/common.ts | 4 +-
.../src/hooks/apiResources/sqlEditorTabs.test.ts | 99 +++
.../src/hooks/apiResources/sqlEditorTabs.ts | 70 ++
superset-frontend/src/hooks/apiResources/sqlLab.ts | 2 +-
superset-frontend/src/hooks/useDebounceValue.ts | 4 +-
.../src/pages/QueryHistoryList/index.tsx | 40 +-
superset-frontend/src/pages/SqlLab/index.tsx | 12 +-
superset-frontend/src/views/store.ts | 5 +-
superset-websocket/package-lock.json | 56 +-
superset-websocket/package.json | 8 +-
superset/annotation_layers/annotations/api.py | 28 +-
superset/annotation_layers/api.py | 22 +-
superset/charts/api.py | 30 +-
superset/charts/data/api.py | 18 +-
superset/charts/data/query_context_cache_loader.py | 2 +-
superset/charts/post_processing.py | 2 +-
superset/cli/importexport.py | 16 +-
superset/cli/viz_migrations.py | 3 +
.../annotation_layer}/__init__.py | 0
.../annotation_layer/annotation}/__init__.py | 0
.../annotation_layer/annotation}/create.py | 6 +-
.../annotation_layer/annotation}/delete.py | 4 +-
.../annotation_layer/annotation}/exceptions.py | 0
.../annotation_layer/annotation}/update.py | 6 +-
.../annotation_layer}/create.py | 4 +-
.../annotation_layer}/delete.py | 4 +-
.../annotation_layer}/exceptions.py | 0
.../annotation_layer}/update.py | 4 +-
.../commands => commands/chart}/__init__.py | 0
.../{charts/commands => commands/chart}/create.py | 4 +-
.../importers => commands/chart/data}/__init__.py | 0
.../chart/data}/create_async_job_command.py | 0
.../chart/data}/get_data_command.py | 4 +-
.../{charts/commands => commands/chart}/delete.py | 4 +-
.../commands => commands/chart}/exceptions.py | 0
.../{charts/commands => commands/chart}/export.py | 4 +-
.../chart/importers}/__init__.py | 0
.../chart}/importers/dispatcher.py | 2 +-
.../chart}/importers/v1/__init__.py | 8 +-
.../chart}/importers/v1/utils.py | 0
.../{charts/commands => commands/chart}/update.py | 4 +-
.../commands => commands/chart}/warm_up_cache.py | 6 +-
.../{connectors/base => commands/css}/__init__.py | 0
.../commands => commands/css}/delete.py | 2 +-
.../commands => commands/css}/exceptions.py | 0
.../commands => commands/dashboard}/__init__.py | 0
.../commands => commands/dashboard}/create.py | 8 +-
.../commands => commands/dashboard}/delete.py | 8 +-
.../dashboard/embedded}/__init__.py | 0
.../dashboard/embedded}/exceptions.py | 0
.../commands => commands/dashboard}/exceptions.py | 0
.../commands => commands/dashboard}/export.py | 8 +-
.../dashboard/filter_set}/__init__.py | 0
.../dashboard/filter_set}/base.py | 8 +-
.../dashboard/filter_set}/create.py | 6 +-
.../dashboard/filter_set}/delete.py | 10 +-
.../dashboard/filter_set}/exceptions.py | 0
.../dashboard/filter_set}/update.py | 6 +-
.../dashboard/filter_state}/__init__.py | 0
.../dashboard/filter_state}/create.py | 8 +-
.../dashboard/filter_state}/delete.py | 10 +-
.../dashboard/filter_state}/get.py | 6 +-
.../dashboard/filter_state}/update.py | 10 +-
.../dashboard/filter_state}/utils.py | 6 +-
.../dashboard/importers}/__init__.py | 0
.../dashboard}/importers/dispatcher.py | 2 +-
.../dashboard}/importers/v0.py | 2 +-
.../dashboard}/importers/v1/__init__.py | 14 +-
.../dashboard}/importers/v1/utils.py | 0
.../dashboard/permalink}/__init__.py | 0
.../dashboard/permalink}/base.py | 0
.../dashboard/permalink}/create.py | 4 +-
.../dashboard/permalink}/get.py | 6 +-
.../commands => commands/dashboard}/update.py | 8 +-
.../commands => commands/database}/__init__.py | 0
.../commands => commands/database}/create.py | 12 +-
.../commands => commands/database}/delete.py | 10 +-
.../commands => commands/database}/exceptions.py | 0
.../commands => commands/database}/export.py | 2 +-
.../database}/importers/__init__.py | 0
.../database}/importers/dispatcher.py | 2 +-
.../database}/importers/v1/__init__.py | 6 +-
.../database}/importers/v1/utils.py | 0
.../database/ssh_tunnel}/__init__.py | 0
.../database/ssh_tunnel}/create.py | 6 +-
.../database/ssh_tunnel}/delete.py | 8 +-
.../database/ssh_tunnel}/exceptions.py | 0
.../database/ssh_tunnel}/update.py | 6 +-
.../commands => commands/database}/tables.py | 6 +-
.../database}/test_connection.py | 8 +-
.../commands => commands/database}/update.py | 12 +-
.../commands => commands/database}/validate.py | 4 +-
.../commands => commands/database}/validate_sql.py | 4 +-
.../commands => commands/dataset}/__init__.py | 0
.../dataset/columns}/__init__.py | 0
.../dataset/columns}/delete.py | 10 +-
.../dataset/columns}/exceptions.py | 0
.../commands => commands/dataset}/create.py | 6 +-
.../commands => commands/dataset}/delete.py | 8 +-
.../commands => commands/dataset}/duplicate.py | 10 +-
.../commands => commands/dataset}/exceptions.py | 0
.../commands => commands/dataset}/export.py | 2 +-
.../dataset}/importers/__init__.py | 0
.../dataset}/importers/dispatcher.py | 2 +-
.../commands => commands/dataset}/importers/v0.py | 32 +-
.../dataset}/importers/v1/__init__.py | 6 +-
.../dataset}/importers/v1/utils.py | 2 +-
.../dataset/metrics}/__init__.py | 0
.../dataset/metrics}/delete.py | 10 +-
.../dataset/metrics}/exceptions.py | 0
.../commands => commands/dataset}/refresh.py | 6 +-
.../commands => commands/dataset}/update.py | 8 +-
.../commands => commands/dataset}/warm_up_cache.py | 8 +-
.../commands => commands/explore}/__init__.py | 0
.../explore/form_data}/__init__.py | 0
.../explore/form_data}/create.py | 8 +-
.../explore/form_data}/delete.py | 10 +-
.../commands => commands/explore/form_data}/get.py | 8 +-
.../explore/form_data}/parameters.py | 0
.../explore/form_data}/state.py | 0
.../explore/form_data}/update.py | 12 +-
.../explore/form_data}/utils.py | 8 +-
.../{explore/commands => commands/explore}/get.py | 15 +-
.../commands => commands/explore}/parameters.py | 0
.../explore/permalink}/__init__.py | 0
.../explore/permalink}/base.py | 0
.../explore/permalink}/create.py | 4 +-
.../commands => commands/explore/permalink}/get.py | 6 +-
superset/commands/export/assets.py | 10 +-
superset/commands/importers/v1/assets.py | 20 +-
superset/commands/importers/v1/examples.py | 22 +-
.../commands => commands/key_value}/__init__.py | 0
.../commands => commands/key_value}/create.py | 0
.../commands => commands/key_value}/delete.py | 0
.../key_value}/delete_expired.py | 0
.../commands => commands/key_value}/get.py | 0
.../commands => commands/key_value}/update.py | 1 -
.../commands => commands/key_value}/upsert.py | 3 +-
.../commands => commands/query}/__init__.py | 0
.../commands => commands/query}/delete.py | 8 +-
.../commands => commands/query}/exceptions.py | 0
.../commands => commands/query}/export.py | 2 +-
.../query/importers}/__init__.py | 0
.../query}/importers/dispatcher.py | 2 +-
.../query}/importers/v1/__init__.py | 8 +-
.../query}/importers/v1/utils.py | 0
.../importers => commands/report}/__init__.py | 0
.../{reports/commands => commands/report}/alert.py | 2 +-
.../{reports/commands => commands/report}/base.py | 6 +-
.../commands => commands/report}/create.py | 10 +-
.../commands => commands/report}/delete.py | 8 +-
.../commands => commands/report}/exceptions.py | 0
.../commands => commands/report}/execute.py | 26 +-
.../commands => commands/report}/log_prune.py | 2 +-
.../commands => commands/report}/update.py | 12 +-
.../commands => commands/security}/__init__.py | 0
.../commands => commands/security}/create.py | 0
.../commands => commands/security}/delete.py | 8 +-
.../commands => commands/security}/exceptions.py | 0
.../commands => commands/security}/update.py | 2 +-
.../commands => commands/sql_lab}/__init__.py | 0
.../commands => commands/sql_lab}/estimate.py | 0
.../commands => commands/sql_lab}/execute.py | 0
.../commands => commands/sql_lab}/export.py | 0
.../commands => commands/sql_lab}/results.py | 0
.../{sqllab/commands => commands/tag}/__init__.py | 0
superset/{tags/commands => commands/tag}/create.py | 4 +-
superset/{tags/commands => commands/tag}/delete.py | 8 +-
.../{tags/commands => commands/tag}/exceptions.py | 0
superset/{tags/commands => commands/tag}/update.py | 4 +-
superset/{tags/commands => commands/tag}/utils.py | 0
.../temporary_cache}/__init__.py | 0
.../temporary_cache}/create.py | 4 +-
.../temporary_cache}/delete.py | 4 +-
.../commands => commands/temporary_cache}/entry.py | 0
.../temporary_cache}/exceptions.py | 0
.../commands => commands/temporary_cache}/get.py | 4 +-
.../temporary_cache}/parameters.py | 0
.../temporary_cache}/update.py | 4 +-
superset/commands/utils.py | 2 +-
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 | 6 +-
superset/common/query_object.py | 2 +-
superset/common/query_object_factory.py | 2 +-
superset/config.py | 2 +
superset/connectors/base/models.py | 769 ---------------------
superset/connectors/base/views.py | 48 --
superset/connectors/sqla/models.py | 662 +++++++++++++++++-
superset/connectors/sqla/views.py | 3 +-
superset/css_templates/api.py | 6 +-
.../daos/{annotation.py => annotation_layer.py} | 0
superset/daos/base.py | 11 +-
superset/daos/chart.py | 2 +-
superset/daos/dashboard.py | 4 +-
superset/daos/tag.py | 8 +-
superset/dashboards/api.py | 23 +-
superset/dashboards/filter_sets/api.py | 14 +-
superset/dashboards/filter_state/api.py | 8 +-
superset/dashboards/permalink/api.py | 10 +-
superset/databases/api.py | 46 +-
superset/databases/schemas.py | 6 +-
superset/databases/utils.py | 2 +-
superset/datasets/api.py | 32 +-
superset/datasets/columns/api.py | 8 +-
superset/datasets/metrics/api.py | 8 +-
superset/db_engine_specs/base.py | 19 +-
superset/db_engine_specs/doris.py | 278 ++++++++
superset/db_engine_specs/druid.py | 11 -
superset/db_engine_specs/hive.py | 8 +-
superset/db_engine_specs/presto.py | 7 +-
superset/db_engine_specs/trino.py | 64 ++
superset/embedded/api.py | 6 +-
superset/embedded/view.py | 4 +-
superset/examples/bart_lines.py | 2 +-
superset/examples/country_map.py | 2 +-
superset/examples/css_templates.py | 4 +-
superset/examples/deck.py | 2 +-
superset/examples/energy.py | 2 +-
superset/examples/flights.py | 2 +-
superset/examples/long_lat.py | 2 +-
superset/examples/misc_dashboard.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/tabbed_dashboard.py | 3 +-
superset/examples/world_bank.py | 18 +-
superset/explore/api.py | 14 +-
superset/explore/form_data/api.py | 18 +-
superset/explore/permalink/api.py | 10 +-
superset/explore/utils.py | 10 +-
superset/extensions/metadb.py | 30 +-
superset/extensions/metastore_cache.py | 10 +-
superset/jinja_context.py | 2 +-
superset/key_value/shared_entries.py | 4 +-
superset/migrations/shared/migrate_viz/base.py | 12 +-
.../migrations/shared/migrate_viz/processors.py | 29 +
superset/migrations/shared/security_converge.py | 1 -
..._08-54_c3a8f8611885_materializing_permission.py | 1 -
...-09-07_23-50_33d996bcc382_update_slice_model.py | 2 -
...4_12-31_db0c65b146bd_update_slice_model_json.py | 1 -
...7c195a_rewriting_url_from_shortner_with_new_.py | 1 -
...-08_08-19_67a6ac9b727b_update_spatial_params.py | 1 -
...2-17_11-06_21e88bc06c02_annotation_migration.py | 2 -
.../2018-02-13_08-07_e866bd2d4976_smaller_grid.py | 2 -
...9_bf706ae5eb46_cal_heatmap_metric_to_metrics.py | 1 -
..._bebcf3fed1fe_convert_dashboard_v1_positions.py | 1 -
.../versions/2018-08-01_11-47_7fcdcde0761c_.py | 1 -
...a3f04bc82_add_parent_ids_in_dashboard_layout.py | 2 -
..._14-13_3325d4caccc8_dashboard_scoped_filters.py | 2 -
...978245563a02_migrate_iframe_to_dash_markdown.py | 1 -
...b56500de1855_add_uuid_column_to_import_mixin.py | 1 -
...1412ec1e5a7b_legacy_force_directed_to_echart.py | 2 -
...665d_fix_table_chart_conditional_formatting_.py | 1 -
superset/models/core.py | 12 +-
superset/models/dashboard.py | 8 +-
superset/models/slice.py | 2 +-
superset/queries/saved_queries/api.py | 16 +-
superset/reports/api.py | 16 +-
superset/row_level_security/api.py | 8 +-
superset/security/api.py | 2 +-
superset/security/manager.py | 13 +-
superset/sqllab/api.py | 8 +-
superset/sqllab/query_render.py | 2 +-
superset/sqllab/validators.py | 2 +-
superset/superset_typing.py | 2 +
superset/tags/api.py | 16 +-
superset/tasks/async_queries.py | 2 +-
superset/tasks/scheduler.py | 6 +-
superset/temporary_cache/api.py | 8 +-
superset/temporary_cache/commands/__init__.py | 16 -
superset/translations/fr/LC_MESSAGES/messages.json | 75 +-
superset/translations/fr/LC_MESSAGES/messages.po | 95 +--
superset/utils/core.py | 4 +-
superset/utils/date_parser.py | 2 +-
superset/views/api.py | 2 +-
superset/views/base.py | 16 +-
superset/views/core.py | 27 +-
superset/views/dashboard/views.py | 2 +-
superset/views/database/validators.py | 2 +-
superset/views/datasource/utils.py | 4 +-
superset/views/datasource/views.py | 8 +-
superset/viz.py | 2 +-
tests/integration_tests/base_tests.py | 3 +-
tests/integration_tests/charts/api_tests.py | 4 +-
tests/integration_tests/charts/commands_tests.py | 18 +-
tests/integration_tests/charts/data/api_tests.py | 5 +-
tests/integration_tests/cli_tests.py | 18 +-
tests/integration_tests/conftest.py | 8 +-
tests/integration_tests/core_tests.py | 21 +-
tests/integration_tests/dashboard_tests.py | 7 +-
tests/integration_tests/dashboard_utils.py | 2 +-
.../integration_tests/dashboards/commands_tests.py | 16 +-
tests/integration_tests/dashboards/dao_tests.py | 2 -
.../dashboards/dashboard_test_utils.py | 2 -
.../dashboards/filter_state/api_tests.py | 4 +-
.../dashboards/permalink/api_tests.py | 2 +-
.../dashboards/security/security_dataset_tests.py | 6 +-
.../dashboards/security/security_rbac_tests.py | 2 +-
tests/integration_tests/databases/api_tests.py | 36 +-
.../integration_tests/databases/commands_tests.py | 40 +-
.../ssh_tunnel/commands/commands_tests.py | 10 +-
tests/integration_tests/datasets/api_tests.py | 4 +-
tests/integration_tests/datasets/commands_tests.py | 20 +-
tests/integration_tests/datasource_tests.py | 3 +-
tests/integration_tests/explore/api_tests.py | 2 +-
.../explore/form_data/api_tests.py | 4 +-
.../explore/form_data/commands_tests.py | 10 +-
.../explore/permalink/commands_tests.py | 10 +-
.../integration_tests/fixtures/energy_dashboard.py | 2 -
tests/integration_tests/import_export_tests.py | 6 +-
.../importexport/commands_tests.py | 2 +-
.../key_value/commands/create_test.py | 8 +-
.../key_value/commands/delete_test.py | 6 +-
.../key_value/commands/get_test.py | 10 +-
.../key_value/commands/update_test.py | 6 +-
.../key_value/commands/upsert_test.py | 6 +-
...c747c78868b6_migrating_legacy_treemap__tests.py | 4 +-
.../queries/saved_queries/commands_tests.py | 8 +-
tests/integration_tests/reports/alert_tests.py | 22 +-
.../commands/create_dashboard_report_tests.py | 4 +-
.../commands/execute_dashboard_report_tests.py | 14 +-
tests/integration_tests/reports/commands_tests.py | 32 +-
tests/integration_tests/reports/scheduler_tests.py | 10 +-
.../security/migrate_roles_tests.py | 1 -
tests/integration_tests/sql_lab/api_tests.py | 12 +-
tests/integration_tests/sql_lab/commands_tests.py | 22 +-
tests/integration_tests/tags/commands_tests.py | 16 +-
.../integration_tests/tasks/async_queries_tests.py | 4 +-
tests/integration_tests/utils_tests.py | 2 +-
.../charts/commands/importers/v1/import_test.py | 6 +-
.../charts/commands/importers/v1/utils_test.py | 2 +-
.../common/test_get_aggregated_join_column.py | 2 +-
.../commands/importers/v1/import_test.py | 6 +-
.../dashboards/commands/importers/v1/utils_test.py | 4 +-
tests/unit_tests/databases/api_test.py | 6 +-
.../databases/commands/importers/v1/import_test.py | 8 +-
.../databases/commands/test_connection_test.py | 2 +-
.../databases/ssh_tunnel/commands/create_test.py | 6 +-
.../databases/ssh_tunnel/commands/delete_test.py | 4 +-
.../databases/ssh_tunnel/commands/update_test.py | 6 +-
tests/unit_tests/datasets/commands/export_test.py | 2 +-
.../datasets/commands/importers/v1/import_test.py | 18 +-
tests/unit_tests/db_engine_specs/test_doris.py | 147 ++++
tests/unit_tests/db_engine_specs/test_trino.py | 122 ++++
tests/unit_tests/explore/utils_test.py | 10 +-
tests/unit_tests/jinja_context_test.py | 2 +-
.../viz/nvd3_bubble_chart_to_echarts_test.py | 76 ++
tests/unit_tests/migrations/viz/utils.py | 4 +-
tests/unit_tests/tags/commands/create_test.py | 4 +-
tests/unit_tests/tags/commands/update_test.py | 12 +-
tests/unit_tests/tasks/test_async_queries.py | 2 +-
tests/unit_tests/utils/date_parser_tests.py | 2 +-
425 files changed, 3872 insertions(+), 2665 deletions(-)
create mode 100644 RELEASING/release-notes-3-1/README.md
create mode 100644 RELEASING/release-notes-3-1/media/bubble_chart.png
create mode 100644 RELEASING/release-notes-3-1/media/contour.png
copy {superset-frontend/src/assets/images =>
RELEASING/release-notes-3-1/media}/databend.png (100%)
create mode 100644 RELEASING/release-notes-3-1/media/dataset_selector.png
create mode 100644 RELEASING/release-notes-3-1/media/doris.png
create mode 100644 RELEASING/release-notes-3-1/media/france.png
create mode 100644 RELEASING/release-notes-3-1/media/kazakhstan.png
create mode 100644 RELEASING/release-notes-3-1/media/keyboard_shortcuts.png
create mode 100644 RELEASING/release-notes-3-1/media/kyrgyzstan.png
create mode 100644 RELEASING/release-notes-3-1/media/sql_formatting.png
create mode 100644 RELEASING/release-notes-3-1/media/tajikistan.png
create mode 100644 RELEASING/release-notes-3-1/media/turkmenistan.png
create mode 100644 RELEASING/release-notes-3-1/media/uzbekistan.png
create mode 100644 RELEASING/release-notes-3-1/media/waterfall_chart.png
create mode 100644 docs/docs/databases/doris.mdx
create mode 100644 docs/static/img/databases/doris.png
create mode 100644
superset-frontend/src/SqlLab/components/EditorAutoSync/EditorAutoSync.test.tsx
create mode 100644
superset-frontend/src/SqlLab/components/EditorAutoSync/index.tsx
create mode 100644 superset-frontend/src/assets/images/doris.png
copy superset-frontend/src/{hooks/useDebounceValue.ts =>
dashboard/components/SyncDashboardState/SyncDashboardState.test.tsx} (57%)
create mode 100644
superset-frontend/src/dashboard/components/SyncDashboardState/index.tsx
create mode 100644
superset-frontend/src/hooks/apiResources/sqlEditorTabs.test.ts
create mode 100644 superset-frontend/src/hooks/apiResources/sqlEditorTabs.ts
rename superset/{annotation_layers/annotations/commands =>
commands/annotation_layer}/__init__.py (100%)
rename superset/{annotation_layers/commands =>
commands/annotation_layer/annotation}/__init__.py (100%)
rename superset/{annotation_layers/annotations/commands =>
commands/annotation_layer/annotation}/create.py (92%)
rename superset/{annotation_layers/annotations/commands =>
commands/annotation_layer/annotation}/delete.py (93%)
rename superset/{annotation_layers/annotations/commands =>
commands/annotation_layer/annotation}/exceptions.py (100%)
rename superset/{annotation_layers/annotations/commands =>
commands/annotation_layer/annotation}/update.py (93%)
rename superset/{annotation_layers/commands =>
commands/annotation_layer}/create.py (94%)
rename superset/{annotation_layers/commands =>
commands/annotation_layer}/delete.py (94%)
rename superset/{annotation_layers/commands =>
commands/annotation_layer}/exceptions.py (100%)
rename superset/{annotation_layers/commands =>
commands/annotation_layer}/update.py (95%)
rename superset/{charts/commands => commands/chart}/__init__.py (100%)
rename superset/{charts/commands => commands/chart}/create.py (98%)
rename superset/{charts/commands/importers => commands/chart/data}/__init__.py
(100%)
rename superset/{charts/data/commands =>
commands/chart/data}/create_async_job_command.py (100%)
rename superset/{charts/data/commands =>
commands/chart/data}/get_data_command.py (97%)
rename superset/{charts/commands => commands/chart}/delete.py (98%)
rename superset/{charts/commands => commands/chart}/exceptions.py (100%)
rename superset/{charts/commands => commands/chart}/export.py (95%)
rename superset/{charts/data/commands => commands/chart/importers}/__init__.py
(100%)
rename superset/{charts/commands => commands/chart}/importers/dispatcher.py
(98%)
rename superset/{charts/commands => commands/chart}/importers/v1/__init__.py
(93%)
rename superset/{charts/commands => commands/chart}/importers/v1/utils.py
(100%)
rename superset/{charts/commands => commands/chart}/update.py (98%)
rename superset/{charts/commands => commands/chart}/warm_up_cache.py (96%)
rename superset/{connectors/base => commands/css}/__init__.py (100%)
rename superset/{css_templates/commands => commands/css}/delete.py (97%)
rename superset/{css_templates/commands => commands/css}/exceptions.py (100%)
rename superset/{css_templates/commands => commands/dashboard}/__init__.py
(100%)
rename superset/{dashboards/commands => commands/dashboard}/create.py (98%)
rename superset/{dashboards/commands => commands/dashboard}/delete.py (98%)
rename superset/{dashboards/commands =>
commands/dashboard/embedded}/__init__.py (100%)
rename superset/{embedded_dashboard/commands =>
commands/dashboard/embedded}/exceptions.py (100%)
rename superset/{dashboards/commands => commands/dashboard}/exceptions.py
(100%)
rename superset/{dashboards/commands => commands/dashboard}/export.py (95%)
rename superset/{dashboards/commands/importers =>
commands/dashboard/filter_set}/__init__.py (100%)
rename superset/{dashboards/filter_sets/commands =>
commands/dashboard/filter_set}/base.py (96%)
rename superset/{dashboards/filter_sets/commands =>
commands/dashboard/filter_set}/create.py (95%)
rename superset/{dashboards/filter_sets/commands =>
commands/dashboard/filter_set}/delete.py (90%)
rename superset/{dashboards/filter_sets/commands =>
commands/dashboard/filter_set}/exceptions.py (100%)
rename superset/{dashboards/filter_sets/commands =>
commands/dashboard/filter_set}/update.py (91%)
rename superset/{dashboards/filter_sets/commands =>
commands/dashboard/filter_state}/__init__.py (100%)
rename superset/{dashboards/filter_state/commands =>
commands/dashboard/filter_state}/create.py (87%)
rename superset/{dashboards/filter_state/commands =>
commands/dashboard/filter_state}/delete.py (84%)
rename superset/{dashboards/filter_state/commands =>
commands/dashboard/filter_state}/get.py (89%)
rename superset/{dashboards/filter_state/commands =>
commands/dashboard/filter_state}/update.py (87%)
rename superset/{dashboards/filter_state/commands =>
commands/dashboard/filter_state}/utils.py (91%)
rename superset/{dashboards/filter_state/commands =>
commands/dashboard/importers}/__init__.py (100%)
rename superset/{dashboards/commands =>
commands/dashboard}/importers/dispatcher.py (97%)
rename superset/{dashboards/commands => commands/dashboard}/importers/v0.py
(99%)
rename superset/{dashboards/commands =>
commands/dashboard}/importers/v1/__init__.py (94%)
rename superset/{dashboards/commands =>
commands/dashboard}/importers/v1/utils.py (100%)
rename superset/{dashboards/permalink/commands =>
commands/dashboard/permalink}/__init__.py (100%)
rename superset/{dashboards/permalink/commands =>
commands/dashboard/permalink}/base.py (100%)
rename superset/{dashboards/permalink/commands =>
commands/dashboard/permalink}/create.py (94%)
rename superset/{dashboards/permalink/commands =>
commands/dashboard/permalink}/get.py (91%)
rename superset/{dashboards/commands => commands/dashboard}/update.py (98%)
rename superset/{databases/commands => commands/database}/__init__.py (100%)
rename superset/{databases/commands => commands/database}/create.py (95%)
rename superset/{databases/commands => commands/database}/delete.py (96%)
rename superset/{databases/commands => commands/database}/exceptions.py (100%)
rename superset/{databases/commands => commands/database}/export.py (98%)
rename superset/{databases/commands =>
commands/database}/importers/__init__.py (100%)
rename superset/{databases/commands =>
commands/database}/importers/dispatcher.py (97%)
rename superset/{databases/commands =>
commands/database}/importers/v1/__init__.py (91%)
rename superset/{databases/commands =>
commands/database}/importers/v1/utils.py (100%)
rename superset/{databases/ssh_tunnel/commands =>
commands/database/ssh_tunnel}/__init__.py (100%)
rename superset/{databases/ssh_tunnel/commands =>
commands/database/ssh_tunnel}/create.py (98%)
rename superset/{databases/ssh_tunnel/commands =>
commands/database/ssh_tunnel}/delete.py (94%)
rename superset/{databases/ssh_tunnel/commands =>
commands/database/ssh_tunnel}/exceptions.py (100%)
rename superset/{databases/ssh_tunnel/commands =>
commands/database/ssh_tunnel}/update.py (97%)
rename superset/{databases/commands => commands/database}/tables.py (98%)
rename superset/{databases/commands => commands/database}/test_connection.py
(98%)
rename superset/{databases/commands => commands/database}/update.py (96%)
rename superset/{databases/commands => commands/database}/validate.py (98%)
rename superset/{databases/commands => commands/database}/validate_sql.py (98%)
rename superset/{datasets/columns/commands => commands/dataset}/__init__.py
(100%)
rename superset/{datasets/commands => commands/dataset/columns}/__init__.py
(100%)
rename superset/{datasets/columns/commands =>
commands/dataset/columns}/delete.py (95%)
rename superset/{datasets/columns/commands =>
commands/dataset/columns}/exceptions.py (100%)
rename superset/{datasets/commands => commands/dataset}/create.py (98%)
rename superset/{datasets/commands => commands/dataset}/delete.py (97%)
rename superset/{datasets/commands => commands/dataset}/duplicate.py (99%)
rename superset/{datasets/commands => commands/dataset}/exceptions.py (100%)
rename superset/{datasets/commands => commands/dataset}/export.py (98%)
rename superset/{datasets/commands => commands/dataset}/importers/__init__.py
(100%)
rename superset/{datasets/commands =>
commands/dataset}/importers/dispatcher.py (97%)
rename superset/{datasets/commands => commands/dataset}/importers/v0.py (90%)
rename superset/{datasets/commands =>
commands/dataset}/importers/v1/__init__.py (92%)
rename superset/{datasets/commands => commands/dataset}/importers/v1/utils.py
(99%)
rename superset/{datasets/metrics/commands =>
commands/dataset/metrics}/__init__.py (100%)
rename superset/{datasets/metrics/commands =>
commands/dataset/metrics}/delete.py (95%)
rename superset/{datasets/metrics/commands =>
commands/dataset/metrics}/exceptions.py (100%)
rename superset/{datasets/commands => commands/dataset}/refresh.py (97%)
rename superset/{datasets/commands => commands/dataset}/update.py (99%)
rename superset/{datasets/commands => commands/dataset}/warm_up_cache.py (89%)
rename superset/{embedded_dashboard/commands => commands/explore}/__init__.py
(100%)
rename superset/{explore/commands => commands/explore/form_data}/__init__.py
(100%)
rename superset/{explore/form_data/commands =>
commands/explore/form_data}/create.py (91%)
rename superset/{explore/form_data/commands =>
commands/explore/form_data}/delete.py (91%)
rename superset/{explore/form_data/commands =>
commands/explore/form_data}/get.py (89%)
rename superset/{explore/form_data/commands =>
commands/explore/form_data}/parameters.py (100%)
rename superset/{explore/form_data/commands =>
commands/explore/form_data}/state.py (100%)
rename superset/{explore/form_data/commands =>
commands/explore/form_data}/update.py (93%)
rename superset/{explore/form_data/commands =>
commands/explore/form_data}/utils.py (90%)
rename superset/{explore/commands => commands/explore}/get.py (94%)
rename superset/{explore/commands => commands/explore}/parameters.py (100%)
rename superset/{explore/form_data/commands =>
commands/explore/permalink}/__init__.py (100%)
rename superset/{explore/permalink/commands =>
commands/explore/permalink}/base.py (100%)
rename superset/{explore/permalink/commands =>
commands/explore/permalink}/create.py (95%)
rename superset/{explore/permalink/commands =>
commands/explore/permalink}/get.py (93%)
rename superset/{explore/permalink/commands => commands/key_value}/__init__.py
(100%)
rename superset/{key_value/commands => commands/key_value}/create.py (100%)
rename superset/{key_value/commands => commands/key_value}/delete.py (100%)
rename superset/{key_value/commands => commands/key_value}/delete_expired.py
(100%)
rename superset/{key_value/commands => commands/key_value}/get.py (100%)
rename superset/{key_value/commands => commands/key_value}/update.py (98%)
rename superset/{key_value/commands => commands/key_value}/upsert.py (97%)
rename superset/{key_value/commands => commands/query}/__init__.py (100%)
rename superset/{queries/saved_queries/commands => commands/query}/delete.py
(96%)
rename superset/{queries/saved_queries/commands =>
commands/query}/exceptions.py (100%)
rename superset/{queries/saved_queries/commands => commands/query}/export.py
(97%)
rename superset/{queries/saved_queries/commands =>
commands/query/importers}/__init__.py (100%)
rename superset/{queries/saved_queries/commands =>
commands/query}/importers/dispatcher.py (97%)
rename superset/{queries/saved_queries/commands =>
commands/query}/importers/v1/__init__.py (91%)
rename superset/{queries/saved_queries/commands =>
commands/query}/importers/v1/utils.py (100%)
rename superset/{queries/saved_queries/commands/importers =>
commands/report}/__init__.py (100%)
rename superset/{reports/commands => commands/report}/alert.py (99%)
rename superset/{reports/commands => commands/report}/base.py (98%)
rename superset/{reports/commands => commands/report}/create.py (97%)
rename superset/{reports/commands => commands/report}/delete.py (97%)
rename superset/{reports/commands => commands/report}/exceptions.py (100%)
rename superset/{reports/commands => commands/report}/execute.py (99%)
rename superset/{reports/commands => commands/report}/log_prune.py (96%)
rename superset/{reports/commands => commands/report}/update.py (97%)
rename superset/{reports/commands => commands/security}/__init__.py (100%)
rename superset/{row_level_security/commands => commands/security}/create.py
(100%)
rename superset/{row_level_security/commands => commands/security}/delete.py
(96%)
rename superset/{row_level_security/commands =>
commands/security}/exceptions.py (100%)
rename superset/{row_level_security/commands => commands/security}/update.py
(96%)
rename superset/{row_level_security/commands => commands/sql_lab}/__init__.py
(100%)
rename superset/{sqllab/commands => commands/sql_lab}/estimate.py (100%)
rename superset/{sqllab/commands => commands/sql_lab}/execute.py (100%)
rename superset/{sqllab/commands => commands/sql_lab}/export.py (100%)
rename superset/{sqllab/commands => commands/sql_lab}/results.py (100%)
rename superset/{sqllab/commands => commands/tag}/__init__.py (100%)
rename superset/{tags/commands => commands/tag}/create.py (96%)
rename superset/{tags/commands => commands/tag}/delete.py (97%)
rename superset/{tags/commands => commands/tag}/exceptions.py (100%)
rename superset/{tags/commands => commands/tag}/update.py (94%)
rename superset/{tags/commands => commands/tag}/utils.py (100%)
rename superset/{tags/commands => commands/temporary_cache}/__init__.py (100%)
rename superset/{temporary_cache/commands =>
commands/temporary_cache}/create.py (92%)
rename superset/{temporary_cache/commands =>
commands/temporary_cache}/delete.py (92%)
rename superset/{temporary_cache/commands =>
commands/temporary_cache}/entry.py (100%)
rename superset/{temporary_cache/commands =>
commands/temporary_cache}/exceptions.py (100%)
rename superset/{temporary_cache/commands => commands/temporary_cache}/get.py
(92%)
rename superset/{temporary_cache/commands =>
commands/temporary_cache}/parameters.py (100%)
rename superset/{temporary_cache/commands =>
commands/temporary_cache}/update.py (92%)
delete mode 100644 superset/connectors/base/models.py
delete mode 100644 superset/connectors/base/views.py
rename superset/daos/{annotation.py => annotation_layer.py} (100%)
create mode 100644 superset/db_engine_specs/doris.py
delete mode 100644 superset/temporary_cache/commands/__init__.py
create mode 100644 tests/unit_tests/db_engine_specs/test_doris.py
create mode 100644
tests/unit_tests/migrations/viz/nvd3_bubble_chart_to_echarts_test.py