aarondfrancis / refine-nova

A Laravel Nova integration for the Refine query builder.
30 stars 5 forks source link

Laravel 11 Support #6

Open alxndrmlr opened 5 months ago

alxndrmlr commented 5 months ago

This could be on me, but we had to temporarily drop refine-nova from our app when we did our Laravel 11 upgrade due to some composer conflicts.

I also tried it in a fresh laravel 11 project after adding Nova to it

composer require hammerstone/refine-nova
./composer.json has been updated
Running composer update hammerstone/refine-nova
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - hammerstone/refine-nova[v0.2.0, ..., v0.2.2] require hammerstone/refine-laravel ^0.3.4 -> satisfiable by hammerstone/refine-laravel[0.3.4, 0.3.5, 0.3.6, 0.3.7].
    - hammerstone/refine-nova[v0.2.3, ..., v0.2.4] require hammerstone/refine-laravel ^0.3.4|^0.4.0 -> satisfiable by hammerstone/refine-laravel[0.3.4, ..., 0.4.1].
    - hammerstone/refine-nova[v0.1.0, ..., v0.1.4] require laravel/nova ^2.12|^3.0 -> found laravel/nova[v2.12.0, v3.0.0, ..., 3.32.0] but it conflicts with your root composer.json require (^4.33).
    - hammerstone/refine-laravel[0.3.4, ..., 0.4.1] require nesbot/carbon ^1.25|^2 -> found nesbot/carbon[1.25.0, ..., 1.39.1, 2.0.0, ..., 2.72.3] but the package is fixed to 3.2.3 (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.
    - Root composer.json requires hammerstone/refine-nova * -> satisfiable by hammerstone/refine-nova[v0.1.0, ..., v0.2.4].

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
You can also try re-running composer require with an explicit version constraint, e.g. "composer require hammerstone/refine-nova:*" to figure out if any version is installable, or "composer require hammerstone/refine-nova:^2.1" if you know which you need.

Installation failed, reverting ./composer.json and ./composer.lock to their original content.
blowski commented 2 months ago

Same problem here.

I worked around it by:

  1. built a new Laravel v10 project
  2. installed the repos there
  3. copied the repos over to my v11 project, into a directory called lib
  4. changed the composer.json files of both repos, to say they're compatible with v11
  5. added "path" repositories in the composer.json file of my main project
// <v11 project_dir>/composer.json
...
"repositories": [
        {
            "type": "path",
            "url": "./lib/hammerstone/refine-laravel"
        },
        {
            "type": "path",
            "url": "./lib/hammerstone/refine-nova"
        }
]

It does seem to be working. Would be good if the repo maintainers updated the dependency.

alxndrmlr commented 2 months ago

@aarondfrancis sorry to nag on this (I know you've got a ton going on and perhaps post-launch of the course you could take a look at this)

I'd be happy to submit at PR but seems like this really needs a version bump in https://github.com/hammerstonedev/refine-laravel I cannot access to fork and PR