Surf mal anders
Update: Mit Erscheinen von TYPO3 10.4.8 hat sich das Problem erledigt, da hier die Dependencies angepasst wurden. Scheinbar gab es nicht nur mit Surf, sondern auch mit Solr und Abhängigkeiten zu PHP 7.2 Probleme. Ich werde trotzdem Surf nicht mehr per composer in das Projekt installieren, sondern global in den DDEV-Container.
Gestern wurde ein geplantes Maintenance-Release von TYPO3 veröffentlicht. Version 10.4.7. Vom besten Content Management System, das ich kenne. Und natürlich sollten gleich alle Projekte auf die neue Version gezogen werden. Was bisher ohne Probleme mit einem herzhaften 'composer update' auch ohne weitere Anstrengung möglich war. Nur gestern nicht.
composer weigerte sich partout die neue Version in die Projekte zu integrieren. Gut, kein Problem, gehen wir das Ganze mal systematisch an. Erstmal mittels
composer clear-cache && composer update
composer zwingen, alles zu vergessen, die ganzen Quellen abzugrasen und es erneut zu versuchen. Dies brachte aber auch kein neues TYPO3 auf die Festplatte.
Dann wollte ich mal schauen und mit der Frage
composer why-not typo3/cms-core:10.4.7
kristallisierte sich dann auch heraus, dass typo3/surf eine Dependency über symfony/console enthielt, die dann schlussendlich eine Dependency auf symfony/event-dispatcher-contracts hatte, die verhinderte auf eine Version größer 2.0 zu gehen. Was aber typo3/cms-core unbedingt voraussetzt. npm, ick hör dir trapsen!
Heute morgen dann nochmal versucht, selber eine Lösung zu finden, aber vielleicht sollte ich doch im gehobenen Alter über eine Umschulung nachdenken. Somit blieb nur noch Twitter übrig, mein Leid geklagt und Minuten später, kamen schon die beiden Retter @t3easy_de und @chriwode um die Ecke.
Der erste Versuch, Surf lokal auf einem Windows laufen zu lassen, scheiterte kläglich. Ja, Windows. Möchte ich hier nicht drüber reden. Das Ganze scheitert daran, dass unter anderem Windows awk nicht kennt und selbst wenn man dieses nachinstalliert, werden einem weitere Fehler um die Ohren gehauen.
Um jetzt mal so langsam auf den Punkt zu kommen: bisher habe ich Projekte mittels DDEV aufgesetzt und per composer nicht nur TYPO3 und die verwendeten Extensions installiert, sondern auch Surf. Um dann zum Beispiel per Kommandozeile ein Projekt deployen zu können, wenn kein entsprechendes CI/CD-System zur Verfügung steht. Meine Lösung sieht jetzt so aus, dass Surf aus diesem composer.json rausgeflogen ist und global per DDEV Start-Hook installiert wird:
hooks: post-start: - exec: composer global require hirak/prestissimo - exec: composer global require typo3/surf:^2.0
So lässt sich TYPO3 10.4.7 installieren und ich kann per Surf das Projekt auf ein anderes System schieben.
Kommentare
Keine Kommentare