Hi all,

Following our previous email 
<https://lists.apache.org/thread/ld2601pzoz5o198jf3rjmfrgw30tm98q> and 
according to our Release Process 
<https://github.com/apache/superset/wiki/Release-Process>, we’re sending the 
breaking change proposals for 4.0 to gather lazy consensus. We are seeking 
permission to merge these changes while the breaking change window is open on 
the repo. They might not all make it in, and those that are not completed 
before the window closes will be carried over as “pre-approved” for the 
subsequent major release (5.0).

Each of these is seeking individual lazy consensus. If you object to any of 
these changes or wish for further clarification on any of them, please let us 
know which you would like to stop or discuss, and we can hash it out here on 
the list, on Slack, in Town Hall, etc.

Each proposal is numbered, according to previous breaking change windows, to 
make sure they are unique. Please use this number when referencing a proposal.

35 - Remove /profile view from Superset 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=37381592>
This proposal is to remove the Profile feature of Superset given that it's not 
actively maintained and not widely used. This feature is implemented using 
server-side rendering and would require a complete rewrite using React which we 
don't intend to do unless people perceive it as a valuable feature. The removal 
of this feature was already approved in 3.0 but we had a comment to re-submit 
the proposal for lazy consensus in 4.0 before completing the work.

47 - Deprecate the DASHBOARD_CROSS_FILTERS feature flag 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=49592004>
This proposal is to deprecate the DASHBOARD_CROSS_FILTERS feature flag which is 
currently True by default. The feature is already being used in production 
environments and we believe it's not something admins would want to disable.

48 - Deprecate the DRILL_TO_DETAIL feature flag 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=49592193>
This proposal is to deprecate the DRILL_TO_DETAIL feature flag which is 
currently True by default. The feature is already being used in production 
environments and we believe it's not something admins would want to disable.

49 - Deprecate the ENABLE_JAVASCRIPT_CONTROLS feature flag 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=49591887>
This proposal is to deprecate the ENABLE_JAVASCRIPT_CONTROLS feature flag which 
is used to enable programmers to customize certain charts (like the geospatial 
ones) by inputting javascript in controls. This exposes an XSS security 
vulnerability.

50 - Deprecate the KV_STORE feature flag 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=49557695>
This proposal is to deprecate the KV_STORE feature flag and its related assets 
such as the API endpoint and keyvalue table. The main dependency of this 
feature is the SHARE_QUERIES_VIA_KV_STORE feature flag which allows sharing SQL 
Lab queries without the necessity of saving the query. We intend to use the 
permalink feature to implement this use case before 5.0 and that's why we are 
deprecating the feature flag now.

51 - Drop support for SQLite metadata database 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=40454778>
This proposal is to materialize SIP-33 
<https://github.com/apache/superset/issues/8874> and remove SQLite support for 
metadata databases.

52 - Make enum naming consistent (PascalCase on JS/TS, UPPERCASE on Python) 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=49591728>
This proposal is to make our enum naming consistent and adherent to best 
practices for each language. More specifically, applying PascalCase for JS/TS 
enums and UPPERCASE for Python enums. This might impact configuration files 
such as config.py.

53 - Manage all country maps via the Jupyter notebook, and enforce this 
behavior 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=48006012>
Right now we have maps that are managed/built by a Jupyter notebook. There are 
several maps that have appeared or been modified outside of this workflow. With 
this change, we will re-generate all applicable maps by adding them to the 
notebook, and outputting updated maps to the repo. This will make it easier to 
add more countries, dynamically add them to the country map plugin, and update 
map regions periodically.

54 - Migrate and remove the legacy Heatmap chart 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=37381527>
The ECharts version of the Heatmap chart was introduced by 
apache/superset#25353 <https://github.com/apache/superset/pull/25353> as part 
of our efforts to complete SIP-50 
<https://github.com/apache/superset/issues/10418>. This proposal is to 
automatically migrate all legacy Heatmap charts to ECharts and remove legacy 
code.

