-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Revisit composer install triggered by INIT_PLUGINS
env var
#27
Comments
I am trying to avoid requiring a persistent @jimcottrell, @LukeTowers pointed out the OC marketplace plugins add the replace property. I'm assuming that doesn't work unless |
@petehalverson the point of running composer from the root instead of in each plugin is to make sure that all plugin dependencies are considered in addition to the core dependencies when determining what versions and libraries to pull; as well as preventing any duplicate dependencies (potentially with different versions) from being present in the project. What the marketplace does is a compromise between a proper full install of dependencies in the project root and having a free for all in plugin vendor folders: it includes all dependencies that are already included in the base october project as values in the However, my vote would still be to run the |
For some context, For local development workflows, I assume volumes are mapped to folders within the project which contain the plugins in use. Most plugins repos ignore the plugin vendor folder, which means those dependencies need to be fetched at runtime (hence the In practice, this means I think applying a 'replace' fix to the plugin To be clear, nothing is preventing users from mapping a local volume to Perhaps we could support that workflow better by introducing a different entrypoint env var option e.g. When I tested a 'composer from root' workflow. I was deterred by:
I recall digging into some other options to improve speed a bit by detecting if the dependencies for plugins already existed, without running |
I should point out by detecting the presence of a composer file and whether or not a vendor folder exists in each plugin folder, we're able to elegantly support plugins introduced via the marketplace. And by elegantly support, I mean do nothing because nothing needs to be done. |
Those points are fair enough. I agree that replace might be the way to go, my annoyance with the current process is just as a result of having plugins with composer files that aren't really needed (i.e. just pulling in composer/installers or requiring some laravel core dependency) will cause a vendor folder to get generated for the plugin which further more is only really a problem if using gitsubmodules because then it clutters up the git submodule repo status. That's really just correcting for developer mistakes (not including /vendor in the .gitignore and including composer dependencies even when they're not needed) but it would be nice to correct for those mistakes automatically. |
The current method may cause conflicting dependencies.
The text was updated successfully, but these errors were encountered: