Overview
In line with the PSC decisions, a structural change in MapStore's architecture must be implemented. The goal is to simplify the core project, modernize package distribution, and transition towards a modular ecosystem based on extensions.
!!!This issue is an Epic to help coordinating and planning involved activities. MIPs will be created for the above as needed!!!
Proposed Interventions
Point below are in order of priority to reflect intrinsic dependencies.
-
Library Updates:
- React: Plan the upgrade path towards React 19.
- Technical Blockers: Priority removal of the Recompose library and upgrading RxJS to a modern, documented version.
-
Repository Fusion & Backend Refactoring
- Backend Consolidation: Merge backend dependency repositories (GeoStore, http-proxy) into the main MapStore repository to ensure perfect version alignment and stream line release processes.
- Decoupling: Decouple more the MapStore front-end from the backend, allowing for more flexible management of server-side components.
-
Project Streamlining & NPM Transition
- MapStore on NPM: Distribute MapStore (and its core components) as packages on NPM. This will allow MapStore to be managed as a true project dependency.
- Removal of Git Submodules: Replace the current mechanism based on git submodules with dependency management via NPM. This will drastically simplify project setup, version tracking, and CI/CD processes.
- Project Standardization: Convert the current product folder into a standard project structure (e.g., via a scaffolder or an NPM template) to minimize manual, error-prone updates.
-
"Massive Sponsorship" of Extensions
- Review plugins interface structure/design by defining new best practices and normalizing plugins definition towards new common rules that people need to follow to develop plugins
- Core Simplification: Migrate various plugins from the core to "community extensions." The core will become lighter, more stable, and easier to maintain.
- Extension Catalog: Develop an online archive or integrated catalog for simplified searching and installation of extensions.
- Isolated Releases: Allow extensions to have independent lifecycles and releases from the MapStore core (to be discussed)
-
Documentation and Training
- New Development Workflow: Update the documentation to reflect the transition from Git Submodule to NPM dependency.
- Training Materials: Create dedicated tutorials for the new project system to facilitate the community's transition.
Key Objectives
- Modernization: Align more with current web development standards (NPM).
- Stability: Reduce core complexity relying more on extensions to also encourage contributions of new features to remedy the long lead times and increased difficulties of integrating into the core
- Agility: Make project setup and the release & maintenance process faster and less error-prone.
Overview
In line with the PSC decisions, a structural change in MapStore's architecture must be implemented. The goal is to simplify the core project, modernize package distribution, and transition towards a modular ecosystem based on extensions.
!!!This issue is an Epic to help coordinating and planning involved activities. MIPs will be created for the above as needed!!!
Proposed Interventions
Point below are in order of priority to reflect intrinsic dependencies.
Library Updates:
Repository Fusion & Backend Refactoring
Project Streamlining & NPM Transition
"Massive Sponsorship" of Extensions
Documentation and Training
Key Objectives