Quais versões dos componentes Symfony são usadas a partir do núcleo?

13

Qual versão do Symfony o Drupal usa para os componentes do Symfony? É um objetivo oferecer suporte às versões mais recentes dos componentes ou isso simplesmente não é possível?

Hyperfocus1337
fonte
2.x, mas parece que o 8.3.x foi atualizado para o Symfony 3.x. drupal.org/node/2743809
Kevin
@ Kevin Esse patch foi revertido. Atualmente, existem problemas separados para o Symfony 3.1 e o Symfony 3.2. Cada um tem seus próprios desafios devido a quebras de API.
mpdonadio

Respostas:

12

É mais preciso dizer que o Drupal 8 usa componentes Symfony, em vez de todo o Symfony. Se você observar 'core / composer.json', verá todos os componentes individuais que o Drupal usa listados. As versões precisas que são instaladas estão listadas no arquivo 'composer.lock'.

O Drupal 8.2.x usa as versões 2.8 desses componentes.

Para o Drupal 8.3.x, há problemas em aberto para atualizar para 3.1 e 3.2 , mas ainda estão em andamento. (Acho que pode haver um problema de 3.3, mas não consigo encontrá-lo).

O objetivo é começar a rastrear as versões 3.x, mas a conversão não foi direta.

mpdonadio
fonte
2
Uma adição: composer.lock é o arquivo que define quais versões são usadas exatamente. Um problema é que o uso de fluxos de trabalho baseados no compositor pode resultar facilmente na atualização desses componentes e pode resultar em problemas se não for uma versão que foi testada explicitamente. O @webflo fornece um pacote que não contém nada além de um compositer.json que possui as dependências exatas de qualquer versão principal: github.com/webflo/drupal-core-strict . Se você usar isso, pode ter certeza de que nunca atualiza acidentalmente nenhuma dessas dependências.
Berdir 12/12/16
Obrigado @Berdir. O pouco sobre a versão exata é importante. Eu hesitava em mencionar o arquivo de bloqueio como acho difícil de ler, e nem sempre é claro à primeira vista quando um pacote existe porque é uma dependência primária ou porque é necessário algo mais.
mpdonadio
Ainda é esse o caso? Preciso escrever um módulo personalizado para um site do Drupal 8 e estou tentando decidir em qual Symphony usar.
MadPhysicist
1
O @MadPhysicist Drupal 8.3.0 será marcado hoje mais tarde. Parece que será 2.8.16 (o que está no RC2) ou 2.8.18 (o que está no HEAD). O plano é comprometer o 3.2.X (provavelmente o 3.2.7, que saiu esta manhã e está atualmente sendo testado) para o 8.3.X logo após, para que haja tempo suficiente para corrigir os problemas que surgirem antes da 8.4.0. A atualização 2.8-> 3.2 não foi fácil, e existe a preocupação de que possam haver problemas que a cobertura do teste não está encontrando. Não sei se o momento para o 3.3 foi discutido ainda, já que este ainda não é um lançamento oficial.
mpdonadio
Entendo. Além do projeto Drupal, você sabe se o resto do mundo está praticamente no Symphony 3? Obrigado pela informação.
MadPhysicist
4

Para verificar você mesmo qualquer versão do Drupal que você estiver usando, basta perguntar ao compositor:

composer info | grep -E '^symfony'

Ou para um pacote individual:

composer info symfony/yaml
Cameron
fonte
3

No Drupal 8.4.3, aqui estão as versões das bibliotecas Symfony e outras bibliotecas intimamente relacionadas, especificadas no core / composer.json:

"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",

Geralmente, eles podem ser atualizados usando composer update(informações completas do compositor ). O Symfony 4 saiu algumas semanas atrás e também existem versões 3.3 de bibliotecas. Parece que os lançamentos menores do Drupal 8 ficarão atrás dos lançamentos do Symfony, mas não pararão de se mover.

HongPong
fonte