Unable to uninstall wxt_ext_blog once it is installed, other wxt_ext_* modules also unable to uninstall.

Created on 12 June 2023, over 1 year ago
Updated 26 July 2023, over 1 year ago

Problem/Motivation

Unable to install the WxT Extend Blog module since it requres the Wxt Extend Archived, Block Content Permissions, Wxt Extend Blog, Blog, Metatag, Dublin Core Advanced, and so on and so forth.

Steps to reproduce

  1. Install wxt 4.5.x or 5.0.x
  2. install wxt_ext_blog
  3. uninstall wxt_ext_blog

Alternatively:

  1. Install wxt 4.5.x or 5.0.x
  2. install wxt_ext_password_policy
  3. uninstall wxt_ext_password_policy

Why would you want to do this, configuration splitting, live/prod having strict policies, "dev" not having strict policies. Also was an issue when password_policy module upgrade path blew up and I had to re-install it.

a plethora of other modules will complain of a circular dependency.

Proposed resolution

Rely less on *.info.yml for dependency setup. Use hook_install instead and hook_uninstall.

Remaining tasks

Examine possible solutions, write a patch, test it.

User interface changes

TBD

API changes

TBD

Data model changes

N/A

💬 Support request
Status

Closed: works as designed

Version

5.0

Component

Code

Created by

🇨🇦Canada joseph.olstad

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

  • Issue created by @joseph.olstad
  • 🇨🇦Canada joseph.olstad

    To get around this in the past I've removed the dependency entries in wxt_ext.info.yml manually (and possibly other modules, can't recall which but wxt_ext_password_policy also affected, rebuilt caches and re-uninstall works). Wondering how to best improve this situation for DX (developer experience).

    This also becomes an issue when using configuration splits , say you don't want wxt_ext_password_policy in your dev environments, only in production, well, you'll get issues splitting this and uninstalling wxt_ext_password_policy when switching from live split to dev split.

  • 🇨🇦Canada deepaniw

    I have seen the same issue.

  • Status changed to Needs review over 1 year ago
  • 🇨🇦Canada joseph.olstad

    see patch for example

  • Assigned to joseph.olstad
  • 🇨🇦Canada joseph.olstad

    This patch probably should allow wxt_ext_blog to be uninstalled, I will re-test again and make adjustments if needed.

  • 🇨🇦Canada joseph.olstad

    actually this patch does allow wxt_ext_blog to be uninstalled although I'm not sure exactly why wxt_ext_group is involved but the patch works for this use case.

  • 🇨🇦Canada joseph.olstad

    basically for other wxt_ext_? modules they all seem to have a similar issue.

    We've had to put in a similar patch to be able to uninstall the password policy wxt_ext_password_policy for config split for example, we did not want this policy in dev and had to remove hard coded dependencies to be able to uninstall it without forcing the uninstall of wxt_ext which basically will try to uninstall every wxt module.

    to avoid this problem dependencies had to be removed from profiles/wxt/wxt_ext/wxt_ext.info.yml and sometimes others such as for wxt_ext_blog.

    To avoid this type of situation perhaps hook_install could be used instead if other modules are needed after installation and if necessary some hook_uninstall
    ? this coupled with removing dependency entries in the wxt_ext/wxt_ext.info.yml

  • 🇨🇦Canada sylus

    The intent for wxt_ext was to facilitate an easy way in CI to enable all of the modules.

    If you disable wxt_ext itself it should just leave you with the individual wxt_ext_* modules still installed but you could use a la carte.

    At that point I'm definitely happy to see if we can tighten the dependencies up and make the experience better with config split etc :)

  • Status changed to Postponed over 1 year ago
  • 🇨🇦Canada joseph.olstad

    @sylus, my appologies, I corrected the first sentence. With that said, ya it's a bit of a tough one. For now just leave it as there is a fairly simple workaround which is to edit the .info.yml files in question and remove the hard coded dependencies the time it takes to do this. Patches can be written for specific use cases.

    Perhaps we sit on this for a while and think about it.

  • Status changed to Closed: works as designed over 1 year ago
Production build 0.71.5 2024