Pressione isto: O enigma da retrocompatibilidade com WP-CLI com Alain Schlesser

Publicados: 2022-05-17

Bem-vindo ao Press This, o podcast da comunidade WordPress do WMR. Aqui, o anfitrião David Vogelpohl se senta com convidados de toda a comunidade para falar sobre os maiores problemas enfrentados pelos desenvolvedores do WordPress. Segue a transcrição da gravação original.

Desenvolvido por RedCircle

David Vogelpohl: Olá a todos e bem-vindos ao Press This, os podcasts da comunidade WordPress no WMR. Este é o seu anfitrião, David Vogelpohl, eu apoio a comunidade WordPress através da minha função no WP Engine, e adoro trazer o melhor da comunidade para você ouvir todas as semanas na imprensa como um lembrete, você pode me encontrar no Twitter @wpdavidv , ou você pode se inscrever para pressionar isso no iTunes, iHeartRadio, Spotify ou baixar os episódios mais recentes em wmr.fm. Neste episódio, falaremos sobre o conector de compatibilidade retroativa com o WP CLI. E juntando-se a nós para esta conversa está alguém que conhece um pouco sobre o WP CLI. Nós contribuidor para WP CLI do XMPP Gostaria de dar as boas vindas a Alain Schlesser. Alain, bem-vindo ao Press This.

Alain Schlesser: David. Olá. Ótimo estar aqui.

DV: Estou tão feliz por ter você. Esta é pelo menos a sua segunda vez neste show. Temos feito perguntas sobre o WP CLI ao longo dos anos e eu realmente gosto de tê-lo. Para quem está ouvindo. O WP CLI é uma parte crítica do ecossistema do WordPress, particularmente em torno de automação e fluxos de trabalho e outros aspectos das compilações do WordPress e o que abordaremos hoje é junto com pensamentos sobre o que foi realizado com o BPCL AI no ano passado. Quais mudanças de compatibilidade com versões anteriores estão por vir. Você sabe que a compatibilidade com versões anteriores é uma grande parte do benefício do WordPress, mas também o desafio dos desenvolvedores de software e, claro, como esses desafios estão sendo abordados e a parte do leão um pouco sobre as maneiras pelas quais você pode contribuir para o WP CLI no final. Então, eu estou realmente ansioso para a entrevista. Então, vou fazer a mesma pergunta que faço a todos os convidados e já perguntei isso antes, mas quero que você diga novamente, se puder. Você poderia me contar sobre sua história de origem do WordPress? Quando foi a primeira vez que você usou o WordPress?

AS: Hum, sim, então minha história de origem é como a maioria das histórias do WordPress começa com um pequeno desvio. Trabalhei como agente do governo no Luxemburgo. E em um ponto eu realmente me cansei da política de tudo. Eu queria fazer outra coisa com a minha vida e tentar uma carreira diferente. E decidi fazer desenvolvimento freelancer, pois já tinha feito desenvolvimento antes, mas nunca fiz como freelancer. E quando chegou a hora de decidir no que focar, eu apenas olhei para o que estava lá fora e o que tinha a maior participação de mercado de cada vez. Isso passou a ser o WordPress, como todos sabemos. E acabei de começar com o desenvolvimento do WordPress porque pensei que seria mais fácil conseguir clientes como um freelancer novo que começa do 0.

DV: Escolhi o WordPress como plataforma de escolha pelo mesmo motivo que me lembro muito bem da minha agência entre Drupal e WordPress e acho que na época Drupal era a escolha correta, mas não era o que as pessoas estavam ligando sobre coisas como Oh, mas isso foi em 2010 Você sabe, bem no auge dos tipos de postagem personalizados e campos meta. E eu só estou me perguntando quando você estava tomando essa decisão em que ano aproximadamente os ouvintes

AS: hum, isso foi em 2014 alguns de 2014 e acho que o WordPress estava em torno da versão 332 ou algo assim. Não tenho certeza de ser honesto.

