OXID 6.5 Update - Composer fehler

Hallo zusammen,

wir möchten einen Testshop von OXID 6.2.4 auf 6.5 updaten.
Wir haben es im Composer mit 6.5.0 und 6.5.1 versucht, doch beides ohne Erfolg.

Wenn wir folgendes im Composer haben:

"oxid-esales/oxideshop-metapackage-pe": "v6.5.1"

Kommt mit dem Befehl “composer update --no-plugins --no-scripts --no-dev” folgender Output:

- oxid-esales/oxideshop-metapackage-ce v6.5.1 requires composer/pcre 3.1.0 -> found composer/pcre[dev-main, 1.0.0, 1.0.1, 1.x-dev, 2.0.0, 2.0.1, 2.0.2, 2.x-dev, 3.0.0, 3.0.1, 3.0.2, 3.x-dev (alias of dev-main)] but it does not match the constraint.
- oxid-esales/oxideshop-metapackage-pe v6.5.1 requires oxid-esales/oxideshop-metapackage-ce v6.5.1 -> satisfiable by oxid-esales/oxideshop-metapackage-ce[v6.5.1].
- Root composer.json requires oxid-esales/oxideshop-metapackage-pe v6.5.1 -> satisfiable by oxid-esales/oxideshop-metapackage-pe[v6.5.1].

Selbst wenn wir die Composer.json genau so abbilden wie es bei OXID in Git ist, kommt der gleiche Fehler.

Wir haben auch versucht dabei den vendor Ordner zu leeren und die composer.lock zu löschen. Das war aber auch ohne Erfolg.

Kann da jemand weiterhelfen? Muss man da evtl. einen Zwischenschritt machen?

Daten zum Shop:
-OXID eShop PE 6.2.4
-PHP 7.4.3
-Composer 2.2.12

2.6.12? Könnte daran liegen: composer selfupdate --2.2

https://docs.oxid-esales.com/eshop/de/6.5/installation/neu-installation/server-und-systemvoraussetzungen.html#composer

Pardon es ist Composer 2.2.12, wie empfohlen von OXID.

Laut der ersten Zeile der Fehlermeldung benötigt der OXID eShop das package composer/pcre in Version 3.1.0. Laut der Liste danach findet er das nicht. Wie man aber auf Packagist sieht, gibt es natürlich die 3.1.0:

(Ansonsten wäre das ein Fehler der Shop Requirements.)

Also ich würde mal vorschlagen einfach den Composer cache zu leeren:

composer cc

Ups, gibt verschiedene clearcache Befehle ,-)

Vielen Dank für die bisherigen Tipps, aber leider hat es auch nicht geholfen den Composer Cache zu leeren. Ich habe bei den Requirements alles gecheckt und das sollte eigentlich auch alles passen. Hat hier jemand mal ein Composer Update auf 6.5.x (PE) getestet mit Erfolg?

mach doch mal in der composer.json den bereich require-dev leer. und ziehe den shop lagsamer hoch.

erst 6.3 - 6.4 - 6.5

Ich habe jedes Minor Update der 6er per Composer mal gemacht. Beim Update der 6.5.x gabs eigentlich nichts Besonderes.

Ich vermute aber, dass es bei dir nichts mit dem Shop zu tun hat, sondern mit Composer. Solange er das nötige Paket bei dir nicht findet, kann kein Update gemacht werden. Das muss also geklärt/analysiert werden.

Womöglich hat deine composer Version einen Bug. Versuch mal die aktuellere 2.2.18.

Zusätzlich könntest das noch mit folgenden Befehlen analysieren:

composer depends -t # shows dependencies of a package
composer diagnose # perform automated checks for many common problems

Um auszuschließen, dass es an System Requirements liegt, kannst du es auch noch mit dem Parameter --ignore-platform-reqs versuchen. Beziehungsweise mit composer check-platform-reqs.

Oder mal hier nach Hilfe fragen:

Hallo, arbeite mit @j_unger zusammen an dem Problem und haben den Shop jetzt als Zwischenschritt auf 6.4.2 erfolgreich geupdatet. Allerdings kommt weiterhin zu v6.5.1 die Fehlermeldung:

 - oxid-esales/oxideshop-metapackage-ce v6.5.1 requires composer/pcre 3.1.0 -> found composer/pcre[dev-main, 1.0.0, 1.0.1, 1.x-dev, 2.0.0, 2.0.1, 2.0.2, 2.x-dev, 3.0.0, 3.0.1, 3.0.2, 3.x-dev (alias of dev-main)] but it does not match the constraint.
- oxid-esales/oxideshop-metapackage-pe v6.5.1 requires oxid-esales/oxideshop-metapackage-ce v6.5.1 -> satisfiable by oxid-esales/oxideshop-metapackage-ce[v6.5.1].
- Root composer.json requires oxid-esales/oxideshop-metapackage-pe v6.5.1 -> satisfiable by oxid-esales/oxideshop-metapackage-pe[v6.5.1].

