drupal-composer / preserve-paths

A composer plugin for keeping specified files and directories when installing/updating new composer packages. Can be used to supported nested packages.
28 stars 28 forks source link

New release with PHP 7.4 support? (fails initial install for Drupal 7 sites) #33

Closed jonpugh closed 3 years ago

jonpugh commented 4 years ago

I am encountering the array as null error when first running composer install:

Steps to Reproduce

git clone git@github.com:devshop-packages/devshop-control-template.git`
cd devshop-control-template
composer install
...
 [ErrorException]                                     
  Trying to access array offset on value of type null  

A second call to composer install works. To reproduce again, remove vendor.

rm -rf vendor composer.lock
composer install
...
 [ErrorException]                                     
  Trying to access array offset on value of type null  

Fix

The fix has already be committed, just doesn't have a tag: 4c5f62fe97f48e38c5e80cf2f9be8666f683e454

Workaround

composer require drupal-composer/preserve-paths:dev-master

Or if you don't commit composer.lock, require the hash exactly:

composer require drupal-composer/preserve-paths:dev-master#4c5f62fe97f48e38c5e80cf2f9be8666f683e454

Solution

git tag 0.1.6

Full Output

$ composer i -v
> pre-install-cmd: DrupalProject\composer\ScriptHandler::checkComposerVersion
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Dependency resolution completed in 0.000 seconds
Analyzed 186 packages to resolve dependencies
Analyzed 397 rules to resolve dependencies
Package operations: 125 installs, 0 updates, 0 removals
Installs: cweagans/composer-patches:1.6.7, drupal-composer/preserve-paths:0.1.5, composer/installers:v1.9.0, oomphinc/composer-installers-extender:v1.1.2, composer/semver:1.5.1, symfony/polyfill-ctype:v1.18.1, symfony/yaml:v3.4.43, symfony/process:v3.4.43, sensiolabs/ansi-to-html:v1.2.0, psr/http-message:1.0.1, php-http/promise:1.1.0, php-http/httplug:v1.1.0, symfony/polyfill-php72:v1.18.1, paragonie/random_compat:v9.99.99, symfony/polyfill-php70:v1.18.1, symfony/polyfill-intl-normalizer:v1.18.1, symfony/polyfill-intl-idn:v1.18.1, ralouphie/getallheaders:3.0.3, guzzlehttp/psr7:1.6.1, guzzlehttp/promises:v1.3.1, guzzlehttp/guzzle:6.5.5, php-http/guzzle6-adapter:v1.1.1, psr/cache:1.0.1, php-http/discovery:1.9.1, symfony/polyfill-php80:v1.18.1, symfony/deprecation-contracts:v2.1.3, symfony/options-resolver:v5.1.3, php-http/message-factory:v1.0.2, clue/stream-filter:v1.4.1, php-http/message:1.8.0, php-http/client-common:1.10.0, php-http/cache-plugin:1.7.1, knplabs/github-api:v2.15.0, symfony/event-dispatcher:v2.8.52, cpliakas/git-wrapper:1.7.0, devshop/devmaster:dev-component/composer/devmaster 090fce8, drupal/drupal:7.72.0, drupal/admin_menu:3.0.0-rc6, drupal/adminrole:1.1.0, drupal/aegir_ansible:dev-1.x 3fd9ce3, drupal/aegir_cloud:dev-1.x 09d2453, drupal/aegir_config:1.0.0-beta1, drupal/sshkey:2.0.0, drupal/aegir_ssh:1.0.0, drupal/betterlogin:1.5.0, drupal/bootstrap:3.26.0, drupal/token:1.7.0, drupal/cas:1.7.0, drupal/cas_attributes:1.0.0-rc3, drupal/chosen:2.1.0, drupal/composer_autoloader:1.3.0, drupal/ctools:1.15.0, drupal/devel:1.7.0, drupal/devshop_stats:dev-1.x ea80b5f, drupal/features:2.11.0, drupal/views:3.24.0, drupal/entity:1.9.0, drupal/views_bulk_operations:3.6.0, drupal/hosting:dev-4.x 337f676, drupal/hosting_filemanager:dev-1.x c488ea3, drupal/hosting_git:3.181.0, drupal/hosting_https:3.182.0, drupal/hosting_certificate:3.182.0, drupal/hosting_logs:3.181.0, drupal/hosting_site_backup_manager:3.180.0, drupal/statsd:1.1.0, drupal/hosting_statsd:1.0.0-beta1, drupal/hosting_tasks_extra:3.180.0, drupal/jquery_update:2.7.0, drupal/module_filter:2.2.0, drupal/libraries:2.5.0, drupal/navbar:1.7.0, drupal/openidadmin:1.0.0, drupal/overlay_paths:1.3.0, drupal/r4032login:1.8.0, drupal/timeago:2.3.0, guzzle/guzzle:v3.9.3, npm-asset/ansi-regex:5.0.0, npm-asset/sprintf-js:1.0.3, npm-asset/argparse:1.0.10, npm-asset/underscore:1.10.2, npm-asset/backbone:1.4.0, npm-asset/chosen:0.0.2, npm-asset/color-name:1.1.4, npm-asset/color-convert:2.0.1, npm-asset/emoji-regex:8.0.0, npm-asset/entities:2.0.3, npm-asset/esutils:2.0.3, npm-asset/is-fullwidth-code-point:3.0.0, npm-asset/uc.micro:1.0.6, npm-asset/linkify-it:2.2.0, npm-asset/p-try:2.2.0, npm-asset/p-limit:2.3.0, npm-asset/p-locate:4.1.0, npm-asset/locate-path:5.0.0, npm-asset/mdurl:1.0.1, npm-asset/minimist:1.2.5, npm-asset/decamelize:1.2.0, npm-asset/camelcase:5.3.1, npm-asset/yargs-parser:18.1.3, npm-asset/y18n:4.0.0, npm-asset/which-module:2.0.0, npm-asset/strip-ansi:6.0.0, npm-asset/string-width:4.2.0, npm-asset/set-blocking:2.0.0, npm-asset/require-main-filename:2.0.0, npm-asset/require-directory:2.1.1, npm-asset/get-caller-file:2.0.5, npm-asset/path-exists:4.0.0, npm-asset/find-up:4.1.0, npm-asset/types--color-name:1.1.1, npm-asset/ansi-styles:4.2.1, npm-asset/wrap-ansi:6.2.0, npm-asset/cliui:6.0.0, npm-asset/yargs:15.4.1, npm-asset/requirejs:2.3.6, npm-asset/mkdirp:0.5.5, npm-asset/markdown-it:10.0.0, npm-asset/lodash:4.17.19, npm-asset/file:0.2.2, npm-asset/doctrine:3.0.0, npm-asset/modernizr:3.11.3, symfony/filesystem:v3.4.43, toin0u/digitalocean-v2:2.3.0, webflo/drupal-finder:1.2.0
  - Installing cweagans/composer-patches (1.6.7): Loading from cache
 Extracting archiveNo patches found for cweagans/composer-patches.
Gathering patches for root package.
Gathering patches for dependencies. This might take a minute.
Found 1 patches for cweagans/composer-patches.
  - Installing drupal-composer/preserve-paths (0.1.5): Loading from cache
 Extracting archiveNo patches found for drupal-composer/preserve-paths.

  [ErrorException]                                     
  Trying to access array offset on value of type null  

Exception trace:
 () at /home/jon/Projects/devshop/src/DevShop/Templates/DevShopControlTemplate/vendor/drupal-composer/preserve-paths/src/PluginWrapper.php:88
 Composer\Util\ErrorHandler::handle() at /home/jon/Projects/devshop/src/DevShop/Templates/DevShopControlTemplate/vendor/drupal-composer/preserve-paths/src/PluginWrapper.php:88
 DrupalComposer\PreservePaths\PluginWrapper->postPackage() at /home/jon/Projects/devshop/src/DevShop/Templates/DevShopControlTemplate/vendor/drupal-composer/preserve-paths/src/Plugin.php:69
 DrupalComposer\PreservePaths\Plugin->postPackage() at n/a:n/a
 call_user_func() at /usr/share/php/Composer/EventDispatcher/EventDispatcher.php:164
 Composer\EventDispatcher\EventDispatcher->doDispatch() at /usr/share/php/Composer/EventDispatcher/EventDispatcher.php:116
 Composer\EventDispatcher\EventDispatcher->dispatchPackageEvent() at /usr/share/php/Composer/Installer.php:636
 Composer\Installer->doInstall() at /usr/share/php/Composer/Installer.php:232
 Composer\Installer->run() at /usr/share/php/Composer/Command/InstallCommand.php:122
 Composer\Command\InstallCommand->execute() at /usr/share/php/Symfony/Component/Console/Command/Command.php:245
 Symfony\Component\Console\Command\Command->run() at /usr/share/php/Symfony/Component/Console/Application.php:835
 Symfony\Component\Console\Application->doRunCommand() at /usr/share/php/Symfony/Component/Console/Application.php:185
 Symfony\Component\Console\Application->doRun() at /usr/share/php/Composer/Console/Application.php:281
 Composer\Console\Application->doRun() at /usr/share/php/Symfony/Component/Console/Application.php:117
 Symfony\Component\Console\Application->run() at /usr/share/php/Composer/Console/Application.php:113
 Composer\Console\Application->run() at /usr/bin/composer:62

install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [--no-suggest] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--ignore-platform-reqs] [--] [<packages>]...
jonpugh commented 4 years ago

Related?

cweagans/composer-patches needs a new release too.

https://github.com/cweagans/composer-patches/pull/324

webflo commented 3 years ago

Released as https://github.com/drupal-composer/preserve-paths/releases/tag/0.1.6

Thanks!