composer / semver

Semantic versioning utilities with the addition of version constraints parsing and checking.
MIT License
3.15k stars 76 forks source link

PHP 8.1 compatibility - Passing null to parameter #1 ($string) of type string is deprecated - VersionParser.php:105 #134

Closed laurinkeithdavis closed 2 years ago

laurinkeithdavis commented 2 years ago

C:\jenkins-php-tools>composer update Loading composer repositories with package information Deprecation Notice: trim(): Passing null to parameter #1 ($string) of type string is deprecated in phar://C:/ProgramData/ComposerSetup/bin/composer.phar/vendor/composer/semver/src/VersionParser.php:105

Seldaek commented 2 years ago

Do you have a full stack trace for this? If you run composer with -v it should print it.

Seldaek commented 2 years ago

Should be fixed but I'm still interested to see a stack trace if you have one.

laurinkeithdavis commented 2 years ago

Well, now I can't reproduce it. I apologize, I might have been using a snapshot due to (https://github.com/composer/composer/issues/10631), and this morning I updated composer to 2.3.2.

Seldaek commented 2 years ago

I see, no worries.

GrahamCampbell commented 2 years ago

Isn't the real fix here to fix the caller that is making the invalid call. Not valid to call a function typed as string, with null?

Seldaek commented 2 years ago

Caller has been fixed in composer already, but IMO this is still good to do to mimick a type hint, which would type juggle null into string as well. I don't want to drop 5.3 support just yet in this lib to avoid having to maintain too many branches.

npurohit commented 1 year ago

I am using version 2.2.6 with PHP8.1.13

Deprecation Notice: trim(): Passing null to parameter #1 ($string) of type string is deprecated in phar://C:/ProgramData/ComposerSetup/bin/composer.phar/vendor/composer/semver/src/VersionParser.php:105 Stack trace: phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Repository/PlatformRepository.php:671 phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Repository/PlatformRepository.php:239 phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Repository/ArrayRepository.php:311 phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Installer.php:894 phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Installer.php:428 phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Installer.php:279 phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Command/UpdateCommand.php:248 phar://C:/ProgramData/ComposerSetup/bin/composer.phar/vendor/symfony/console/Command/Command.php:245 phar://C:/ProgramData/ComposerSetup/bin/composer.phar/vendor/symfony/console/Application.php:835 phar://C:/ProgramData/ComposerSetup/bin/composer.phar/vendor/symfony/console/Application.php:185 phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Console/Application.php:336 phar://C:/ProgramData/ComposerSetup/bin/composer.phar/vendor/symfony/console/Application.php:117 phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Console/Application.php:131 phar://C:/ProgramData/ComposerSetup/bin/composer.phar/bin/composer:83 C:\ProgramData\ComposerSetup\bin\composer.phar:29

stof commented 1 year ago

The latest 2.2.x release of Composer is 2.2.18, not 2.2.6. Please try to use the latest version.