Open gpatry opened 1 year ago
Hi @gpatry, this library doesn't directly depend on Symfony components, but I guess some dependencies do, let me take a look and see what I can do to allow compatibility with Symfony 6
Can you try again Guillaume? I think it should work now :crossed_fingers:
Hi @duncan3dc ,
I test again, if I run composer require duncan3cd/sonos
the result is the same as before : install version 0.8.8 of the library
If I mention explicitly duncan3dc/sonos:^2.2.2
in my composer.json, install failed again with a requirement on psr/log 1.1 instead of psr/log 3.0 added by symfony 6.2
Loading composer repositories with package information
Restricting packages listed in "symfony/symfony" to "6.2.*"
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
` Problem 1` ` - Root composer.json requires duncan3dc/sonos ^2.2.2 -> satisfiable by duncan3dc/sonos[2.2.2].` ` - duncan3dc/sonos 2.2.2 requires psr/log ^1.1 -> found psr/log[1.1.0, ..., 1.1.4] but it conflicts with your root composer.json require (^3.0).`
Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
And thanks for your quick answser already given. Guillaume
Hi @duncan3dc ,
After exploring versions of psr/log and psr/cache and differents requirements of symfony, I think this issue could be solved by updating your composer.json like this :
remove :
"psr/log": "^1.1",
"psr/simple-cache": "^1.0",
add :
"psr/log": "^1.1 || ^2.0 || ^3.0",
"psr/simple-cache": "^1.0 || ^2.0 || ^3.0",
psr/log and psr/cache requires PHP >= 8.0.0 so it could probably break compatibility ?
I created a pull-request with changes proprosal (Full support for PHP 8.2 and Symfony 6.2 #125) I run composer test and all test are OK.
I also notice that phpstan/phpstan
is outdate. I tried to update it to the latest version and correct the 85 errors.
If I have time, I will suggest corrections too.
I go forward in testing. I replace the 0.8.8 src in my vendor dir with the 2.2.2 src and try to use latest version.
I don't know if it is due to psr/log 3.0 compatibility, but have this issue when using it :
Compile Error: Declaration of duncan3dc\Sonos\Devices\Discovery::setLogger(Psr\Log\LoggerInterface $logger) must be compatible with Psr\Log\LoggerAwareInterface::setLogger(Psr\Log\LoggerInterface $logger): void
Stack trace :
Symfony\Component\ErrorHandler\Error\FatalError:
Compile Error: Declaration of duncan3dc\Sonos\Devices\Discovery::setLogger(Psr\Log\LoggerInterface $logger) must be compatible with Psr\Log\LoggerAwareInterface::setLogger(Psr\Log\LoggerInterface $logger): void
at vendor/duncan3dc/sonos/src/Devices/Discovery.php:58
Hi,
First thanks for your lot of work since many years for giving us a php library for interacting with sonos systems.
I setup a fresh symfony 6.2 webapp and then try to install your sonos library. When simply running
composer require duncan3dc/sonos
, I got v0.8.8 installed ..../composer.json has been updated
Running composer update duncan3dc/sonos
Loading composer repositories with package information
Updating dependencies
Lock file operations: 4 installs, 0 updates, 0 removals
- Locking duncan3dc/domparser (2.1.0)
- Locking duncan3dc/helpers (1.7.0)
- Locking duncan3dc/serial (0.4.0)
- Locking duncan3dc/sonos (0.8.8)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 4 installs, 0 updates, 0 removals
- Installing duncan3dc/serial (0.4.0): Extracting archive
- Installing duncan3dc/helpers (1.7.0): Extracting archive
- Installing duncan3dc/domparser (2.1.0): Extracting archive
- Installing duncan3dc/sonos (0.8.8): Extracting archive
Generating autoload files
109 packages you are using are looking for funding.
Use the
composer fundcommand to find out more!
`
Run composer recipes at any time to see the status of your Symfony recipes.Now if I want to force latest version (eg 2.2.2 according to your latest tags) by setting it in composer.json, I've got this errors ... composer file update :
"duncan3dc/sonos": "^2.0",
or with"duncan3dc/sonos": "^2.2.2",
running
- duncan3dc/sonos[2.2.0, ..., 2.2.2] require duncan3dc/speaker ^1.0 -> satisfiable by duncan3dc/speaker[1.0.0, ..., 1.4.0].
- duncan3dc/speaker 1.4.0 requires duncan3dc/exec ^0.4 || ^1.0 -> satisfiable by duncan3dc/exec[0.4.0, 1.0.0].
- duncan3dc/sonos[2.0.0, ..., 2.1.1] require php ^7.1 -> your php version (8.1.14) does not satisfy that requirement.
- duncan3dc/exec[0.4.0, 1.0.0] require symfony/console ^4.2 || ^5.0 -> found symfony/console[v4.2.0, ..., v4.4.49, v5.0.0, ..., v5.4.17] but it conflicts with your root composer.json require (6.2.).
- duncan3dc/speaker[1.0.0, ..., 1.1.0] require symfony/process ^2.3 -> found symfony/process[v2.3.0, ..., v2.8.52] but it conflicts with your root composer.json require (6.2.).
- duncan3dc/speaker 1.2.0 requires symfony/process ^2.8|^3.0 -> found symfony/process[v2.8.0, ..., v2.8.52, v3.0.0, ..., v3.4.47] but it conflicts with your root composer.json require (6.2.*).
- duncan3dc/speaker[1.3.0, ..., 1.3.1] require php ^7.2 -> your php version (8.1.14) does not satisfy that requirement.
- Root composer.json requires duncan3dc/sonos ^2.0 -> satisfiable by duncan3dc/sonos[2.0.0, ..., 2.2.2].
Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.`
composer update
:Loading composer repositories with package information
Info from https://repo.packagist.org: #StandWithUkraine
Restricting packages listed in "symfony/symfony" to "6.2.*"
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
`
Problem 1If I run composer with -W option, some symfony packages are downgraded and I don't want it.
here is the command I ran to setup my project :
symfony new SonosManager --version="6.2.*" --webapp
cd SonosManager
composer require logger
composer require annotations
composer remove sensio/framework-extra-bundle
composer require symfony/profiler-pack
composer require symfony/debug-pack
composer require twig
composer require symfony/requirements-checker
composer require symfony/apache-pack
Can you help me ?