DV: Então, para você como desenvolvedor freelance, o benefício dos sites de postagem personalizados já havia sido liberado. E então você estava entrando nesse ecossistema e vendo esses recursos. Um WP CLI ainda estava a dois anos de distância. Então, acho que não respondeu totalmente a tudo o que você precisava como desenvolvedor, mas é ótimo ver você gerenciando esse projeto agora. Agora, entenda que você trabalha com XMPP. E vamos me dizer o que o XMPP faz e o que você faz lá.

AS : Então X Delta P é uma agência focada em projetos WordPress de nível empresarial de alto desempenho. O foco principal está no desempenho, mas não apenas em termos de quão rápido o site carrega, mas também em quão bem ele atende ao seu negócio. Estou trabalhando com o XWP há dois anos e meio aproximadamente E durante esse tempo, tenho trabalhado no plug-in amfa do WordPress e, em seguida, na experiência da página para o plug-in do WordPress juntos.

DV: eles soam como projetos MIDI. Eu definitivamente estou familiarizado com eles, eu não tenho para o WordPress, eu não joguei na experiência da página ainda e eu sei que você conhece o XMPP, nós tivemos algumas pessoas do XMPP na verdade publicando isso. Eles fazem alguns projetos muito legais. Parece que você está começando a trabalhar em alguns dos mais legais. E isso é incrível. No entanto, em relação ao nosso tópico para o programa, hoje, WP CLI de alto nível, supondo que haverá alguns ouvintes que não têm ideia do que é WP CLI, eu queria saber se você poderia enquadrá-lo para que eles possam entender o que é WP CLI é.

AS: Sim, claro. Então o WordPress tem seu back-end administrativo onde você faz toda a manutenção do site onde você faz as alterações onde configura as opções. E o WP CLI é uma interface diferente para controlar seu site WordPress. É uma interface que você pode usar a partir da linha de comando. Então você digita comandos em forma de texto para controlar seu site. Ele permite que você faça tudo o que o back-end do administrador faz e muito mais. E usando a linha de comando que por acaso é uma interface muito mais expressiva do que o back-end do administrador, você pode resolver muitos problemas muito específicos para seus casos de uso em que não há elemento de interface de usuário pré-fabricado no admin back fim. Você pode simplesmente misturar e combinar os comandos WP CLI para resolver esses problemas em qualquer lugar. E então, como um passo adiante, tudo o que você pode fazer com o WP CLI também pode colocá-lo em um script e, finalmente, automatizar todos os seus processos de gerenciamento e executá-los remotamente. Portanto, há muito poder indo para uma interface baseada em texto e o WP CLI permite que você faça isso com o WordPress.

DV: Uau, isso foi muito elegante. Eu acho que você tem outra carreira em marketing sozinho. Essa foi uma maneira muito legal de enquadrar o VCI e lembre-se de descrever que é muito bom. Ok, então na minha opinião, e eu tenho, você sabe, uma pequena folha de dicas para a linha do tempo dos principais momentos da história do WordPress que eu uso quando ouço as histórias de origem das pessoas para perguntar sobre quando elas entraram e o que estava acontecendo no A Hora. E o WP CLI é na verdade um dos momentos-chave na história do WordPress que eu chamo aqui. Em 2016 na visualização da linha do tempo, eu mantenho isso, então acho super importante. E eu sei que você sabe que há esse esforço para obter mais e mais recursos e recursos lançados, mas estou apenas curioso em relação a dizer que o lote recente de lançamentos em relação a recursos ou refatoração ou o que quer que seja, com o que você estava mais animado nos lançamentos recentes ?

AS: Então, um recurso muito interessante é a adição de contextos globais que temos, pois desde que o YouTube foi criado sempre houve discussão sobre o contexto em que a ferramenta deve ser executada, se ela deve ser executada como um processo de front-end ou processo administrativo ou algo assim entre. E todas as abordagens sempre vinham com seu próprio conjunto de problemas. Portanto, nunca houve realmente uma solução limpa. E a maneira como a CLI é executada por padrão é essa mistura estranha que não é um processo de administração nem um processo de front-end. Por motivos históricos, mas isso significa que alguns processos que verificam se a solicitação atual é uma solicitação de administrador, por exemplo, eles falharão automaticamente. Isso acontece mais notoriamente com plugins e temas premium quando você executa as atualizações. Então, geralmente, você verá essas atualizações que funcionam no back-end do administrador. Mas com o WP CLI, os administradores não são as atualizações visíveis ou não funcionam conforme o esperado. Isso ocorre porque a lógica personalizada que gerencia essas atualizações para cada plug-in, eles verificam se o processo de administração não diminui a velocidade do front-end, é claro, e isso executa automaticamente o WP CLI. Agora, com este novo sinalizador de contexto, podemos escolher o contexto no qual executar e isso permite alternar o contexto para um contexto de administrador. Por exemplo, quando você faz uma atualização de plugin e, de repente, todas as integrações premium funcionam exatamente como esperado. Isso é muito emocionante. Desculpe, este não é um novo recurso muito empolgante que era. Ele foi desenvolvido em colaboração com a cloudways, pois atualmente estamos testando em uma fase em que não está ativado por padrão. Portanto, você precisa manualmente que esse provisionamento automático se torne o padrão na próxima iteração.

DV: Excelente, excelente. Eu posso ver por que você estaria animado com isso. E acho muito inteligente que você esteja pensando, Ok, haverá front-end ou administrador, mas, na verdade, dar ao desenvolvedor a escolha dá a você a capacidade de resolver, ou pelo menos o desenvolvedor resolver para vários casos de uso ao mesmo tempo. Eu posso ver por que você estaria animado com isso. particularmente pensando nesse caso de uso de herói e não sendo capaz de renderizar atualizações para plugins premium. É um caso de uso bastante comum. E imagine muitos outros em cascata disso. Eu tenho algumas perguntas, no entanto, sobre, você sabe, como entrar no roteiro e pensar em considerações de compatibilidade com versões anteriores. Mas vamos fazer nossa primeira pausa. Já voltamos. Hora de se conectar a um intervalo comercial. Fique atento para mais informações sobre isso em apenas um momento. Sejam todos bem-vindos de volta ao podcast da comunidade WordPress que estou dando a Omar, seu anfitrião David Vogel. Paulo. Estou entrevistando um locador de lançamento sobre o WP CLI e alguns conectores de compatibilidade com versões anteriores. Sozinho logo antes do intervalo você estava compartilhando sobre seu recurso favorito, ou WP CLI recentemente, que foi o contexto global mudando o sinalizador para ser um processo de front-end ou administrador. E eu achei isso muito inteligente. Qualquer coisa que você quisesse adicionar a isso antes de eu entrar no tipo de roteiro futuro e compatibilidade com versões anteriores.

AS: Sim, eu queria acrescentar que estou realmente ansioso por isso, porque esse é provavelmente um dos pedidos de suporte mais frequentes que o WP CLI está recebendo. Por que as atualizações estão funcionando no WP CLI quando estão no bucket de administração?

DV: Sim, essa coisa de processo de repositório de plugins premium vem à tona e muitos lugares diferentes eu encontro no WordPress, mas sim, eu posso ver onde isso é um recurso central onde as pessoas são como, por que diabos ele não faz isso ? É tão básico para o WordPress. Isso é incrível. Enquanto você pensa sobre o futuro do WP CLI, quero trazer considerações de compatibilidade com versões anteriores em um segundo, mas o que gostamos são os dois ou três principais recursos com os quais você está animado para o futuro.

AS: Então, o que eu venho planejando há algum tempo agora é revisar completamente os andaimes do WP CLI. O comando scaffolding é um comando que usa modelos para permitir que você gere código como gerar um tema vazio gerar um plug-in vazio. E eu queria que o Super Bowl fosse menos uma ferramenta de introdução e mais uma ajuda de desenvolvimento constante, como no espaço Laravel com o comando de autismo, onde cada conceito usado no desenvolvimento do WordPress teria seu próprio comando para gerar a versão canônica dele. E isso não apenas aceleraria drasticamente o desenvolvimento, mas também seria uma tremenda ferramenta de aprendizado e ajudaria a moldar a qualidade geral no espaço WordPress.

DV: Esse soa muito bom e eu também posso começar a imaginar onde a compatibilidade com versões anteriores pode estar jogando atrito. Existe algum outro recurso de roteiro? Essa foi muito boa qualquer outra Você quer adicionar?

