Problem/Motivation
The current module requires drupal/geofield, because its headline feature is the Cesium Globe geofield formatter. Providing the CesiumJS library and the Ion settings does not need geofield, but a site that only wants those gets geofield anyway.
That matters beyond tidiness. A separate module for the OpenLayers 2D to 3D bridge will depend on this one for library provision, and a site using it with WMS layers would pull in a field type it never uses.
Proposed resolution
Split the module in two.
Base cesium keeps what has no field dependency: the CesiumJS library declaration, the Ion token settings form and its configuration, and CESIUM_BASE_URL.
New cesium_geofield submodule takes the geofield formatter and declares drupal/geofield itself.
Existing sites enable both and behave as before.
Remaining tasks
- Move the formatter, its templates and its tests into the submodule.
- Remove
drupal/geofieldfrom the base module'scomposer.jsonandinfo.yml. - Decide whether an update hook is needed to enable
cesium_geofieldon sites already using the formatter, or whether the release note is enough at this stage. - Update the README so the two modules and what each provides are clear.
User interface changes
None for a site that enables both modules. The formatter keeps its name and its settings.
API changes
The base module no longer declares drupal/geofield. Anything depending on cesium for the formatter should depend on cesium_geofield instead.
Data model changes
None. The formatter's stored settings are unchanged; only the module that provides it moves.
Issue fork cesium-3616085
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #2
orkutmuratyilmazComment #5
orkutmuratyilmaz