rollbar / rollbar-php-laravel

Rollbar error monitoring integration for Laravel projects
https://docs.rollbar.com/docs/laravel
140 stars 39 forks source link

Unable to install on Laravel 9.* #128

Closed 413D3Z closed 2 years ago

413D3Z commented 2 years ago

Problem 1

cyrusradfar commented 2 years ago

@tazryder wanted to acknowledge that we'll look into this.

danielmorell commented 2 years ago

@tazryder thank you for providing the complete problem report! It really helps us understand how to resolve the issue.

I am working on updating our usage of rollbar/rollbar from v2 to v3. This will add support for psr/log v2.

However, this will not completely resolve the problem you are facing. You have psr/log pinned to v3 in your composer.lock file. Unfortunately, because return type declarations were added to the logger traits and interfaces in psr/log v3 this would result in a breaking change. Here is the diff for psr/log 2.0.0 -> 3.0.0. You can also read the discussion of the issue here rollbar/rollbar-php#536.

Since psr/log v3 does not represent a significant benefit at this point. It does not make sense to create a new major release of both rollbar/rollbar and rollbar/rollbar-laravel just to support the added return type declarations. This means we won't add support for psr/log v3 for a bit yet. We want to be careful to be stable and not require a lot of updates in our user's stacks.

We will probably release rollbar/rollbar-laravel v8 to support rollbar/rollbar v3. Once we do this you will most likely need to run composer update psr/log. This should install install psr/log v2 and update your lock file. There is a possibility that you have another dependency that requires psr/log v3. But hopefully that is not the case.

danielmorell commented 2 years ago

@tazryder I just spent some time looking at the Larvavel requirements for psr/log. It looks like you should be able to run Laravel with psr/log v1. So, if you run composer update to rebuild your dependency graph you may have a completely funcitonal application. Otherwise, we should have support for psr/log v2 soon.

martio commented 2 years ago

When will Laravel 9 support be added?

danielmorell commented 2 years ago

This should be resolved with the release of v7.2.

martio commented 2 years ago

Same with version 7.2:

  Problem 1
    - rollbar/rollbar[v2.0.0, ..., v2.1.0] require psr/log ^1 -> found psr/log[1.0.0, ..., 1.1.4] but the package is fixed to 3.0.0 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
    - rollbar/rollbar[v3.1.0, ..., v3.1.1] require psr/log ^1 || ^2 -> found psr/log[1.0.0, ..., 1.1.4, 2.0.0] but the package is fixed to 3.0.0 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
    - rollbar/rollbar-laravel v7.2.0 requires rollbar/rollbar ^2.0 | ^3.1 -> satisfiable by rollbar/rollbar[v2.0.0, v2.1.0, v3.1.0, v3.1.1].
    - Root composer.json requires rollbar/rollbar-laravel ^7.2 -> satisfiable by rollbar/rollbar-laravel[v7.2.0].

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
danielmorell commented 2 years ago

@martio you need to use the --with-all-dependencies flag to downgrade psr/log to v2. Your composer.lock file requires v3, but rollbar/rollbar requires v1 or v2. You can read more about why we only support v1 and v2 here https://github.com/rollbar/rollbar-php/pull/536.

martio commented 2 years ago

Thank you, @danielmorell! Will there be no problems with Laravel Logger?

danielmorell commented 2 years ago

There is no real difference in functionality between psr/log v2 and v3. The only thing that changed is the trait and interface methods now have void return types (see https://github.com/php-fig/log/compare/2.0.0...3.0.0). Everything still works the same.