Commit Graph

12 Commits

Author SHA1 Message Date
Maxime Beauchemin
48d8c91b19 feat: migrate examples from Python to YAML format with enhanced CLI
Migrates Superset's example data system from Python-based scripts to YAML configuration files, providing a cleaner, more maintainable approach to managing example datasets, charts, and dashboards.

- Converted 9 Python example modules to YAML configurations
- Exported existing examples from database and added as YAML files:
  - 11 dashboards (USA Births Names, World Bank's Data, etc.)
  - 115 charts
  - 25 datasets
- Moved test-specific fixtures to `tests/fixtures/examples/`
- Removed theme_id from dashboard exports for compatibility

- **New command group**: `superset examples` with subcommands:
  - `load` - Load example data (replaces `load-examples`)
  - `clear-old` - Remove old Python-based examples
  - `clear` - Placeholder for future YAML clearing
  - `reload` - Clear and reload in one command
- **Backwards compatibility**: `superset load-examples` still works with deprecation warning
- **Safety mechanism**: Detects old examples and preserves them to avoid data loss

- Fixed JSON data loading - examples can now load `.json.gz` files from CDN
- Fixed Docker compose configuration for isolated development
- Fixed webpack WebSocket configuration for different ports

- Import operations now log what's being created vs updated:
  - "Creating new dashboard: Sales Dashboard"
  - "Updating existing chart: World's Population"
- Provides clear visibility into the import process

- Moved import logging to individual import functions (DRY principle)
- Non-destructive migration approach - no user data is deleted
- Deterministic UUID generation for consistent example data

- Tested migration from old Python examples to new YAML format
- Verified safety mechanism prevents accidental data overwrites
- Confirmed backwards compatibility with deprecated command
- All pre-commit checks pass

- Updated installation docs to use new CLI commands
- Added deprecation notice to UPDATING.md
- Updated development documentation

None - the old `load-examples` command continues to work with a deprecation warning.

For users with existing Python-based examples:
1. Run `superset examples clear-old --confirm` to remove old examples
2. Run `superset examples load` to load new YAML-based examples
2025-07-29 22:23:52 -07:00
Maxime Beauchemin
e51b95ffa8 chore: enforce more ruff rules (#31447)
Co-authored-by: Elizabeth Thompson <eschutho@gmail.com>
2024-12-18 17:41:34 -08:00
cwegener
7081a0e73d refactor: pkg_resources -> importlib.resources (#24578) 2023-07-05 14:26:07 -07:00
John Bodley
a4d5d7c6b9 chore(pre-commit): Add pyupgrade and pycln hooks (#24197) 2023-06-01 12:01:10 -07:00
Beto Dealmeida
ec6318b379 fix: permission checks on import (#23200) 2023-03-15 08:31:09 -07:00
Ville Brofeldt
5482f78a9c fix(ci): explicity set yaml Loader (#23126) 2023-02-20 16:22:54 +02:00
Yongjie Zhao
31085e34ce fix: CI is blocked by mypy checking (#17213) 2021-10-25 11:16:47 +08:00
Beto Dealmeida
7de54d016e feat: import configuration from directory (#15686)
* feat: command to import configuration from a directory

This allows us to keep Superset updated from a repo:

```bash
$ superset import-directory /path/to/configs/
```

For example, I created a simple dashboard with a single chart:

PLACEHOLDER

I then exported it to a file `dashboard_export_20210714T104600.zip` and
unzipped it. After deleting the dashboard, chart, dataset, and database
I imported everything back with:

```bash
$ superset import-directory ~/Downloads/dashboard_export_20210714T104600/
```

I then changed the chart title in `~/Downloads/dashboard_export_20210714T104600/charts/Cnt_per_country_1.yaml` and ran the command again. The chart was succesfully updated:

PLACEHOLDER

* Small fixes
2021-08-11 18:42:50 -07:00
Rob DiCiuccio
68dae80110 build: Skip loading example data from configs in CI (#12610)
* Skip loading example data from configs in CI

* Use .test suffix for example data required by e2e tests

* Address linting error with regex
2021-02-01 16:07:28 -08:00
Beto Dealmeida
6b2b208b3b fix: load example data into correct DB (#12292)
* fix: load example data into correct DB

* Fix force_data

* Fix lint
2021-01-05 17:52:42 -08:00
Beto Dealmeida
c281e52f81 feat: add new dashboard with video game sales (#12162) 2020-12-22 08:53:18 -08:00
Beto Dealmeida
5e811a14ef feat: load examples from config instead of code (#12026)
* feat: load examples from config instead of code

* Remove database

* Update data URL
2020-12-15 13:44:23 -08:00