Updating Superset

This file documents any backwards-incompatible changes in Superset and assists people when migrating to a new version.

Superset 0.28.0

  • Support for Python 2 is deprecated, we only support >=3.6 from 0.28.0 onwards

  • Superset 0.28 deprecates the previous dashboard layout. While 0.27 offered a migration workflow to users and allowed them to validate and publish their migrated dashboards individually, 0.28 forces the migration of all dashboards through an automated db migration script. We do recommend that you take a backup prior to this migration.

  • Superset 0.28 deprecates the median cluster label aggregator for mapbox visualizations. This particular aggregation is not supported on mapbox visualizations going forward.

  • Superset 0.28 upgrades flask-login to >=0.3, which includes a backwards-incompatible change: g.user.is_authenticated, g.user.is_anonymous, and g.user.is_active are now properties instead of methods.

Superset 0.27.0

  • Superset 0.27 start to use nested layout for dashboard builder, which is not backward-compatible with earlier dashboard grid data. We provide migration script to automatically convert dashboard grid to nested layout data. To be safe, please take a database backup prior to this upgrade. It's the only way people could go back to a previous state.

Superset 0.26.0

  • Superset 0.26.0 deprecates the superset worker CLI, which is a simple wrapper around the celery worker command, forcing you into crafting your own native celery worker command. Your command should look something like celery worker --app=superset.sql_lab:celery_app --pool=gevent -Ofair

Superset 0.25.0

Superset 0.25.0 contains a backwards incompatible changes. If you run a production system you should schedule downtime for this upgrade.

The PRs bellow have more information around the breaking changes:

  • 4587 : a backward incompatible database migration that requires downtime. Once the db migration succeeds, the web server needs to be restarted with the new version. The previous version will fail
  • 4565 : we‘ve changed the security model a bit where in the past you would have to define your authentication scheme by inheriting from Flask App Builder’s from flask_appbuilder.security.sqla.manager import SecurityManager, you now have to derive Superset's own derivative superset.security.SupersetSecurityManager. This can provide you with more hooks to define your own logic and/or defer permissions to another system as needed. For all implementation, you simply have to import and derive SupersetSecurityManager in place of the SecurityManager
  • 4835 : our setup.py now only pins versions where required, giving you more latitude in using versions of libraries as needed. We do now provide a requirements.txt with pinned versions if you want to run the suggested versions that Superset builds and runs tests against. Simply pip install -r requirements.txt in your build pipeline, likely prior to pip install superset==0.25.0