Composer Update auf die aktuelle Version 2.2.18 führt ebenfalls zu diesem Fehler.

Zum Update auf die PE Version v6.4.3 kommt folgender Fehler:

- oxid-esales/oxideshop-metapackage-ce v6.4.3 requires payone-gmbh/oxid-6 v1.7.0 -> found payone-gmbh/oxid-6[dev-fix-ci-build, dev-master, dev-OXID-179, dev-actions-mysql, 1.0.0, ..., v1.6.2] but it does not match the constraint.
- oxid-esales/oxideshop-metapackage-pe v6.4.3 requires oxid-esales/oxideshop-metapackage-ce v6.4.3 -> satisfiable by oxid-esales/oxideshop-metapackage-ce[v6.4.3].
- Root composer.json requires oxid-esales/oxideshop-metapackage-pe v6.4.3 -> satisfiable by oxid-esales/oxideshop-metapackage-pe[v6.4.3].

Zum Update auf die PE Version v6.5.0 kommt folgender Fehler:

 - oxid-esales/oxideshop-metapackage-ce v6.5.0 requires doctrine/event-manager 1.1.2 -> found doctrine/event-manager[dev-unknown-event-failsafe, dev-1.2.x-merge-up-into-2.0.x_WaSYjYye, v1.0.0, ..., 1.2.x-dev, 2.0.x-dev] but it does not match the constraint.
    - oxid-esales/oxideshop-metapackage-pe v6.5.0 requires oxid-esales/oxideshop-metapackage-ce v6.5.0 -> satisfiable by oxid-esales/oxideshop-metapackage-ce[v6.5.0].
    - Root composer.json requires oxid-esales/oxideshop-metapackage-pe v6.5.0 -> satisfiable by oxid-esales/oxideshop-metapackage-pe[v6.5.0].

Der Parameter --ignore-platform-reqs hat ebenfalls leider nicht geholfen und die Augabe von composer check-platform-reqs ist wie folgt:

composer-plugin-api  2.2.0       success
ext-ctype            *           success provided by symfony/polyfill-ctype
ext-curl             7.4.3       success
ext-dom              20031129    success
ext-fileinfo         7.4.3       success
ext-filter           7.4.3       success
ext-hash             7.4.3       success
ext-iconv            7.4.3       success
ext-ioncube-loader   12.0.1      success
ext-json             7.4.3       success
ext-libxml           7.4.3       success
ext-mbstring         *           success provided by symfony/polyfill-mbstring
ext-mysqli           7.4.3       success
ext-openssl          7.4.3       success
ext-pcre             7.4.3       success
ext-pdo              7.4.3       success
ext-posix            7.4.3       success
ext-simplexml        7.4.3       success
ext-zip              1.15.6      success
ext-zlib             7.4.3       success
lib-curl             7.68.0      success
lib-openssl          1.1.1.6     success
php                  7.4.3       success

Habt ihr noch irgendwelche Lösungsansätze?
Schonmal Vielen Dank.

Habt ihr das auch mal auf einem anderen Server versucht?
Weil laut den Meldungen bekommt ihr nur alte Versionen angeboten. So als würde der Server in der Vergangenheit festhängen :sweat_smile:

Steht womöglich noch irgendwas in der composer.json, was vom Standard abweicht?

EDIT:
Was kam bei der Analyse mit composer depends & composer diagnose heraus?

Das composer update mit --ignore-platform-reqs oder mit der composer Version 2.2.18 zu versuchen hat auch nicht funktioniert.

Das kommt bei “composer diagnose”:

Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: OK
Checking github.com rate limit: OK
Checking disk free space: OK
Checking pubkeys:
Tags Public Key Fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0  87719BA6 8F3BB723 4E5D42D0 84A14642
Dev Public Key Fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B  0C708369 153E328C AD90147D AFE50952
OK
Checking composer version: OK
Composer version: 2.2.18
PHP version: 7.4.3
PHP binary path: /usr/bin/php7.4
OpenSSL version: OpenSSL 1.1.1f  31 Mar 2020
cURL version: 7.68.0 libz 1.2.11 ssl OpenSSL/1.1.1f
zip: extension present, unzip present, 7-Zip present (7z)

Bei “composer depends composer/pcre” kommt das dabei heraus:
Could not find package "composer/pcre" in your project

Tatsächlich findet unser Composer mehrere neue Package Versionen nicht.
Es erkennt neben “composer/pcre 3.1.0” z.B. “OXID-esales/paypal-module v6.5.0” auch nicht, obwohl die verfügbar sein sollte.

Was kann man für Maßnahmen ergreifen, wenn der Composer neuere Packages nicht findet?

Das scheint, wie gesagt, ein Server/Composer Issue zu sein. Daher meine Empfehlung, sich auch an die jeweiligen Profis zu wenden: