Stuck with composer update Silverstripe 4.10 -> 4.11

Silverstripe Version: ^4.10@stable

Question:
Hello all. I hope I will find an answer here…
I’m stuck with updating Silverstripe from 4.10 to 4.11 using composer.
Does anyone know how to solve such kind of a problem when your new silverstripe/recipe-cms 4.11 wants embed/embed^4 but some of the packages requires embed v3:
dynamic/silverstripe-linkable 1.0.2 requires embed/embed (^3.0)
silverstripe/framework 4.10.10 requires embed/embed (^3)

Composer tells me:

silverstripe/framework[4.11.0-beta1, ..., 4.x-dev] require embed/embed ^4 -> found embed/embed[v4.0.0, ..., v4.4.4] but these were not loaded, likely because it conflicts with another require.
composer why embed/embed
dynamic/silverstripe-linkable 1.0.2   requires embed/embed (^3.0)
silverstripe/framework        4.10.10 requires embed/embed (^3)

I can’t remove dynamic/silverstripe-linkable because it’s needed by dynamic/silverstripe-elemental-gallery.
I also couldn’t replace dynamic/silverstripe-linkable in one of the the config.json files using keyword “replace”:

"replace" : {
"dynamic/silverstripe-linkable": *
}

I tried all workarounds I know but no luck.

For example:
I tried the following:
composer require --no-update embed/embed:^4

and/or
composer update -W --ignore-platform-reqs

and/or
composer update -W “silverstripe/recipe-cms:^4.11@stable” --ignore-platform-reqs

and/or
composer update -W --no-dev “silverstripe/recipe-cms:^4.11@stable”

and/or
composer require -W --no-update “silverstripe/recipe-cms:^4.11@stable”
composer update -W

and/or
composer update -W “silverstripe/recipe-cms:^4.11@stable” --with=“embed/embed:^4”

and/or

I manually extended required versions for embed/embed in the composer.json of the conflicting packages:
dynamic/silverstripe-linkable 1.0.2
silverstripe/framework 4.10.10

from
embed/embed: ^3
to
embed/embed: ^3||^4

But nothing of this worked.

By running just composer update -W “silverstripe/recipe-cms:^4.11@stable” I got:

composer update -W silverstripe/recipe-cms:^4.11@stable
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - silverstripe/framework[4.11.0-beta1, ..., 4.x-dev] require embed/embed ^4 -> found embed/embed[v4.0.0, ..., v4.4.4] but these were not loaded, likely because it conflicts with another require.
    - silverstripe/recipe-cms 4.11.0 requires silverstripe/reports ~4.11.0@stable -> satisfiable by silverstripe/reports[4.11.0-beta1, 4.11.0-rc1, 4.11.0, 4.11.x-dev].
    - silverstripe/reports[4.11.0-beta1, ..., 4.x-dev] require silverstripe/framework ^4.11 -> satisfiable by silverstripe/framework[4.11.0-beta1, ..., 4.x-dev].
    - Root composer.json requires silverstripe/recipe-cms ^4.10@stable -> satisfiable by silverstripe/recipe-cms[4.11.0].

Does anyone knows how to solve this composer update conflict? Thank you!

I figured out the problem was because of the obsolete dynamic/silverstripe-linkable but I can’t replace this package even though I remove it from the composer.json of the parent package dynamic/silverstripe-elemental-baseobject which requires this dynamic/silverstripe-linkable.

I want to replace the old dynamic/silverstripe-linkable with the more recent gorriecoe/silverstripe-link using replace keyword in composer.json. But the dynamic/silverstripe-elemental-gallery still installs that old dynamic/silverstripe-linkable.

I created a new topic for that.
This topic could now be closed.

The topic could be deleted.
For some reasons the ‘Delete topic’ button is unavailable.

No need. Solved.

I wanted to retain sheadawson/silverstripe-linkable as I had a few elements that were dependent on it. But it meant I could not update SilverStripe.

So I forked the project and updated the dependancies then added this to my composer.json file.

    "repositories": {
        "sheadawson/silverstripe-linkable": {
            "type": "vcs",
            "url": "https://github.com/jellygnite/silverstripe-linkable.git",
            "options": {
                "symlink": false
            }
        },

Thank you!
Yes, I used the “fork” way too.