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
Plugin install promise must be scheduled after all required package promises are done #11941
Comments
Yes.. as roundcube/roundcubemail requires roundcube/plugin-installer, we have to install the plugin first. We always install dependencies first, so that when a package is installed what it depends on is ready to be used. The only difference with git is that it might have cloned the repo already in the download step (where as zip downloads into the cache), but the package is not technically installed. |
Thank you. I missed this circular dependency.
Git is always cloned to a cache first. Shouldn't the "download phase" for git be aligned with zip to do the "extraction" (from a git cache) at the "install phase" then? |
I think it's a bit more complicated than that, and extracting it all would be possible but a bunch of work which really does not matter too much.. |
How can I schedule the https://github.com/roundcube/plugin-installer/blob/331e0791b3/src/ExtensionInstaller.php#L78 promise either after full install or at least after some specific package is installed? |
I'd say try to get the event dispatcher and register a post-install-cmd/post-update-cmd listener that will do the needed work. You can't achieve this with promises here. |
I am developing roundcube/plugin-installer#50 and it seems
roundcube/roundcubemail
package is installed* after the plugin installer.steps to reproduce:
https://github.com/roundcube/plugin-installer/blob/9b0dffcc1b/.github/workflows/ci.yml#L93-L105
* by installed I mean available on filesystem to be used
Reproducible on linux only, I was not able to reproduce it locally on Windows.
When I revert roundcube/plugin-installer@4204c4b356 the issue is gone. But the repository is the same, the difference is only how the repo is installed, newly installed using zip, previously installed using git.
The text was updated successfully, but these errors were encountered: