Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#4675 Remove unused code #10442

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

allyoucanmap
Copy link
Contributor

Description

This PR removes plugins and related dependencies unused and deprecated. The current plugins has been removed:

  • FeatureGrid replaced by FeatureEditor
  • MeasurePanel replaced by Measure
  • MeasureResults replaced by Measure
  • RasterStyler replaced by StyleEditor
  • ShapeFile replaced by MapImport
  • Styler replaced by StyleEditor
  • VectorStyler replaced by StyleEditor

Additional code changes:

  • Annotations deprecated code has been removed because replaced by the new refactoring
  • Experimental WF3 layer support has been removed
  • SLDUtils used has been removed has dependencies of RasterStyler, Styler and VectorStyler, this change helps on the removal of ogc-schemas

Please check if the PR fulfills these requirements

What kind of change does this PR introduce? (check one with "x", remove the others)

  • Code style update

Issue

What is the current behavior?

#4675

What is the new behavior?

Removed unused code and deprecated components

Breaking change

Does this PR introduce a breaking change? (check one with "x", remove the other)

  • No

Other useful information

The webpack-deadcode-plugin lib has been used to check which files are not used by mapstore, there are still the following components that should be checked:

"MapStore2/web/client/actions/importer.js",
"MapStore2/web/client/actions/share.js",
"MapStore2/web/client/actions/tasks.js",
"MapStore2/web/client/api/MapConfigDAO.js",
"MapStore2/web/client/containers/HolyGrail.jsx",
"MapStore2/web/client/observables/ogcDimension.js",
"MapStore2/web/client/reducers/importer.js",
"MapStore2/web/client/reducers/selection.js",
"MapStore2/web/client/reducers/tasks.js",
"MapStore2/web/client/selectors/cswtocatalog.js",
"MapStore2/web/client/utils/AgentUtils.js",
"MapStore2/web/client/api/geoserver/Importer.js",
"MapStore2/web/client/api/geoserver/Workspaces.js",
"MapStore2/web/client/api/usersession/serverbackup.js",
"MapStore2/web/client/components/app/StandardAppComponent.jsx",
"MapStore2/web/client/components/file/FileUploader.jsx",
"MapStore2/web/client/components/help/HelpToggleBtn.jsx",
"MapStore2/web/client/components/I18N/LangSelector.jsx",
"MapStore2/web/client/components/maps/MapItem.jsx",
"MapStore2/web/client/components/maps/MapList.jsx",
"MapStore2/web/client/components/misc/DockablePanel.jsx",
"MapStore2/web/client/components/misc/LinkToPage.jsx",
"MapStore2/web/client/components/misc/ResizableGrid.jsx",
"MapStore2/web/client/components/print/PrintSubmit.jsx",
"MapStore2/web/client/components/security/PermissionEditor.jsx",
"MapStore2/web/client/components/toolbar/MapToolbar.jsx",
"MapStore2/web/client/plugins/dashboard/Editor.jsx",
"MapStore2/web/client/plugins/dashboard/SaveDialog.jsx",
"MapStore2/web/client/plugins/manager/Importer.jsx",
"MapStore2/web/client/plugins/print/Graticule.jsx",
"MapStore2/web/client/plugins/print/Scale.jsx",
"MapStore2/web/client/plugins/searchservicesconfig/ToggleButton.jsx",
"MapStore2/web/client/product/pages/Importer.jsx",
"MapStore2/web/client/components/data/identify/DefaultHeader.jsx",
"MapStore2/web/client/components/data/query/AutocompleteField.jsx",
"MapStore2/web/client/components/data/query/SimpleFilterField.jsx",
"MapStore2/web/client/components/manager/importer/BreadCrumb.jsx",
"MapStore2/web/client/components/manager/importer/Import.jsx",
"MapStore2/web/client/components/manager/importer/Importer.jsx",
"MapStore2/web/client/components/manager/importer/ImportsGrid.jsx",
"MapStore2/web/client/components/manager/importer/Layer.jsx",
"MapStore2/web/client/components/manager/importer/Task.jsx",
"MapStore2/web/client/components/manager/importer/TaskProgress.jsx",
"MapStore2/web/client/components/manager/importer/Transform.jsx",
"MapStore2/web/client/components/manager/importer/TransformsGrid.jsx",
"MapStore2/web/client/components/manager/importer/Workspace.jsx",
"MapStore2/web/client/components/manager/users/GroupManager.jsx",
"MapStore2/web/client/components/maps/enhancers/mapCatalog.js",
"MapStore2/web/client/components/maps/forms/Metadata.jsx",
"MapStore2/web/client/components/mediaEditor/enhancers/withFilter.js",
"MapStore2/web/client/components/misc/datetimepicker/Time.js",
"MapStore2/web/client/components/misc/enhancers/debounce.js",
"MapStore2/web/client/components/misc/enhancers/withPropsStream.js",
"MapStore2/web/client/components/misc/sidebar/index.js",
"MapStore2/web/client/components/misc/sidebar/Sidebar.jsx",
"MapStore2/web/client/components/misc/sidebar/SidebarHeader.jsx",
"MapStore2/web/client/components/TOC/fragments/RefreshLayers.jsx",
"MapStore2/web/client/components/widgets/builder/WidgetBuilder.jsx",
"MapStore2/web/client/components/widgets/enhancers/dataHolder.js",
"MapStore2/web/client/product/assets/css/home.css",
"MapStore2/web/client/product/components/home/Brand.jsx",
"MapStore2/web/client/product/components/home/Description.jsx",
"MapStore2/web/client/product/components/home/Footer.jsx",
"MapStore2/web/client/product/components/home/Fork.jsx",
"MapStore2/web/client/product/components/home/Language.jsx",
"MapStore2/web/client/product/components/home/Logo.jsx",
"MapStore2/web/client/product/components/viewer/Home.jsx",
"MapStore2/web/client/product/plugins/footer/footer.css",
"MapStore2/web/client/product/plugins/homedescription/homedescription.css",
"MapStore2/web/client/utils/ogc/WFST/index.js",
"MapStore2/web/client/utils/ogc/WPS/base.js",
"MapStore2/web/client/utils/ogc/WPS/index.js",
"MapStore2/web/client/utils/ogc/WPS/RequestBuilder.js",
"MapStore2/web/client/components/data/featuregrid/dialog/index.js",
"MapStore2/web/client/components/data/featuregrid/renderers/cell.css",
"MapStore2/web/client/components/data/identify/css/identify.css",
"MapStore2/web/client/components/manager/importer/style/importer.css",
"MapStore2/web/client/components/manager/importer/transforms/GdalAddoTransform.jsx",
"MapStore2/web/client/components/manager/importer/transforms/GdalTranslateTransform.jsx",
"MapStore2/web/client/components/manager/importer/transforms/GdalWarpTransform.jsx",
"MapStore2/web/client/components/manager/importer/transforms/index.js",
"MapStore2/web/client/components/map/openlayers/plugins/MarkerLayer.js",
"MapStore2/web/client/components/mapcontrols/search/geocoding/NominatimResult.jsx",
"MapStore2/web/client/components/mapcontrols/search/geocoding/NominatimResultList.jsx",
"MapStore2/web/client/components/maps/modals/css/modals.css",
"MapStore2/web/client/components/misc/spinners/InlineSpinner/InlineSpinner.jsx",
"MapStore2/web/client/components/TOC/fragments/settings/FeatureInfoFormat.jsx",
"MapStore2/web/client/plugins/StreetView/components/CyclomediaView/index.jsx",
"MapStore2/web/client/utils/ogc/WFST/v1_1_0/delete.js",
"MapStore2/web/client/utils/ogc/WFST/v1_1_0/index.js",
"MapStore2/web/client/utils/ogc/WFST/v1_1_0/insert.js",
"MapStore2/web/client/utils/ogc/WFST/v1_1_0/transaction.js",
"MapStore2/web/client/utils/ogc/WFST/v1_1_0/update.js",
"MapStore2/web/client/plugins/StreetView/components/MapillaryView/__test__/MapillaryView-test.jsx"

