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 1 commit 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"

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.

Improving MapStore Performances
3 participants