Welche Versionen der Symfony-Komponenten werden vom Core verwendet?

13

Welche Symfony-Version verwendet Drupal für die Symfony-Komponenten? Ist es ein Ziel, die neuesten Versionen der Komponenten zu unterstützen, oder ist dies einfach nicht möglich?

Hyperfocus1337
quelle
2.x, aber es sieht so aus, als ob 8.3.x auf Symfony 3.x aktualisiert wurde. drupal.org/node/2743809
Kevin
@ Kevin Dieser Patch wurde zurückgesetzt. Derzeit gibt es separate Probleme für Symfony 3.1 und Symfony 3.2. Jeder hat seine eigenen Herausforderungen aufgrund von API-Unterbrechungen.
mpdonadio

Antworten:

12

Es ist genauer zu sagen, dass Drupal 8 Symfony-Komponenten verwendet und nicht alle von Symfony. Wenn Sie sich 'core / composer.json' ansehen, werden alle von Drupal verwendeten Einzelkomponenten aufgelistet. Die genauen Versionen, die installiert werden, sind in der Datei 'composer.lock' aufgeführt.

Drupal 8.2.x verwendet die 2.8-Versionen dieser Komponenten.

Für Drupal 8.3.x gibt es noch Probleme bei der Aktualisierung auf 3.1 und 3.2 , die jedoch noch nicht abgeschlossen sind. (Ich denke, es gibt möglicherweise ein 3.3-Problem, aber ich kann es nicht finden).

Das Ziel ist es, die 3.x-Versionen zu verfolgen, aber die Konvertierung war nicht einfach.

mpdonadio
quelle
2
Ein Zusatz: composer.lock ist die Datei, die definiert, welche Versionen genau verwendet werden. Ein Problem ist, dass die Verwendung von Composer-basierten Workflows leicht zur Aktualisierung solcher Komponenten führen kann. Dies kann zu Problemen führen, wenn es sich nicht um eine explizit getestete Version handelt. @webflo stellt ein Paket zur Verfügung, das nichts anderes enthält als eine composer.json, die die genauen Abhängigkeiten aufweist, die jede Kernversion hat: github.com/webflo/drupal-core-strict . Wenn Sie dies verwenden, können Sie sicher sein, dass Sie keine dieser Abhängigkeiten versehentlich aktualisieren.
Berdir
Danke @Berdir. Das bisschen über die genaue Version ist wichtig. Ich habe gezögert, die Sperrdatei zu erwähnen, da ich sie schwer zu lesen finde, und es ist nicht immer auf den ersten Blick klar, wann ein Paket da ist, weil es eine primäre Abhängigkeit ist oder weil etwas anderes es erfordert.
mpdonadio
Ist das noch der Fall? Ich muss ein benutzerdefiniertes Modul für eine Drupal 8-Site schreiben und versuche zu entscheiden, welche Symphony verwendet werden soll.
MadPhysicist
1
@MadPhysicist Drupal 8.3.0 wird heute noch markiert. Es sieht so aus, als ob es entweder 2.8.16 (was ist in RC2) oder 2.8.18 (was ist in HEAD) sein wird. Es ist geplant, 3.2.X (wahrscheinlich 3.2.7, das heute Morgen veröffentlicht wurde und derzeit getestet wird) kurz danach auf 8.3.X zu übertragen, damit genügend Zeit bleibt, um alle Probleme zu beheben, die vor 8.4.0 auftreten. Das 2.8-> 3.2-Update war nicht einfach, und es besteht die Sorge, dass es Probleme gibt, die die Testabdeckung nicht findet. Ich weiß noch nicht, ob das Timing für 3.3 besprochen wurde, da dies noch keine offizielle Veröffentlichung ist.
mpdonadio
Aha. Wissen Sie, ob der Rest der Welt, abgesehen vom Drupal-Projekt, ziemlich auf Symphony 3 steht? Danke für die Auskunft.
MadPhysicist
4

Um dies selbst zu überprüfen, egal welche Version von Drupal Sie verwenden, können Sie einfach den Komponisten fragen:

composer info | grep -E '^symfony'

Oder für ein individuelles Paket:

composer info symfony/yaml
Cameron
quelle
3

Ab Drupal 8.4.3 sind hier die Versionen der Symfony-Bibliotheken und anderer eng verwandter Bibliotheken aufgeführt, die in core / composer.json angegeben sind:

"php": ">=5.5.9",
"symfony/class-loader": "~3.2.8",
"symfony/console": "~3.2.8",
"symfony/dependency-injection": "~3.2.8",
"symfony/event-dispatcher": "~3.2.8",
"symfony/http-foundation": "~3.2.8",
"symfony/http-kernel": "~3.2.8",
"symfony/routing": "~3.2.8",
"symfony/serializer": "~3.2.8",
"symfony/translation": "~3.2.8",
"symfony/validator": "~3.2.8",
"symfony/process": "~3.2.8",
"symfony/polyfill-iconv": "^1.0",
"symfony/yaml": "~3.2.8",
"twig/twig": "^1.23.1",
"doctrine/common": "^2.5",
"doctrine/annotations": "^1.2",
"symfony-cmf/routing": "^1.4",
"symfony/psr-http-message-bridge": "^1.0",

Diese können in der Regel mit composer update( vollständige Komponisteninfo ) aktualisiert werden . Symfony 4 wurde vor einigen Wochen veröffentlicht und es gibt auch 3.3 Versionen von Bibliotheken. Es sieht also so aus, als würden Drupal 8-Nebenversionen hinter Symfony-Versionen zurückbleiben, aber nicht aufhören, sich zu bewegen.

HongPong
quelle