AS: Também há trabalho sendo feito atualmente em uma reescrita do comando Profile que ainda é um comando de terceiros. Ainda não está empacotado. Mas assim que essa reescrita for concluída, também quero agrupar esse comando para que todos tenham uma maneira fácil de criar perfis. O site solicita e vendo em quais ações preciso observar quais filtros os principais gargalos de desempenho estão travados.

DV: Essa é outra boa. Ok, então você tem dois itens de roteiro suculentos. Tenho certeza de que mais do que isso, é claro, você está pensando no futuro e outros contribuidores estão pensando no futuro. Mas, obviamente, a compatibilidade com versões anteriores é uma grande coisa no WordPress. Então, quais considerações estão pesando em sua mente enquanto você pensa sobre sua capacidade de cumprir esse roteiro?

AS: Sim, o WP CLI é a maneira como funciona, seu trabalho interno está diretamente ligado à política de compatibilidade com versões anteriores do núcleo do WordPress. No momento, o WordPress Core ainda suporta um mínimo de PHP 5.6 WP CLI também. E há uma política para WP CLI que qualquer que seja o mínimo do WordPress, sempre que isso mudar. O WP CLI atrasará essa mudança por pelo menos um ano para dar a todos a chance de usar o WP CLI para migrar dos sites antigos. Para os novos sites. E como o WP CLI geralmente é a ferramenta usada para migrar de sites antigos, ele ainda precisa funcionar nas exportações. Portanto, o WP CLI nunca pode liderar a abordagem no suporte a versões mais recentes do PHP e coisas assim. Porque ele falharia em seu objetivo principal, que é obter acesso aos sites antigos e permitir que você faça a mudança. Então, a esse respeito, é muito difícil fazer o desenvolvimento no WP CLI de uma maneira que mantenha o código atualizado e sustentável, mas ainda mantenha esse requisito mínimo de PHP muito baixo com o núcleo do WordPress, o que está causando cada vez mais problemas

DV: quando vão ou você sabe quando o core aumentaria o número mínimo da versão de 5.6. Em seguida, você tem AB, é porque 5.6 são algumas variações anteriores e é difícil manter isso, você tem uma ideia de quando as versões mais recentes seriam o mínimo?

AS: Sinceramente, não posso dizer que investi muito trabalho no projeto sub feliz, onde tenho muitos mecanismos para torná-lo tecnicamente viável para o código do WordPress mover-se rapidamente para versões mais recentes do PHP neste momento, todos os pré-requisitos técnicos são lá. É apenas uma questão de tomar a decisão. E não posso dizer quando isso vai acontecer. Porque já estava planejado há um bom tempo, mas até agora nada aconteceu ainda.

DV: E assim, a partir do momento que acontece, você tem um ano depois disso, quando o WP CLI pode aumentar sua versão mínima suportada do PHP. Existem outras partes da pilha de software ou linguagens ou qualquer outra coisa que também pesa quando você pensa sobre sua capacidade de entregar o roteiro, ou é principalmente PHP

AS: é em termos de compatibilidade com versões anteriores? É principalmente principalmente php. O WP CLI é construído em PHP e em gherkin e em scripts de shell. Portanto, o gherkin é uma linguagem de teste que não é realmente um problema e os scripts de shell não são alterados há 20 anos. Acho que não haverá problemas tão cedo.

DV: Qual é o impacto, obviamente, manter o software compatível com versões muito antigas do PHP é um desafio, mas me ajude a entender, como é desafiador? Quais são as trocas que você precisa fazer por manter o suporte para 5.6