@allyoucanmap allyoucanmap added this to the 2024.02.00 milestone Jun 24, 2024
@allyoucanmap allyoucanmap self-assigned this Jun 24, 2024
@allyoucanmap allyoucanmap linked an issue Jun 24, 2024 that may be closed by this pull request
13 tasks
@tdipisa tdipisa requested a review from offtherailz June 26, 2024 09:17
@tdipisa
Copy link
Member

tdipisa commented Jun 26, 2024

Thank you @allyoucanmap
@offtherailz please review as we agreed in our call and also consider please the other useful info for additional stuff to remove. I would like to remove dead code definitely as soon as possible that only confuses developers.

Copy link
Member

@offtherailz offtherailz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure about the following:

  • WFS3 support. web/client/api/WFS3.js web/client/api/__tests__/WFS3-test.js and so web/client/components/map/openlayers/__tests__/Layer-test.jsx web/client/components/map/openlayers/plugins/WFS3Layer.js web/client/components/map/openlayers/plugins/index.js
    Why?

  • I think that we can remove also these dependencies from package.json:

    • "ag-grid-community": "20.2.0": used only in web/client/components/style/ColorMapGrid.jsx
    • "ag-grid-react": "20.2.0" : same as above
    • "colorbrewer": "1.0.0": used only in web/client/components/style/EqualIntervalComponents/ExtendColorBrewer.js

