-
Notifications
You must be signed in to change notification settings - Fork 17
Description
Hello,
I have received reports of issues when upgrading to roundcube 1.6.0 (e.g. from 1.5.3), when the rcmcarddav plugin is also installed and upgraded during the process in the composer update --no-dev step. This problem will very likely apply with any other roundcube plugin installed using plugin-installer as well.
The problem seems to be the following:
- Some packages that were required by roundcube 1.5 are not required by roundcube 1.6 anymore.
- During the install step of composer update, these packages are removed first.
- When rcmcarddav is upgraded, the plugin code of plugin-installer is invoked. It appears to use the composer autoloader, which at this point apparently has not been updated yet. The autoloader tries to load the files of the packages that have already been removed, causing the process to die.
Running composer update --no-dev --no-plugins shows that the problem does not occur then, which confirms that the autoloader is loaded because of the plugin-installer code. However, I guess the plugin-installer code does some required actions and therefore this is not a valid workaround.
I'm not sure if this is a problem with plugin-installer or with the composer install process itself, i.e. if composer should have updated the autoloader before calling the plugin code first, or whether the plugin code is not supposed to use the autoloader.
A full log of the composer call for reference:
Loading composer repositories with package information
Updating dependencies
Lock file operations: 4 installs, 6 updates, 4 removals
- Removing endroid/qr-code (1.6.6)
- Removing symfony/polyfill-intl-idn (v1.26.0)
- Removing symfony/polyfill-intl-normalizer (v1.26.0)
- Removing symfony/polyfill-php72 (v1.26.0)
- Locking bacon/bacon-qr-code (2.0.7)
- Locking dasprid/enum (1.0.3)
- Upgrading guzzlehttp/guzzle (6.5.8 => 7.4.5)
- Upgrading guzzlehttp/psr7 (1.9.0 => 2.4.0)
- Upgrading mstilkerich/carddavclient (v1.2.1 => v1.2.2)
- Locking psr/http-factory (1.0.1)
- Upgrading roundcube/carddav (v4.4.1 => v4.4.2)
- Upgrading sabre/vobject (4.4.2 => 4.4.3)
- Locking symfony/deprecation-contracts (v2.5.2)
- Upgrading symfony/yaml (v4.4.43 => v4.4.44)
Writing lock file
Installing dependencies from lock file
Package operations: 4 installs, 5 updates, 4 removals
- Removing symfony/polyfill-php72 (v1.26.0)
- Removing symfony/polyfill-intl-normalizer (v1.26.0)
- Removing symfony/polyfill-intl-idn (v1.26.0)
- Removing endroid/qr-code (1.6.6)
- Installing dasprid/enum (1.0.3): Extracting archive
- Installing bacon/bacon-qr-code (2.0.7): Extracting archive
- Installing symfony/deprecation-contracts (v2.5.2): Extracting archive
- Installing psr/http-factory (1.0.1): Extracting archive
- Upgrading guzzlehttp/psr7 (1.9.0 => 2.4.0): Extracting archive
- Upgrading guzzlehttp/guzzle (6.5.8 => 7.4.5): Extracting archive
- Upgrading sabre/vobject (4.4.2 => 4.4.3): Extracting archive
- Upgrading mstilkerich/carddavclient (v1.2.1 => v1.2.2): Extracting archive
Update of roundcube/carddav failed
8/8 [============================] 100%
In autoload_real.php line 59:
require(/tmp/rcold/roundcube/vendor/composer/../symfony/polyfill-php72/bootstrap.php): failed to open stream: No such file or directory