AS: apoiar cinco em seis por si só não é grande coisa. É apenas uma versão da linguagem e era uma linguagem mais feia. Naquela época, mas ainda muito útil. O problema é se você também quiser rodar na versão mais recente do PHP. Então você precisa cobrir todo esse espectro. E contanto que não estejamos aumentando a versão mínima, estamos apenas adicionando mais e mais versões que você precisa para suportar e com PHP, mas agora a cadência é que a cada ano há uma nova versão principal que sai, então eles chamam são versões menores, mas em termos de recursos são versões principais, e os últimos lançamentos viram mudanças maiores e mais radicais na linguagem. E agora é muito difícil construir mais construções de baixo nível, mais de baixo nível de uma forma que funcione tanto em cinco, seis e oito dois ao mesmo tempo e só vai piorar com o tempo. E o que acrescenta a isso é que as ferramentas que você precisa para trabalhar em PHP, você precisa executar testes de unidade, você precisa executar testes funcionais e assim por diante. Todas essas ferramentas, ele adere à cadência PHP para algo com unidade PHP. Por exemplo, é muito difícil agora escrever seus testes de tal forma que os próprios testes funcionem em todas as versões da unidade PHP. Você precisa usar para cobrir todas essas versões do PHP.

DV: Ok , então é o peso de todas essas várias coortes, se você quiser, PHP digita unidades TAs, e então eu acho que você provavelmente também está lutando com você sabe como está usando funções em diferentes versões como novas funções tornam-se disponíveis e são obsoletos. E parece que a coleção de todo esse trabalho extra é o atrito que sobrecarrega sua capacidade de fornecer novos recursos, isso parece justo?

AS: Sim, hum, há também o PHP que está ficando cada vez mais rigoroso. Então, onde antes você precisava mapear várias versões do PHP, e você poderia apenas manter seu código vago para que ele não atingisse nenhum dos problemas de uma versão ou outra. Isso está ficando cada vez mais difícil agora, porque a HP lança muitos avisos e avisos e problemas de depreciação para a maioria. Para os mínimos detalhes até agora, e às vezes isso significa que você cria uma função que precisa ser executada várias vezes e tem um mecanismo para obter a versão correta dessa função, dependendo de qual versão do PHP você está executando, o que aumentos exponenciais para o esforço de manutenção de tudo.

DV: Sim, isso faz todo o sentido. Tudo bem, bem, eu quero começar a explorar um pouco sobre, você sabe, como você o veste e talvez até seus pensamentos sobre como o WordPress em geral pode melhorar e, você sabe, vestir a compatibilidade com versões anteriores, mas nós vamos fazer nossa última pausa, e já voltamos. Hora de se conectar a um intervalo comercial. Fique atento para mais informações sobre isso em apenas um momento. Bem, todos bem-vindos de volta para pressionar os podcasts desta comunidade WordPress no W EMR. Estamos no meio de conversar com um locador de lançamento sobre o problema de habitabilidade inverso com o WP CLI Eu deveria ter escolhido um título menos trava-língua para este show. Mas aqui estamos. Um longo é um bom livro. Sim, gosto que eu tenho que dizer três vezes rápido antes que acabe. Mas tudo bem, então antes do intervalo você estava falando sobre esse tipo de problema de manutenção exponencial quando você começa a lidar com várias versões do PHP e não sei se isso faz você se sentir melhor sozinho, mas como 100% dos mecanismos WP os clientes são corrigidos em versões modernas do PHP, forçamos essas atualizações, mas obviamente nem todo mundo faz isso. Direita? Nem todo host nem todo mundo que hospeda um site faz essas coisas e, portanto, isso cria apenas oshin separados por aí e desatualizados, versões PHP suaves ou até mesmo WordPress certamente plugins. E assim, essa natureza do WordPress, você sabe, essa ideia de compatibilidade com versões anteriores faz parte do WordPress, a força em sua popularidade importa se eu configurar você mesmo. O WP CLI tem que ficar para trás porque está fazendo um trabalho para as pessoas que precisam atualizar. E isso é uma coisa boa, certo? Essa é uma boa parte dessa dinâmica. Mas estou apenas querendo saber quais são seus pensamentos sobre como o WP CLI ou o WordPress como um todo podem melhorar a manutenção dessas partes boas e talvez evitar mais partes ruins, como os requisitos de manutenção exponencial da compatibilidade com versões anteriores. Quais são seus pensamentos sobre isso em grande escala?

