Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
Problem/Motivation
During DrupalCamp Schwerin we got the hint, that Thunder sometimes binds modules to hard. This makes it impossible for site owners to uninstall modules, that are not needed for them.
Proposed resolution
Let's collect all the problems and open sub-task for every of them.
Remaining tasks
- #2921292: Decouple dependencies in Thunder Media module
- #2921294: Decouple dependencies in Thunder Taxonomy Module
- #2921291: Decouple dependencies in Thunder Article module
- #2921296: Decouple dependencies in Thunder Paragraphs Module
- #2922261: Find unneeded dependencies in optional thunder modules
- #2923094: Thunder Liveblog integration adds unneccesary dependencies
Now that we decoupled lots of the modules, lets collect tickets regarding problems with uninstalling modules.
- Uninstall of scheduler module breaks editing #2850973: ConfigEntityInterface::onDependencyRemoval() called with incorrect dependency list
- #2925479: Uninstall of content lock deletes content view
Comments
Comment #2
mxh+1 for making access_unpublished and content_lock optional.
It would be also a good thing if any media_entity_* submodule, which adds a new media bundle, could be optional. Especially the more specialized ones, e.g. media_entity_pinterest, media_entity_twitter and media_entity_instagram.
Comment #3
chr.fritschMaybe we should move all the configuration from the thunder modules into the config/optional folder of the distribution. That would mean, thunder modules don't have any dependencies, which means all modules could be disabled after the installation. And if you reinstall a module, all configs with fulfilled dependencies will be installed again.
Comment #4
hctomPlease do also add some modules only as suggestions in Thunder's composer.json file (e.g. fb_instant_articles), so you won't run into trouble when another version is required in your project.
Thanx!
Comment #5
Andre-BComment #6
daniel.bosen@Andre-b: none of these are required by Thunder Liveblog, what do you mean?
Comment #7
daniel.bosen@hctom, this is a tough one, in the end we would only have suggestion (which would be pointless), since there could always be a different major version of any module.
Comment #8
hctom@daniel.bosen Okay, but what about things like fb_instant_articles, amptheme etc. Those are not required at all by any Thunder component, but may be used to extend Thunders functionality. So I guess those should definitely be loose coupled.
Comment #9
daniel.bosenThere are a few different kinds of dependancies, which all have to be treated differntly:
Case 1) is simple, those dependencies can easily be disabled.
Case 2) Hard dependencies from non optional could simply be moved to the distribution, and could be disabled afterwards. Dependencies of optional modules are harder to work with. If they are to be disabled, they would have to be enabled in install hooks (as soft dependencies)
Case 3) Configuration is a bit harder. Putting it into optionial helps at times, but not if we wish to provide tight integration of some features.
One example is the content lock modul. We provide a content view, this view should contain the locking information, when content lock is enabled, but the same view should also be shipped without the content lock menu. In those cases we would also have to programatically change the configuration in the install/uninstall hooks.
With this in mind, I propose to do stuff in the following order:
I would like to keep composer stuff out of this ticket, @hctom, please create a new ticket for discussing this topic.
Comment #10
daniel.bosenComment #11
daniel.bosenComment #12
daniel.bosenComment #13
daniel.bosenComment #14
daniel.bosenComment #15
daniel.bosenComment #16
daniel.bosenComment #17
daniel.bosenComment #18
chr.fritschAll child issues are resolved and we don't have any activity for more than a year. So marking this as fixed.