Update mit Composer auf 6.1.x nicht möglich


#1

Habe gerade auf meinem Shop von 6.0.3 (vorhin noch 6.0.2) auf die neue 6.1.0 updaten wollen, jedoch ging das mit den beiden Composer Befehlen nicht:

composer update --no-plugins --no-scripts
composer update

Wurde nur auf die 6.0.3 geupdated, alles funktioniert zwar tadellos, jedoch verstehe ich nicht, wieso ein Update auf die 6.1.0 nicht möglich ist. Im Backend wird die Meldung, dass 6.1.0 verfügbar ist, ebenfalls angezeigt:

Auch in git (LINK) ist die Version 6.3.0 (bei uns 6.1.0) verfügbar

Auch meine composer.json beschränkt mit “oxid-esales/oxideshop-metapackage-ce”: “^v6.0.0” diesen Updateprozess nicht.

Die Frage ist nun natürlich: hat schon jemand auf die 6.1.0 geupdated und wenn ja, muss irgendetwas spezielles getan werden?

Gruß Martin


#2

Ok, habe das Problem soeben gelöst, hier die Lösung, für alle die selbiges Problem haben.

Es lag an der composer.json.

In einem andere Thread (auch von mir bezüglich Updates) laß ich:

Das scheint nicht zu stimmen. Meiner Erachtung nach sind damit nur Updates innerhalb 6.0.x möglich nicht 6.x, für das Update auf 6.x scheint man um das editieren der composer.json nicht herum zu kommen.
Dabei muss man jedoch mehr als nur oxid-esales/oxideshop-metapackage-ce editieren, denn wenn man nur das editiert, bekommt man einen Fehler (keine Ahnung mehr welchen)

Ich paste hier einfach mal die relevanten Teile meiner neue composer.json:

“minimum-stability”: “stable”,
“require”: {
“oxid-esales/oxideshop-metapackage-ce”: “^v6.1.0”
},
“require-dev”: {
“oxid-esales/testing-library”: “^v5.0.3”,
“oxid-esales/coding-standards”: “^v3.0.5”,
“incenteev/composer-parameter-handler”: “~v2.0”,
“oxid-esales/oxideshop-ide-helper”: “^v3.1.1”,
“oxid-esales/azure-theme”: “^v1.4.1”
}

Änderungen sind fett.
Der Rest bleibt wie er ist, damit sollte man alle Updates innerhalb 6.1.x bekommen.

Was mir nach dem Update aufgefallen ist:

1.) es fehlen nach dem Update Modulblöcke:


Diese Meldung wird bei 6.0.3 noch nicht angezeigt, erst ab dem Update auf 6.1.0.
Kennt jemand dazu eine Lösung?

2.) Das Kontaktformular weist ein Fehler auf (wahrscheinlich fehlende Übersetzung?)
Extra auf einer frischen Installation getestet, hier der Screenshot.


#3

Danke Martin,

habe auch schon einige Zeit mit Versuchen verschwendet und genau so wie Du es schreibst geht’s jetzt.

Die Fehlermeldung war bei mir wie folgt:
Loading composer repositories with package informationUpdating dependencies
Your requirements could not be resolved to an installable set of packages.

Problem 1

  • oxid-esales/testing-library v4.0.1 requires oxid-esales/oxideshop-unified-namespace-generator ^1.0.0 -> satisfiable by oxid-esales/oxideshop-unified-namespace-generator[v1.0.0].
  • oxid-esales/testing-library v4.0.0 requires oxid-esales/oxideshop-unified-namespace-generator ^1.0.0 -> satisfiable by oxid-esales/oxideshop-unified-namespace-generator[v1.0.0].
  • oxid-esales/testing-library v4.0.0-beta.1 requires oxid-esales/oxideshop-unified-namespace-generator ^1.0.0 -> satisfiable by oxid-esales/oxideshop-unified-namespace-generator[v1.0.0].
  • oxid-esales/testing-library v4.0.0-beta.2 requires oxid-esales/oxideshop-unified-namespace-generator ^1.0.0 -> satisfiable by oxid-esales/oxideshop-unified-namespace-generator[v1.0.0].
  • oxid-esales/testing-library v4.0.0-beta.3 requires oxid-esales/oxideshop-unified-namespace-generator ^1.0.0 -> satisfiable by oxid-esales/oxideshop-unified-namespace-generator[v1.0.0].
  • oxid-esales/testing-library v4.0.1 requires oxid-esales/oxideshop-unified-namespace-generator ^1.0.0 -> satisfiable by oxid-esales/oxideshop-unified-namespace-generator[v1.0.0].
  • Can only install one of: oxid-esales/oxideshop-unified-namespace-generator[v2.0.0, v1.0.0].
  • Can only install one of: oxid-esales/oxideshop-unified-namespace-generator[v2.0.0, v1.0.0].
  • oxid-esales/oxideshop-metapackage-ce v6.1.0 requires oxid-esales/oxideshop-unified-namespace-generator v2.0.0 -> satisfiable by oxid-esales/oxideshop-unified-namespace-generator[v2.0.0].
  • Installation request for oxid-esales/oxideshop-metapackage-ce ^v6.1.0 -> satisfiable by oxid-esales/oxideshop-metapackage-ce[v6.1.0].
  • Installation request for oxid-esales/testing-library ^v4.0.0-beta.1 -> satisfiable by oxid-esales/testing-library[v4.0.0, v4.0.0-beta.1, v4.0.0-beta.2, v4.0.0-beta.3, v4.0.1].