AS: Sim, acho que agora estamos em um ponto em que o WordPress está fazendo um desserviço à sua base de usuários, mantendo essa abordagem de compatibilidade com versões anteriores muito extrema que tem agora em relação ao PHP, porque todos os sinais parecem estar apontando para o fato que entraremos lentamente na fase em que não podemos mais manter o WordPress rodando nas versões mais recentes do PHP, o que é um problema real. E nós precisaríamos de muito tempo para trabalhar na compatibilidade porque as mudanças existem como muitas outras mudanças acontecendo no PHP hoje em dia. E a única maneira de resolver isso é ter uma abordagem contínua de adaptação ao ciclo PHP, ele pode ficar atrás do PHP, mas não pode ter velocidade menor que o PHP, o que apenas tornará o problema cada vez pior. Portanto, ele precisa corresponder à velocidade do PHP, mesmo que não tenha todos os dois anos de atraso. E então precisamos garantir que podemos manter tudo nas ferramentas, testes, ferramentas e assim por diante, atualizado o suficiente para que possamos sempre trabalhar no suporte à versão mais recente do PHP, porque, como parece agora , PHP nove provavelmente será a primeira versão como parece agora que o WordPress não será possível se adaptar se não mudarmos a abordagem. Espero que sim.

DV: Eu ia dizer que parece que esse problema exponencial com o qual você está lidando no WP CLI é uma espécie de composição, se você quiser, em todo o WordPress, e está meio que levantando a cabeça, se você quiser, com os desafios que você mencionou para PHP nove. E isso faz sentido em termos de como isso, esse tipo de força que move o WordPress para ter que ser melhor na manutenção está combinando essa velocidade para que eles não fiquem muito atrás dos serviços e fiquem muito atrás nas versões do PHP. Nos últimos minutos aqui, eu sei que há muitos desafios com compatibilidade com versões anteriores. Eu sei que você está entregando ótimos recursos e quer entregar mais. E como eu vi uma onda de contribuidores para Gutenberg e tipo, eu sinto que não faria um serviço a menos que fizéssemos um pouco de amor ao WP CLI neste podcast para contribuidores. Como as pessoas podem contribuir com o WP CLI para ajudar a manter essa parte realmente importante do WordPress viva e funcionando?

AS: Então, antes de tudo, temos a equipe principal do Slack do wordpress.org. Temos um canal CLI. Então você pode simplesmente entrar naquele canal e dizer oi e fazer perguntas. E se você quiser começar, sempre há pessoas que ficarão felizes em ajudá-lo a participar das contribuições do WP CLI. Há também o site make wordpress.org/cli que é o ponto de entrada para toda a documentação e links para boas primeiras edições e assim por diante. E então, idealmente, você se juntaria a um dos dias do contribuidor de webcam que está acontecendo agora novamente. Estou muito feliz com isso. Porque durante esses dias de contribuidor, as pessoas podem realmente ajudá-lo a configurar sua própria máquina para fazer o desenvolvimento local adequado. Isso interromperá a peça ao vivo porque às vezes a integração é o obstáculo mais difícil que as pessoas precisam instalar.

DV: Sim, posso atestar isso. Alguns amigos que começaram a contribuir e o que eles superaram. Eu sei que existem algumas pessoas por aí que têm pequenos cursos e instruções, é claro que o WordPress também tem coisas sobre isso em termos de documentação, mas esse é um ponto muito bom e os dias de contribuidores ajudando nesse aspecto. Também gostei de como você chamou para entrar no canal do Slack. Isso meio que me lembra de como Mike Liddell se envolveu com o WordPress respondendo ao que estou comentando em um post do blog Mac Mullenweg, mas essa noção de contribuir em um contexto social levando a algo maior. Bem, isso foi super legal junto. Obrigado por se juntar a nós hoje.

AS: Obrigado por me receber.

DV: Estou tão feliz por ter você aqui. Se você gostaria de verificar mais sobre o que Alon faz isso também. Visite make wordpress.org e procure o site WP CLI ou encontre-o no slack wordpress.org e no canal WP CLI. Obrigado a todos por ouvirem este podcast da comunidade WordPress no WMR. Mais uma vez, este foi o seu anfitrião David Vogelpohl. Eu apoio a comunidade WordPress através da minha função no WP Engine. E adoro trazer o melhor da comunidade para você aqui toda semana no Press This.