First, thanks for this great dotfiles manager! I recently migrated from my own >10y old semi-homebrewn solution with many clumsy shell scripts. Dotbot made it all much simpler for me! However there's currently a bug preventing some plugins from working... As first reported at https://github.com/wonderbeyond/dotbot-if/issues/1#issuecomment-1532139808, it seems like all plugins that allow using arbitrary sub-expressions broke as of refactorings introduced in https://github.com/anishathalye/dotbot/commit/b5499c7dc5b300462f3ce1c2a3d9b7a76233b39b. Let's take for example the [dotbot-if](https://github.com/wonderbeyond/dotbot-if) plugin that allows doing things like ```yaml - if: cond: 'true' met: - shell: - echo The condition was true ``` The `met:` allows any dotbot directive to be run, here`shell` was used as the examples. However as of the changes in https://github.com/anishathalye/dotbot/commit/b5499c7dc5b300462f3ce1c2a3d9b7a76233b39b where the Dispatcher was modified to no longer load all plugins by itself (used to be done with the helper `_load_plugins`), plugins relying on using the Dispatcher to parse and handle sub-directives does no longer work as other plugins are not loaded anymore. The plugins array is now an argument that will be passed in. The problem is that the plugins using the Dispatcher does not know all the other plugins to be loaded as this was done before in an outer context not available here in the plugin. The example above will result in ```console $ ./install -v Action shell not handled ==> Some tasks were not executed successfully ``` as reported in https://github.com/wonderbeyond/dotbot-if/issues/1. **Please see this issue for details on how the mentioned refactor broke plugins using the Dispatcher.** Now we could say that the problem is not dotbot but the plugins, and maybe it is so that all plugins should update. But to what, what method should plugins use to parse sub-directive now? However as this did work before and no new major breaking version of dotbot was released, I would consider the problem being in dotbot and not the plugins right now. I could be very wrong in my analysis, and maybe there's already a way in which plugins like dotbot-if could execute sub-directives with the Dispatcher or another class. Let's figure this out together, as plugins like `if` is kind of essential for dotbot!
This issue appears to be discussing a feature request or bug report related to the repository. Based on the content, it seems to be resolved. The issue was opened by erikw and has received 5 comments.