Update von 6.5.3 auf 7.0.0, Composer Probleme

Hi Zusammen,

ich bin gerade dabei ein Update von CE 6.5.3 (laut Administrationsbereich) auf CE 7 durchzuführen.
Das Setup läuft lokal via Docker (im SDK) und ich halte mich an folgende Anleitung:

/developer/en/latest/update/eshop_from_65_to_7/update-to-7.0.html

In Schritt 4 soll ich das metapackage in die composer.json einsetzen
composer require --no-update oxid-esales/oxideshop-metapackage-<ce/pe/ee>:v7.0.0
Es steht also folgende Zeile in der composer.json
"oxid-esales/oxideshop-metapackage-ce": "v7.0.0"

Führe ich composer update --no-plugins --no-scripts --no-dev aus, werden diverse Packages angemarkert
oxid-esales/oxideshop-metapackage-ce v7.0.0 requires oxid-esales/oxideshop-composer-plugin v7.1.0 -> found oxid-esales/oxideshop-composer-plugin[v7.1.0] but it conflicts with your root composer.json require (^v5.2.2).

Sind alle Packages auf die entsprechende Version gezogen, erhalte ich folgende Meldung

- Root composer.json requires oxid-esales/oxideshop-metapackage-ce v7.0.0 -> satisfiable by oxid-esales/oxideshop-metapackage-ce[v7.0.0]. - oxid-esales/oxideshop-metapackage-ce v7.0.0 requires oxid-esales/oxideshop-ce v7.0.1 -> satisfiable by oxid-esales/oxideshop-ce[v7.0.1] from composer repo (https://repo.packagist.org) but oxid-esales/oxideshop-ce is the root package and cannot be modified. See https://getcomposer.org/dep-on-root for details and assistance.

Stelle ich das metapackage auf v7.0.1, soll oxideshop-ce v7.0.2 genutzt werden.

- Root composer.json requires oxid-esales/oxideshop-metapackage-ce v7.0.1 -> satisfiable by oxid-esales/oxideshop-metapackage-ce[v7.0.1]. - oxid-esales/oxideshop-metapackage-ce v7.0.1 requires oxid-esales/oxideshop-ce v7.0.2 -> satisfiable by oxid-esales/oxideshop-ce[v7.0.2] from composer repo (https://repo.packagist.org) but oxid-esales/oxideshop-ce is the root package and cannot be modified. See https://getcomposer.org/dep-on-root for details and assistance.

Hat jemand eine Idee, wo das Problem liegt?

Composer ist auf Version 2.7.1

Es scheint ein Problem in der Vererbungskette der Packages zu geben.

In Deinen Fehlermeldungen taucht Troubleshooting - Composer auf.

Wahrscheinlich wird an der 7er Serie noch gewerkelt.

Vielleicht kann CTO @SvenBrunk helfen.

1 Like

Laut der Fehlermeldung hast du die Komponente oxideshop-composer-plugin in deiner composer.json drin stehen und dort die Version auf maximal Version 5 festgelegt. OXID 7 braucht aber die Version 7.1.

Am besten so wenig wie möglich direkt die composer.json ändern. Dies sollte nur für Module nötig sein, die nicht im OXID Shop mitgeliefert werden. Falls jedoch notwendig, achte bei Aktualisierungen darauf, die vorgenommenen Änderungen im Blick zu behalten, um zu vermeiden, dass ein Update nicht durchgeführt werden kann, weil in deiner composer.json eine ältere Version festgeschrieben ist.

Was du danach gemacht hast, konnte ich nicht mehr nachvollziehen. Es klingt für mich, als hast du massiv in die composer.json eingegriffen.

1 Like

Nein, er hat das Docker SDK von OXID genutzt.

Das SDK baut direkt das CE Repo auf.

Daher ist seine Root Composer die vom CE Repo.

@erik5 zur Erläuterung die OXID Repos sind leider verschachtelt und Dein Weg mit dem SDK ein Update durch zu spielen verkompliziert es.

1 Like

Ich bin zwar nicht CTO, sondern nur Requirements Engineer bzw. Produktmanager, aber nach Rücksprache mit dem Team vielleicht zwei Dinge:
Die Recipes und das SDK sind nicht für Projekt-Setups gedacht, sondern nur für lokale Entwicklungsumgebungen.
Die Vermutung von @indianer3c ist vermutlich korrekt, dass du im Prinzip die composer.json der CE erweitert hast. Und die kann dann bei einem Update natürlich nicht durch sich selbst ersetzt werden.

CE-depends->Metapackage-ce-depends->CE

Übrigens noch der Hinweis: Lasst euch nicht irritieren, wenn innerhalb eines Stranges die Versionsnummern der Komponenten abweichen. Es ist völlig normal, wenn ein CE Metapackage 7.0.1 eine CE 7.0.2 required (ohne das jetzt verifiziert zu haben)

2 Likes

Perfekt, danke für die hilfreichen Antworten.

Im Prinzip wollte ich lediglich den Updateprozess durchspielen.
Ich würde das SDK weiterhin nutzen (für die Dockerumgebung) und die OXID CE nicht über die recipes, sondern über “den normalen Weg” Installieren. Dann sollte es das Problem nicht geben.

1 Like