Diese Meldungen vom composer helfen mir nicht wirklich weiter.

Entscheidend war dier Abschnitt require-dev, wobei es mit den Hochstrichen so ” ” nicht funktioniert, sondern so " ".

Woher soll man wissen, was da bei den Versionen geändert werden muss? Woher hast du das?


OXID eShop Update ab v6.0.0
#4

Verstehe leider nicht, was Du damit meinst. Ich habe nirgends require-dev benötigt.

Das ich weiß welche Versionen für 6.1.0 eingetragen werden müssen habe ich @marco.steinhaeuser zu verdanken, der hier das (Artifact 6.1.0) pflegt und bereit stellt. Das habe ich entpackt und die Datei composer.json verrät dir dann welche Versionen für die jeweilige OXIDeShop Version benötigt werden.
Wie man das jedoch noch besser herausfinden kann (siehe HIER) versuche ich gerade rauszufinden —> HIER.


#5

Weiß nun auch warum es mit ^v6.0.0 nicht funktioniert hat.

HIER wird nochmal das Caret beschrieben.

// ^ | doesn’t allow breaking changes (major version fixed - following semver)
“vendor/package”: “^1.3.2”, // >=1.3.2 <2.0.0
“vendor/package”: “^0.3.2”, // >=0.3.2 <0.4.0 // except if major version is 0

Was mich tierisch an der Version 6 nervt ist:

1.)
6.0.0 ist 6.0.0
6.1.0 ist 6.0.1
6.2.0 ist 6.0.2
6.2.1 ist 6.0.3
6.3.0 ist 6.1.0

… WTF!?:man_facepalming:

2.)
Außerdem werden halt echt alte “Komponenten” verwendet.
Bootstrap: v3.3.5 --> v3.3.7 (besser noch v4.0.0-alpha.6)
jQuery: 2.1.4 --> 2.2.4 | 3.3.1
jQueryUI 1.10.3 --> 1.12.1

Finde Bootstrap 4 deutlich schöner. Und wenn man schon alles mit Composer macht, damit man alle Abhängigkeiten geschickt Up-To-Date halten kann, dann sollte man das auch machen, finde ich.

So das musste mal raus :smiley:


Update von 6.0.1 auf 6.0.3 - unklar ob vollständig
#6
  1. Ich meine natürlich die angepasste composer.json, die Du oben geschrieben hast.
    “require-dev”: {
    “oxid-esales/testing-library”: “^v5.0.3”,
    “oxid-esales/coding-standards”: “^v3.0.5”,
    “incenteev/composer-parameter-handler”: “~v2.0”,
    “oxid-esales/oxideshop-ide-helper”: “^v3.1.1”,
    “oxid-esales/azure-theme”: “^v1.4.1”
    },

  2. Was in der composer.json stehen soll ist z.Zt. noch ein lästiges Suchspiel. Das sollte von Oxid so programmiert werden, dass es automatisiert geht, wenn man per CLI mit composer die gewünschte Update-Version eingibt, so wie bei einer neuen Vollinstallation auch. Und bis dahin könnten als Zwischenlösung wenigstens die erforderlichen Einträge in der composer.json zu jedem Release bekannt gegeben werden.

Nachtrag:
Dem inzwischen noch hinzugefügten Beitrag von Dir stimme ich voll zu. Verwirrspiele, Suchspiele und Rätselraten mit Oxid sind reine Zeitfresser. Mit composer ginge doch eigentlich alles wie von selbst oder nicht?


#7

Das Thema war schon aufgekommen und adressiert. Ich denke, wir besprechen das intern die nächsten Tage und kommen dann mit einer machbaren Lösung rum. So ganz trivial ist es nämlich nicht :wink:


#8

^v6.0.0 würde prinzipiell schon 6.1.0 installieren, die Versionen der Komponenten von 6.1.0 kollidieren aber mit den Angaben in require-dev, deshalb wird es nicht installiert.

@marco.steinhaeuser Problem ist dass man nach der Anleitung die Version 6.1.0 weder installieren noch dahin updaten kann. Wenn man der Installations-Anleitung folgt: https://docs.oxid-esales.com/developer/en/6.0/getting_started/installation/eshop_installation.html wird 6.0.3 installiert. Im Backend wird angezeigt dass 6.1.0 verfügbar ist. Also folgt man der Update-Anleitung https://docs.oxid-esales.com/developer/en/6.0/update/eshop_from_6x_to_6y/update_default.html und erhält: “Your requirements could not be resolved to an installable set of packages.”