55 - Migrate and remove the legacy Sunburst chart 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=37381585>
The ECharts version of the Sunburst chart was introduced by 
apache/superset#22833 <https://github.com/apache/superset/pull/22833> as part 
of our efforts to complete SIP-50 
<https://github.com/apache/superset/issues/10418>. This proposal is to 
automatically migrate all legacy Sunburst charts to ECharts and remove legacy 
code.

56 - Remove the old redirect (R) endpoint and its associated assets 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=48593705>
This proposal removes the deprecated Redirect API that supported short URLs 
(/r) and the url metadata table used to store them that was used before the 
permalink feature. Users lost the ability to generate R links ~1.5 years ago 
which seems sufficient time to remove the endpoint. It looks like we forgot to 
officially deprecate the endpoint (config.py) in 3.0 but we think proposing the 
removal for lazy consensus now is sufficient given the elapsed amount of time.
apache/superset#19078 <https://github.com/apache/superset/pull/19078> has the 
following message in UPDATING.md which is more relevant from a communication 
standpoint as opposed to the # deprecated comment in config.py:
                19078 <https://github.com/apache/superset/pull/19078>: Creation 
of old shorturl links has been deprecated in favor of a new permalink feature 
that solves the long url problem (old shorturls will still work, though!). By 
default, new permalinks use UUID4 as the key. However, to use serial ids 
similar to the old shorturls, add the following to your superset_config.py: 
PERMALINK_KEY_TYPE = "id".

57 - Remove the deprecated CLIENT_CACHE feature flag 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=49116513>
This proposal is to remove the CLIENT_CACHE feature flag which was deprecated 
in 3.0 and was used to request chart data using GET requests. The previous 
value of the feature flag was False and now the feature will be permanently 
removed.

58 - Remove the deprecated DASHBOARD_CACHE feature flag 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=49116576>
This proposal is to remove the DASHBOARD_CACHE feature flag which was 
deprecated in 3.0 and was used to cache dashboard APIs. Unfortunately, the 
feature proved to be error-prone, generating many inconsistencies when 
interacting with dashboard resources. The previous value of the feature flag 
was False and now the feature will be permanently removed.

59 - Remove the deprecated DASHBOARD_FILTERS_EXPERIMENTAL feature flag 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=49116603>
This proposal is to remove the DASHBOARD_FILTERS_EXPERIMENTAL feature flag 
which was deprecated in 3.0 and was used to enable an experimental filter type 
called Group By. Given that the filter type is not actively supported and it's 
very similar to the Drill By feature, we are proposing to remove it. The 
previous value of the feature flag was False and now the feature will be 
permanently removed.

60 - Remove the deprecated DASHBOARD_NATIVE_FILTERS feature flag 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=49116629>
This proposal is to remove the DASHBOARD_NATIVE_FILTERS feature flag which was 
deprecated in 3.0. It was used for the development of native filters that 
replaced the filter boxes. The previous value of the feature flag was True and 
now the feature will be permanently enabled. (edited) 
10:57 <https://apache-superset.slack.com/archives/D02P5B8JBC3/p1704981479633039>
61 - Remove the deprecated DASHBOARD_NATIVE_FILTERS_SET feature flag 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=49116643>
This proposal is to remove the Filters Set feature including the deprecated 
DASHBOARD_NATIVE_FILTERS_SET feature flag and all related API endpoints. The 
feature will be permanently removed as it was not being actively maintained, it 
was not widely used, and it was full of bugs. We also considered that if we 
were to provide a similar feature, it would be better to re-implement it from 
scratch given the amount of technical debt that the current implementation has. 
The previous value of the feature flag was False and now the feature will be 
permanently removed.

62 - Remove the deprecated DISABLE_DATASET_SOURCE_EDIT feature flag 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=49121400>
This proposal is to remove the DISABLE_DATASET_SOURCE_EDIT feature flag which 
was deprecated in 3.0 and was used to control access to datasource source 
editing. This control was replaced by security permissions. The previous value 
of the feature flag was False and now the feature will be permanently removed.