About dependencies, other things to take in consideration are:

  • Uniform turf versions
  • I noticed also react-confirm-button, not in this PR but not used for a long time
  • From my undestanding also wkt-parser (documented also in moduleFederation and custom-dependencies.md can be removed. wellknown can be replaced with our toGeoJSon and toWKT functions in MapStore. Maybe this last can be postponed to a second time.

About files appended:

Can be removed

"MapStore2/web/client/actions/importer.js",
"MapStore2/web/client/reducers/importer.js",
"MapStore2/web/client/plugins/manager/Importer.jsx",
"MapStore2/web/client/components/manager/importer/BreadCrumb.jsx",
"MapStore2/web/client/components/manager/importer/Import.jsx",
"MapStore2/web/client/components/manager/importer/Importer.jsx",
"MapStore2/web/client/components/manager/importer/ImportsGrid.jsx",
"MapStore2/web/client/components/manager/importer/Workspace.jsx",
"MapStore2/web/client/components/manager/importer/Layer.jsx",
"MapStore2/web/client/components/manager/importer/Task.jsx",
"MapStore2/web/client/components/manager/importer/TaskProgress.jsx",
"MapStore2/web/client/components/manager/importer/Transform.jsx",
"MapStore2/web/client/components/manager/importer/TransformsGrid.jsx",
"MapStore2/web/client/components/manager/importer/style/importer.css",
"MapStore2/web/client/components/manager/importer/transforms/GdalAddoTransform.jsx",
"MapStore2/web/client/components/manager/importer/transforms/GdalTranslateTransform.jsx",
"MapStore2/web/client/components/manager/importer/transforms/GdalWarpTransform.jsx",
"MapStore2/web/client/components/manager/importer/transforms/index.js",

Belong to the importer that is not maintained and used anymore.

  • actions, reducers and components could be removed.
"MapStore2/web/client/utils/AgentUtils.js",

Can be removed, used only be elements removed.

"MapStore2/web/client/actions/share.js",
"MapStore2/web/client/actions/tasks.js",
"MapStore2/web/client/reducers/tasks.js",

I don't Know probably can be removed.

"MapStore2/web/client/api/MapConfigDAO.js",

Very old file, not used can be removed

"MapStore2/web/client/containers/HolyGrail.jsx",

Alternative layout container for MapViewer/Pages, not used anymore for a long time.
BorderLayout is more than enough, can be removed.

"MapStore2/web/client/observables/ogcDimension.js",

Doesn't seems to be used. Probably it has been removed from a refactor.
Can be removed

"MapStore2/web/client/components/mapcontrols/search/geocoding/NominatimResult.jsx",
"MapStore2/web/client/components/mapcontrols/search/geocoding/NominatimResultList.jsx",

Probably old implementation, can be removed

"MapStore2/web/client/components/maps/MapItem.jsx",
"MapStore2/web/client/components/maps/MapList.jsx",

These are probably old, replaced by generic GridCards, can be removed.

Maybe can be removed

"MapStore2/web/client/api/geoserver/Importer.js",
"MapStore2/web/client/api/geoserver/Workspaces.js",
  • Used by importer, maybe APIs could still make sense. Anyway they are not used.

Maybe Keep

"MapStore2/web/client/utils/ogc/WFST/index.js",
"MapStore2/web/client/utils/ogc/WPS/base.js",
"MapStore2/web/client/utils/ogc/WPS/index.js",
"MapStore2/web/client/utils/ogc/WPS/RequestBuilder.js",
"MapStore2/web/client/utils/ogc/WFST/v1_1_0/delete.js",
"MapStore2/web/client/utils/ogc/WFST/v1_1_0/index.js",
"MapStore2/web/client/utils/ogc/WFST/v1_1_0/insert.js",
"MapStore2/web/client/utils/ogc/WFST/v1_1_0/transaction.js",
"MapStore2/web/client/utils/ogc/WFST/v1_1_0/update.js",

All these utils are maybe should be keep. Not sure why they are orphan.

"MapStore2/web/client/plugins/print/Graticule.jsx",
"MapStore2/web/client/plugins/print/Scale.jsx",

We have to make sure they are not plugins of print.

Not processed

I didn't have time to process all these files.
We need to spend more time on them.

"MapStore2/web/client/reducers/selection.js",
"MapStore2/web/client/selectors/cswtocatalog.js",
"MapStore2/web/client/api/usersession/serverbackup.js",
"MapStore2/web/client/components/app/StandardAppComponent.jsx",
"MapStore2/web/client/components/file/FileUploader.jsx",
"MapStore2/web/client/components/help/HelpToggleBtn.jsx",
"MapStore2/web/client/components/I18N/LangSelector.jsx",
"MapStore2/web/client/components/misc/DockablePanel.jsx",
"MapStore2/web/client/components/misc/LinkToPage.jsx",
"MapStore2/web/client/components/misc/ResizableGrid.jsx",
"MapStore2/web/client/components/print/PrintSubmit.jsx",
"MapStore2/web/client/components/security/PermissionEditor.jsx",
"MapStore2/web/client/components/toolbar/MapToolbar.jsx",
"MapStore2/web/client/plugins/dashboard/Editor.jsx",
"MapStore2/web/client/plugins/dashboard/SaveDialog.jsx",


"MapStore2/web/client/plugins/searchservicesconfig/ToggleButton.jsx",
"MapStore2/web/client/product/pages/Importer.jsx",
"MapStore2/web/client/components/data/identify/DefaultHeader.jsx",
"MapStore2/web/client/components/data/query/AutocompleteField.jsx",
"MapStore2/web/client/components/data/query/SimpleFilterField.jsx",

"MapStore2/web/client/components/manager/users/GroupManager.jsx",
"MapStore2/web/client/components/maps/enhancers/mapCatalog.js",
"MapStore2/web/client/components/maps/forms/Metadata.jsx",
"MapStore2/web/client/components/mediaEditor/enhancers/withFilter.js",
"MapStore2/web/client/components/misc/datetimepicker/Time.js",
"MapStore2/web/client/components/misc/enhancers/debounce.js",
"MapStore2/web/client/components/misc/enhancers/withPropsStream.js",
"MapStore2/web/client/components/misc/sidebar/index.js",
"MapStore2/web/client/components/misc/sidebar/Sidebar.jsx",
"MapStore2/web/client/components/misc/sidebar/SidebarHeader.jsx",
"MapStore2/web/client/components/TOC/fragments/RefreshLayers.jsx",
"MapStore2/web/client/components/widgets/builder/WidgetBuilder.jsx",
"MapStore2/web/client/components/widgets/enhancers/dataHolder.js",
"MapStore2/web/client/product/assets/css/home.css",
"MapStore2/web/client/product/components/home/Brand.jsx",
"MapStore2/web/client/product/components/home/Description.jsx",
"MapStore2/web/client/product/components/home/Footer.jsx",
"MapStore2/web/client/product/components/home/Fork.jsx",
"MapStore2/web/client/product/components/home/Language.jsx",
"MapStore2/web/client/product/components/home/Logo.jsx",
"MapStore2/web/client/product/components/viewer/Home.jsx",
"MapStore2/web/client/product/plugins/footer/footer.css",
"MapStore2/web/client/product/plugins/homedescription/homedescription.css",

"MapStore2/web/client/components/data/featuregrid/dialog/index.js",
"MapStore2/web/client/components/data/featuregrid/renderers/cell.css",
"MapStore2/web/client/components/data/identify/css/identify.css",


"MapStore2/web/client/components/map/openlayers/plugins/MarkerLayer.js",
"MapStore2/web/client/components/maps/modals/css/modals.css",
"MapStore2/web/client/components/misc/spinners/InlineSpinner/InlineSpinner.jsx",
"MapStore2/web/client/components/TOC/fragments/settings/FeatureInfoFormat.jsx",
"MapStore2/web/client/plugins/StreetView/components/CyclomediaView/index.jsx",

"MapStore2/web/client/plugins/StreetView/components/MapillaryView/__test__/MapillaryView-test.jsx"

@allyoucanmap
Copy link
Contributor Author

allyoucanmap commented Aug 9, 2024

@offtherailz

WFS3 support. web/client/api/WFS3.js web/client/api/tests/WFS3-test.js and so web/client/components/map/openlayers/tests/Layer-test.jsx web/client/components/map/openlayers/plugins/WFS3Layer.js web/client/components/map/openlayers/plugins/index.js
Why?

WFS3 was an experimental specification that it was replaced later on by the OGC Api features, in addition is a partial implementation without support for 3D.

I think that we can remove also these dependencies from package.json:

"ag-grid-community": "20.2.0": used only in web/client/components/style/ColorMapGrid.jsx
"ag-grid-react": "20.2.0" : same as above
"colorbrewer": "1.0.0": used only in web/client/components/style/EqualIntervalComponents/ExtendColorBrewer.js

Removed

I noticed also react-confirm-button, not in this PR but not used for a long time

Removed

@tdipisa I think this other tasks highlighted in the review should be solved in separated issues

  • Uniform turf versions
  • From my undestanding also wkt-parser (documented also in moduleFederation and custom-dependencies.md can be removed. wellknown can be replaced with our toGeoJSon and toWKT functions in MapStore. Maybe this last can be postponed to a second time

Can be removed section

The content described in the Can be removed section has been removed (#10442 (review))

Maybe can be removed and Not processed section

I review the missing files to check, below the list of removed files with a small descrition on the reason

Removed Files Description
/components/security/PermissionEditor.jsx Parent MetadataModel removed in this PR #5834
/components/toolbar/MapToolbar.jsx Used initially in the Toolbar plugin replaced in #526
/plugins/dashboard/SaveDialog.jsx Initial save implementation of dashboard refactored here using the default save #4540
/plugins/searchservicesconfig/ToggleButton.jsx Import removed in this PR #3544
/components/data/query/AutocompleteField.jsx It was replaced in favor of AutocompleteFieldHOC #2228
/components/data/query/SimpleFilterField.jsx Introduced but not used #724
/components/misc/ResizableGrid.jsx Introduced but it is not used #1835
/components/I18N/LangSelector.jsx Replaced by LangBar component
/components/print/PrintSubmit.jsx Replaced by ActionButton in this PR #7596
/selectors/cswtocatalog.js Introduced in #585 the initial Metadata Explorer
/components/file/FileUploader.jsx, /product/pages/Importer.jsx, /api/geoserver/Importer.js, /api/geoserver/Workspaces.js related to importer and legacy style editor
/components/manager/users/GroupManager.jsx introduced but not used #1061
/components/maps/forms/Metadata.jsx It seems replaced by resources/forms/Metadata
/components/mediaEditor/enhancers/withFilter.js introduced to be used with ImageList, later removed #4278
/components/misc/datetimepicker/Time.js introduced but not used #9743
/components/misc/enhancers/debounce.js introduced but not used #2720
/components/misc/enhancers/withPropsStream.js introduced but not used #2791
/components/misc/sidebar/index.js, /components/misc/sidebar/Sidebar.jsx, /components/misc/sidebar/SidebarHeader.jsx introduced but not used #2260
/components/widgets/enhancers/dataHolder.js introduced but not used #2405
/product/components/home/Brand.jsx, /product/components/home/Description.jsx, /product/components/home/Footer.jsx, /product/components/home/Fork.jsx, /product/components/home/Language.jsx, /product/components/home/Logo.jsx, /product/components/viewer/Home.jsx old homepage product component
/product/assets/css/home.css, /product/plugins/footer/footer.css, /product/plugins/homedescription/homedescription.css old homepage plugin styles
/plugins/StreetView/components/CyclomediaView/index.jsx it's not imported because we are using directly components/CyclomediaView/CyclomediaView
/utils/ogc/WPS/base.js, /utils/ogc/WPS/index.js, /utils/ogc/WPS/RequestBuilder.js, /plugins/dashboard/Editor.jsx empty files
/components/data/featuregrid/renderers/cell.css, /components/data/identify/css/identify.css, /components/maps/modals/css/modals.css, /components/misc/spinners/InlineSpinner/InlineSpinner.jsx, /components/TOC/fragments/settings/FeatureInfoFormat.jsx, /components/help/HelpToggleBtn.jsx, /components/misc/DockablePanel.jsx, /components/misc/LinkToPage.jsx, /components/data/identify/DefaultHeader.jsx old code not used anymore

Remaining unused files

We still have the following unused files after removing all the above and running again the webpack-deadcode-plugin script. We should decide what to do with some of them (cc @tdipisa )

Remove? Files Descripition
N /components/maps/enhancers/mapCatalog.js This PR #2813 replaced mapCatalog with mapCatalogWithEmptyMap but this file it's still used in tests
? /components/data/featuregrid/dialog/index.js This has been implemented as a entry file collecting related component but we are not using it in the core
? /api/usersession/serverbackup.js Not clear if used or not #5154
? /plugins/print/Graticule.jsx, /plugins/print/Scale.jsx This are two plugins used in GeoNode but not imported in the default product of MapStore, should we include this plugins in the core?
? /components/app/StandardAppComponent.jsx This seems an alternative to StandardRouter, probably we can remove it because the downstream projects are using main function that uses the StandardRouter component
? /reducers/selection.js Introduced in #1813 for OpenLayers SelectionSupport. It seems it was ported from a downstream project but not used in MapStore
? /components/TOC/fragments/RefreshLayers.jsx Tool to migrate layer configuration from MS1 to MS2 see #1230. If we want to remove this we should also remove all related methods eg: actions, reducers, ...
? /components/map/openlayers/plugins/MarkerLayer.js Added but never registered in index see 1083173#diff-1cb2840700b1dc79eadc3a4100674d4b2a741a8aed7bd0b890528acfd52495a5. The marker layer is considered deprecated so if we want to remove we should also remove the Cesium implementation
N /components/widgets/builder/WidgetBuilder.jsx Still used to test the builderConfiguration file
? /utils/ogc/WFST/index.js, /utils/ogc/WFST/v1_1_0/delete.js, /utils/ogc/WFST/v1_1_0/index.js, /utils/ogc/WFST/v1_1_0/insert.js, /utils/ogc/WFST/v1_1_0/transaction.js, /utils/ogc/WFST/v1_1_0/update.js The WFST/v1_1_0 files were replaced in this PR in favor of new files #1927. It is not clear if these are two different API or a duplication

@tdipisa
Copy link
Member

tdipisa commented Aug 19, 2024

@offtherailz

@tdipisa I think this other tasks highlighted in the review should be solved in separated issues

  • Uniform turf versions
  • From my undestanding also wkt-parser (documented also in moduleFederation and custom-dependencies.md can be removed. wellknown can be replaced with our toGeoJSon and toWKT functions in MapStore. Maybe this last can be postponed to a second time

I agree with the following with separated issues.

As for the following:

Remaining unused files
We still have the following unused files after removing all the above and running again the webpack-deadcode-plugin script. We should decide what to do with some of them (cc @tdipisa )

I would like to wait for the @offtherailz review. Probably the most part of pending things can be totally removed. §Let's discuss together after the review @offtherailz @allyoucanmap.

@tdipisa tdipisa linked an issue Aug 28, 2024 that may be closed by this pull request
1 task
@tdipisa tdipisa removed a link to an issue Aug 28, 2024
13 tasks
@tdipisa tdipisa modified the milestones: 2024.02.00, 2025.01.00 Sep 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Remove deprecated styler plugins and related components
3 participants