Grund dafür ist dass es zwar ein Metapackage für den Shop gibt, aber nicht für die dev-Komponenten, und hier gab es ein major-Update bei “oxid-esales/testing-library” welches mit dem Caret nicht installiert werden kann. Das führt selbst dann zum Fehler wenn die dev-Komponenten mittels --no-dev gar nicht installiert werden. Man muss also um das Update durchzuführen manuell

"oxid-esales/testing-library": "^v4.0.0",

ändern in

"oxid-esales/testing-library": "^v5.0.0",

Das steht nirgends, man könnte sich die Versions-Infos für die Dev-Tools zwar hier holen: https://github.com/OXID-eSales/oxideshop_project/blob/b-6.1-ce/composer.json aber das kann’s ja nicht sein dass man das selbst suchen und anpassen muss.


#9

Ich glaub, wir kommen grad hübsch durcheinander. Lass uns erstmal die Installation durchgehen:
Will ich die 6.0.3 installieren, führe ich das hier aus:

composer create-project --no-dev oxid-esales/oxideshop-project your_project_name dev-b-6.0-ce

Für die Version 6.1.0 brauche ich diesen Composerbefehl:

composer create-project --no-dev oxid-esales/oxideshop-project your_project_name dev-b-6.1-ce

Die docs.oxid-esales.com hat links unten so einen Umschalter für die Versionsstände und sollte bei Aufruf direkt auf die 6.1 springen. Oder ist da etwa irgendwo ein Link nicht richtig gesetzt?


#10

Hey diesen Schalter kannte ich gar nicht. Die Links sind falsch auf den Images bei https://docs.oxid-esales.com/de/.


#11

Danke für den Hinweis mit der Testing Libary - ich hatte diese entfernt und die:

“oxid-esales/oxideshop-unified-namespace-generator”: “v2.0.0”, manuell eingefügt.

Das Script läuft somit durch.

Was bei mir aber bei dem DB Update ( vendor/bin/oe-eshop-db_migrate migrations:migrate )
ist folgende Fehlermeldung:

vendor/bin/oe-eshop-db_migrate migrations:migrate
Loading configuration from command option: /is/htdocs/xxxx/www2/xxxx/vendor/oxid-esales/oxideshop-facts/src/Config/…/…/…/…/…/source/migration/migrations.yml

Warning: Unsupported declare ‘strict_types’ in /is/htdocs/xxxx/www2/xxxx/vendor/ocramius/proxy-manager/src/ProxyManager/Configuration.php on line 19

Parse error: syntax error, unexpected ‘:’, expecting ‘;’ or ‘{’ in /is/htdocs/xxxx/www2/xxxx/vendor/ocramius/proxy-manager/src/ProxyManager/Configuration.php on line 97

Habt Ihr eine Idee was hier schief in dem ProxyManager sein soll ?


#12

Hallo leofonic,

irgendeinen Link übersieht man immer. Ich habe die beiden Links soeben korrigiert. Danke für den Hinweis!

Gruß
Jürgen


#13

@ThomasR aus irgendeinem Grund scheint hier PHP 5 verwendet zu werden.


#14

Du meinst das Posting? https://github.com/Ocramius/ProxyManager/issues/328
Hatte es gerade gefunden - Composer habe ich auf Hosteurope Server auf 7.1 geschoben…

Habe nochmal nachgeprüft. Composer läuft auf 7.1 durch die Erzwingung.
Das DB Script aber auf 5.6

php -v bringt PHP 5.6.36-he.0 (cli) (built: May 3 2018 14:56:46)

Also Supportanfrage bei Hosteurope :wink: kann die Version nicht in der Console ändern sondern nur auf der Webseite … tolle wurst…

Danke aber für den entscheidenen TIPP :slight_smile:


#15

Kleiner Nachtrag:

Um das DB Update Script mit PHP 7.1 oder PHP 7.0 auf einen Hosteurope Hosting / Server durchzuführen muss man ganz simple ein php7.1 davor setzen.

Befehl:
php7.1 vendor/bin/oe-eshop-db_migrate migrations:migrate

Mehr Infos: https://www.hosteurope.de/faq/webhosting/skripte/php-memory_limit-auf-ssh/

Dann klappt das auch alles :slight_smile:


#16

Hallo Martin-Hot

Da gebe ich Dir im Prinzip recht! Aber die Änderungen von Bootstrap 3 zu 4.1.3 (die ist ja underdessen stabil) Sind nicht unerheblich!
Ich habe da mal angefangen, dieTemplates zu ändern, bin aber noch nicht fertig.

Steffen Winde