63 - Remove the deprecated ENABLE_EXPLORE_DRAG_AND_DROP feature flag 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=49116687>
This proposal is to remove the ENABLE_EXPLORE_DRAG_AND_DROP feature flag which 
was deprecated in 3.0 and was used to enable drag and drop on Explore controls. 
The previous value of the feature flag was True and now the feature will be 
permanently enabled.

64 - Remove the deprecated ENABLE_EXPLORE_JSON_CSRF_PROTECTION feature flag 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=49116726>
This proposal is to remove the ENABLE_EXPLORE_JSON_CSRF_PROTECTION feature flag 
which was deprecated in 3.0 and was used to enforce CSRF protection on query 
requests to the explore_json endpoint. This is not needed anymore as the 
application has other mechanisms for this type of control. The previous value 
of the feature flag was False and now the feature will be permanently removed.

65 - Remove the deprecated ENABLE_TEMPLATE_REMOVE_FILTERS feature flag 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=49116757>
This proposal is to remove the ENABLE_TEMPLATE_REMOVE_FILTERS feature flag 
which was deprecated in 3.0 and was used to control how Jinja filters were 
parsed <https://github.com/apache/superset/issues/13943> by Superset. The 
previous value of the feature flag was True and now the feature will be 
permanently enabled.

66 - Remove the deprecated GENERIC_CHART_AXES feature flag 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=49116768>
This proposal is to remove the GENERIC_CHART_AXES feature flag which was 
deprecated in 3.0 and was used to develop support for charts with non-temporal 
x-axis. The previous value of the feature flag was True and now the feature 
will be permanently enabled.

67 - Remove the deprecated REMOVE_SLICE_LEVEL_LABEL_COLORS feature flag 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=49116789>
This proposal is to remove the REMOVE_SLICE_LEVEL_LABEL_COLORS feature flag 
which was deprecated in 3.0. The feature flag was used to remove color-related 
attributes from a chart's form data to reduce payload when the chart was loaded 
as part of the dashboard initialization. These attributes are not loaded 
anymore making this optimization obsolete. The previous value of the feature 
flag was False and now the feature will be permanently removed.

68 - Remove the deprecated VERSIONED_EXPORT feature flag 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=49116804>
This proposal is to remove the VERSIONED_EXPORT feature flag which was 
deprecated in 3.0 and was used to develop support for versioned import/export 
files. The previous value of the feature flag was True and now the feature is 
permanently enabled.

69 - Set the DASHBOARD_VIRTUALIZATION feature flag to True by default 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=49592036>
This proposal is to set the DASHBOARD_VIRTUALIZATION feature flag to True by 
default. This feature was introduced by apache/superset#21438 
<https://github.com/apache/superset/pull/21438> and will enable virtualization 
when rendering a dashboard's charts in an attempt to reduce the number of 
elements (DOM nodes) rendered at once. This is especially useful for large 
dashboards.

70 - Set the DRILL_BY feature flag to True by default 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=49592172>
This proposal is to set the DRILL_BY feature flag to True by default. We have 
been testing the feature in the last months and we believe it's ready for prime 
time. Check https://preset.io/blog/drill-down-and-drill-by/ for more 
information about the feature.

71 - Set the PLAYWRIGHT_REPORTS_AND_THUMBNAILS feature flag to True by default 
<https://github.com/orgs/apache/projects/292/views/1?pane=issue&itemId=49592618>
This proposal is to set the PLAYWRIGHT_REPORTS_AND_THUMBNAILS feature flag to 
True by default. The feature was introduced by apache/superset#25247 
<https://github.com/apache/superset/pull/25247> and uses Playwright instead of 
Selenium to take screenshots of dashboards and charts when preparing reports 
and thumbnails. The main motivation for this change is to correctly support 
deck.gl <http://deck.gl/> charts as described by SIP-98 
<https://github.com/apache/superset/issues/24948>.

More details about the proposals are available on the 4.0 project board 
<https://github.com/orgs/apache/projects/292>.

Best regards,
Michael S. Molina

Reply via email to