Presione esto: El enigma de la compatibilidad con versiones anteriores con WP-CLI con Alain Schlesser

Publicado: 2022-05-17

Bienvenido a Press This, el podcast de la comunidad de WordPress de WMR. Aquí, el anfitrión David Vogelpohl se sienta con invitados de toda la comunidad para hablar sobre los problemas más importantes que enfrentan los desarrolladores de WordPress. La siguiente es una transcripción de la grabación original.

Desarrollado por RedCircle

David Vogelpohl: Hola a todos y bienvenidos a Press This, los podcasts de la comunidad de WordPress en WMR. Este es su anfitrión, David Vogelpohl, apoyo a la comunidad de WordPress a través de mi función en WP Engine, y me encanta traer lo mejor de la comunidad para que escuche cada semana en prensa esto como un recordatorio, puede encontrarme en Twitter @wpdavidv , o puede suscribirse para presionar esto en iTunes, iHeartRadio, Spotify o descargar los últimos episodios en wmr.fm. En este episodio, hablaremos sobre el conector de compatibilidad retrocompatible con WP CLI. Y se unirá a nosotros para esta conversación alguien que sabe bastante sobre WP CLI. Colaboramos con WP CLI de XMPP Me gustaría dar la bienvenida a Alain Schlesser. Alain, bienvenido a Press This.

Alain Schlesser: David. Hola. Genial estar aquí.

DV: Me alegro mucho de tenerte. Esta es al menos tu segunda vez en este programa. Le hemos estado haciendo preguntas sobre WP CLI a lo largo de los años y realmente disfruto tenerlo. Para los que escuchan. WP CLI es una parte crítica del ecosistema de WordPress, particularmente en lo que respecta a la automatización y los flujos de trabajo y otros aspectos de las compilaciones de WordPress, y lo que cubriremos hoy es una reflexión sobre lo que se ha logrado con BPCL AI durante el último año. Lo que cambia la compatibilidad con versiones anteriores está por venir. Usted sabe que la compatibilidad con versiones anteriores es una gran parte del beneficio de WordPress, pero también el desafío de los desarrolladores de software y, por supuesto, cómo se abordan esos desafíos y la mayor parte de las formas en que puede contribuir a WP CLI hacia el final. Así que estoy deseando que llegue la entrevista. Entonces, le haré la misma pregunta que hago a todos los invitados y le he preguntado esto antes, pero quiero que me lo diga de nuevo si puede. ¿Podría contarme sobre su historia de origen de WordPress? ¿Cuándo fue la primera vez que usaste WordPress?

AS: Um, sí, entonces mi historia de origen es como la mayoría de las historias de WordPress que comienzan con un pequeño desvío. Trabajé como agente del gobierno en Luxemburgo. Y en un momento realmente me cansé de la política de todo. Quería hacer otra cosa con mi vida e intentar una carrera diferente. Y decidí hacer desarrollo freelance, porque ya había hecho desarrollo antes pero nunca lo hice como freelance. Y cuando llegó el momento de decidir realmente en qué enfocarme, solo miré lo que había y lo que había tenido la mayor participación de mercado en ese momento. Eso pasó a ser WordPress como todos sabemos. Y comencé con el desarrollo de WordPress porque pensé que sería el más fácil para conseguir clientes como un nuevo trabajador independiente que comienza desde 0.

DV: Elegí WordPress como la plataforma de elección por la misma razón por la que recuerdo una excelente agencia entre Drupal y WordPress y creo que en ese momento Drupal era la elección correcta, pero no era lo que la gente llamaba sobre cosas como Oh, pero esto fue en 2010. Ya sabes, justo en la cúspide de los tipos de publicaciones personalizadas y los metacampos. Y me pregunto cuándo tomaste esta decisión en qué año, aproximadamente, oyentes.

AS: um, eso fue en 2014, algo de 2014 y creo que WordPress estaba alrededor de la versión 332 o algo así. No estoy seguro para ser honesto.

DV: Entonces, para usted como desarrollador independiente, el beneficio de los sitios de publicación personalizados ya se ha liberado. Y entonces estabas entrando en este ecosistema y viendo esas capacidades. Sin embargo, aún faltaban otros dos años para un WP CLI. Así que supongo que no respondió completamente a todo lo que necesitabas como desarrollador, pero es genial verte administrando ese proyecto ahora. Ahora, comprenda que trabaja con XMPP. Y dime qué hace XMPP y qué haces tú allí.

AS : Entonces, X Delta P es una agencia que se enfoca en proyectos de WordPress de alto rendimiento y nivel empresarial. El enfoque principal está en el rendimiento, pero no solo en términos de qué tan rápido se carga el sitio, sino también qué tan bien se adapta a su negocio. Estoy trabajando con XWP durante aproximadamente dos años y medio. Durante ese tiempo, he estado trabajando en el complemento amfa de WordPress y luego en la experiencia de la página para el complemento de WordPress juntos.

DV: suenan como proyectos MIDI. Definitivamente estoy familiarizado con ellos, no lo he hecho con WordPress, aún no he jugado en la experiencia de la página y sé que conoces XMPP, hemos tenido algunas personas de XMPP en realidad presionando esto. Hacen algunos proyectos realmente geniales. Parece que te estás poniendo a trabajar en algunos de los mejores. Y eso es increíble. Sin embargo, en relación con nuestro tema para el programa, hoy, WP CLI desde el nivel alto, asumiendo que habrá algunos oyentes que no tienen idea de qué es WP CLI. Me preguntaba si podrías enmarcarlo para que puedan entender qué es WP CLI. es.

AS: Sí, claro. Entonces, WordPress tiene su back-end de administración donde realiza todo el mantenimiento del sitio donde realiza los cambios donde configura las opciones. Y WP CLI es una interfaz diferente para controlar su sitio de WordPress. Es una interfaz que puedes usar desde la línea de comandos. Así que escribes comandos en forma de texto para controlar tu sitio. Le permite hacer todo lo que hace el backend de administración y más. Y al usar la línea de comando que resulta ser una interfaz mucho más expresiva que el backend de administración, puede resolver muchos problemas que son muy específicos para sus casos de uso donde no hay un elemento de interfaz de usuario prefabricado en la parte posterior de administración. fin. Simplemente puede mezclar y combinar los comandos WP CLI para resolver estos problemas en cualquier lugar. Y luego, como un paso más, todo lo que puede hacer con WP CLI también puede ponerlo en un script y, en última instancia, puede automatizar todos sus procesos de administración e incluso puede ejecutarlos de forma remota. Entonces, hay mucho poder al ir a una interfaz basada en texto y WP CLI le permite hacer eso con WordPress.

DV: Wow, eso fue muy elegante. Creo que tienes otra carrera solo en marketing. Esa fue una forma muy buena de enmarcar VCI y recuerda describirlo, aunque es muy bueno. De acuerdo, en mi opinión, y tengo, ya sabes, una pequeña hoja de trucos para la línea de tiempo de los momentos clave en la historia de WordPress que uso cuando escucho las historias de origen de las personas para preguntarles cuándo ingresaron y qué estaba pasando en el tiempo. Y WP CLI es en realidad uno de los momentos clave en la historia de WordPress que menciono aquí. En 2016, en la vista de línea de tiempo, la mantengo, así que creo que es muy importante. Y sé que sabe que existe este impulso para lanzar más y más funciones y capacidades, pero tengo curiosidad relativa, como decir el lote reciente de lanzamientos relacionados con funciones o refactorización o lo que sea, ¿qué fue lo que más le entusiasmó en los lanzamientos recientes? ?

AS: Entonces, una característica muy interesante es la adición de contextos globales que tenemos porque, desde que se creó YouTube, siempre hubo discusión sobre el contexto en el que se debe ejecutar la herramienta, si se debe ejecutar como un proceso front-end o un proceso de administración o algo así. entre. Y todos los enfoques siempre venían con su propio conjunto de problemas. Así que nunca hubo realmente una solución limpia. Y la forma en que la CLI se ejecuta de forma predeterminada es esta mezcla extraña que no es ni un proceso de administración ni un proceso de front-end. Por razones históricas, pero eso significa que algunos procesos que verifican si la solicitud actual es una solicitud de administrador, por ejemplo, fallarán automáticamente. Esto sucede de manera más notoria con los complementos y temas premium cuando ejecuta las actualizaciones. Por lo general, verá esas actualizaciones que funcionan en el backend de administración. Pero con WP CLI, los administradores no ven las actualizaciones o no funcionan como se esperaba. Esto se debe a que la lógica personalizada que administra estas actualizaciones para cada complemento, verifican que el proceso de administración no ralentice el front-end, por supuesto, y eso ejecuta automáticamente WP CLI. Ahora, con esta nueva bandera de contexto, podemos elegir el contexto en el que ejecutar y eso le permite cambiar el contexto a un contexto de administración. Por ejemplo, cuando realiza una actualización de complemento, y luego, de repente, todas las integraciones premium funcionan tal como se esperaba. Esto es muy emocionante. Lo siento, esta no es una característica nueva muy emocionante. Se creó en colaboración con cloudways y actualmente estamos probando en una fase en la que no está activado de forma predeterminada. Por lo tanto, debe realizar manualmente este aprovisionamiento automático que se convertirá en el valor predeterminado en la próxima iteración.

DV: Excelente, excelente. Puedo ver por qué estarías emocionado por eso. Y creo que es realmente inteligente que estuvieras pensando, está bien, ¿habrá un front-end o un administrador? para múltiples casos de uso a la vez. Puedo ver por qué estarías emocionado por eso. particularmente pensando en ese caso de uso de héroe y no poder generar actualizaciones para complementos premium. Es un caso de uso bastante común. E imagine que muchos otros caen en cascada a partir de eso. Sin embargo, tengo algunas preguntas sobre, ya sabes, entrar en la hoja de ruta y pensar en las consideraciones de compatibilidad con versiones anteriores. Pero vamos a tomar nuestro primer descanso. Volveremos en seguida. Es hora de conectarse a una pausa comercial. Estén atentos para más información sobre esto en un momento. Todos bienvenidos de nuevo a presionar este podcast de la comunidad de WordPress que le estoy dando a Omar, su anfitrión David Vogel. Pablo. Estoy entrevistando a un arrendador de lanzamiento sobre WP CLI y algunos conectores de compatibilidad con versiones anteriores. Solo justo antes de la pausa que estaba compartiendo sobre su función favorita, o WP CLI recientemente, que fue el contexto global que cambió la bandera de si se trataba de un proceso de interfaz o de administración. Y pensé que eso era realmente inteligente. Cualquier cosa que quisiera agregar a eso antes de entrar en el tipo de hoja de ruta futura y compatibilidad con versiones anteriores.

AS: Sí, quería agregar que estoy ansioso porque esa es probablemente una de las solicitudes de soporte más frecuentes que recibe WP CLI. ¿Por qué las actualizaciones funcionan en WP CLI cuando lo hacen en el depósito de administración?

DV: Sí, ese proceso de repositorio de complemento premium asoma la cabeza y en muchos lugares diferentes que encuentro en WordPress, pero sí, puedo ver que es una capacidad central donde la gente dice: ¿Por qué diablos no hace esto? ? Es tan básico para WordPress. Eso es increíble. Mientras piensa en el futuro de WP CLI, quiero traer consideraciones de compatibilidad con versiones anteriores en un segundo, pero lo que nos gusta son las dos o tres características principales que le entusiasman para el futuro.

AS: Entonces, lo que he estado planeando durante bastante tiempo ahora es revisar completamente el andamiaje de WP CLI. El comando de andamiaje es un comando que usa plantillas para permitirle generar código como generar un tema vacío generar un complemento vacío. Y quería completar el Super Bowl para que fuera menos una herramienta de introducción y más una ayuda de desarrollo constante como lo es en el espacio de Laravel con el comando de autismo donde cada concepto que se usa en el desarrollo de WordPress tendría su propio comando para generar la versión canónica de la misma. Y eso no solo aceleraría drásticamente el desarrollo, sino que también sería una tremenda herramienta de aprendizaje y ayudaría a dar forma a la calidad general en el espacio de WordPress.

DV: Eso suena muy bien y también puedo empezar a imaginar dónde la compatibilidad con versiones anteriores podría estar jugando fricción para ¿Hay alguna otra característica similar a la hoja de ruta? Ese fue bastante bueno. Cualquier otro ¿Quieres agregar?

AS: También se está trabajando actualmente en una reescritura del comando Perfil, que sigue siendo un comando de terceros. Todavía no está incluido. Pero tan pronto como termine esa reescritura, también quiero agrupar ese comando para que todos tengan una manera fácil de crear perfiles. Las solicitudes del sitio web y ver en qué acciones necesito ver qué filtros se atascan en los principales cuellos de botella de rendimiento.

DV: Esa es otra buena. Bien, entonces tienes dos elementos jugosos en la hoja de ruta. Estoy seguro de que algo más que eso, por supuesto, es que estás pensando en el futuro y otros colaboradores están pensando en el futuro. Pero obviamente, la compatibilidad con versiones anteriores es una gran cosa en WordPress. Entonces, ¿qué consideraciones pesan en su mente cuando piensa en su capacidad para cumplir con esa hoja de ruta?

AS: Sí, WP CLI es la forma en que funciona, su funcionamiento interno está directamente relacionado con la política de compatibilidad con versiones anteriores del núcleo de WordPress. En este momento, WordPress Core todavía admite un mínimo de PHP 5.6 WP CLI también lo hace. Y hay una política para WP CLI que sea cual sea el mínimo de WordPress, siempre que eso cambie. WP CLI retrasará ese cambio durante al menos un año para que todos tengan la oportunidad de usar WP CLI para migrar desde los sitios antiguos. A los nuevos sitios. Y debido a que WP CLI suele ser la herramienta que se usa para migrar desde sitios antiguos, aún debe funcionar en las exportaciones, amigos. Por lo tanto, WP CLI nunca puede liderar el enfoque para admitir versiones más nuevas de PHP y cosas por el estilo. Porque entonces fallaría su objetivo principal, que es obtener acceso a los sitios antiguos y permitirle realizar el movimiento. Entonces, en ese sentido, es realmente difícil hacer el desarrollo en WP CLI de una manera que mantenga el código actualizado y mantenible, pero aún se adhiera a este requisito mínimo de PHP muy bajo con el núcleo de WordPress, que está causando más y más problemas.

DV: ¿cuándo lo harán o saben cuándo Core elevaría el número de versión mínimo de 5.6. Lo siguiente que tiene AB es porque 5.6 tiene bastantes variaciones anteriores y es difícil mantener que hace mucho tiempo, ¿tiene una cuenta de cuándo las versiones más recientes serían las mínimas?

AS: Honestamente, no puedo decir que invertí mucho trabajo en el proyecto sub happy, donde tengo muchos mecanismos para que sea técnicamente factible que el código de WordPress avance rápidamente hacia versiones más nuevas de PHP en este punto, todos los requisitos técnicos previos son allí. Solo es cuestión de tomar la decisión. Y no puedo decir cuándo sucederá eso. Porque ya estaba planeado desde hace bastante tiempo pero hasta ahora no ha pasado nada todavía.

DV: Y así, desde el momento en que sucede, tiene un año después de eso cuando WP CLI puede aumentar su versión de PHP mínima compatible. ¿Hay otras partes de la pila de software o idiomas o lo que sea que también pesan cuando piensas en tu capacidad para cumplir con la hoja de ruta, o es principalmente PHP?

AS: ¿es en términos de compatibilidad con versiones anteriores? Es principalmente principalmente php. La CLI de WP está construida en PHP y en gherkin y en scripts de shell. Entonces, pepinillo es un lenguaje de prueba que no es realmente un problema y los scripts de shell no han cambiado en 20 años. No creo que haya problemas pronto.

DV: ¿Cuál es el impacto, obviamente, mantener el software compatible con versiones muy antiguas de PHP es un desafío, pero ayúdame a entender cómo es un desafío? ¿Cuáles son las compensaciones que tiene que hacer por apegarse al soporte para 5.6?

AS: Apoyar cinco contra seis por sí solo no es gran cosa. Es solo una versión del lenguaje y era un lenguaje más feo. En ese momento, pero todavía muy útil. El problema es si también desea poder ejecutar la versión más reciente de PHP. Así que necesitas cubrir todo ese espectro. Y mientras no aumentemos la versión mínima, solo agregaremos más y más versiones que necesita admitir y con PHP, pero ahora la cadencia es que cada año sale una nueva versión principal, por lo que llaman son versiones menores, pero en términos de funciones son versiones principales, y los últimos lanzamientos han visto cambios más grandes y radicales en el lenguaje. Y en este momento es realmente difícil construir más construcciones de bajo nivel, de manera que funcionen tanto en cinco, seis y en ocho dos al mismo tiempo y solo empeorará con el tiempo. Y lo que se suma a eso es que las herramientas que necesita para trabajar en PHP, necesita ejecutar pruebas unitarias, necesita ejecutar pruebas funcionales, y así sucesivamente. Todas estas herramientas se adhieren a la cadencia de PHP para algo con la unidad de PHP. Por ejemplo, ahora es muy difícil escribir sus pruebas de tal manera que las pruebas mismas funcionen en todas las versiones de la unidad de PHP. Debe usar para cubrir todas estas versiones de PHP.

DV: De acuerdo , entonces es el peso de todas estas múltiples cohortes, por así decirlo, PHP escribe unidades TA, y luego supongo que probablemente también estés luchando con saber cómo estás usando funciones en diferentes versiones como funciones nuevas estarán disponibles y quedarán en desuso. Y parece que la recopilación de todo ese trabajo adicional es una fricción que pesa sobre su capacidad para ofrecer nuevas funciones, ¿suena justo?

AS: Sí, um, también hay PHP que se está volviendo cada vez más estricto. Así que antes, cuando necesitabas mapear múltiples versiones de PHP, y podías mantener tu código vago para que no encontrara ninguno de los problemas de una versión u otra. Eso se está volviendo cada vez más difícil ahora, porque HP arroja muchos avisos y advertencias y problemas de desaprobación para la mayoría. Para los detalles más pequeños por ahora, y a veces eso significa que crea una función que necesita ejecutar compilar varias veces y tiene un mecanismo para obtener la versión correcta de esa función, según la versión de PHP que esté ejecutando, que incrementos exponenciales al esfuerzo de mantenimiento de todo.

DV: Sí, eso tiene mucho sentido. De acuerdo, bueno, quiero comenzar a explorar un poco sobre, ya sabes, cómo lo vistes y tal vez incluso tus pensamientos sobre cómo WordPress en general puede funcionar mejor y, ya sabes, vestir la compatibilidad con versiones anteriores, pero nosotros vamos a tomar nuestro último descanso, y volveremos enseguida. Es hora de conectarse a una pausa comercial. Estén atentos para más información sobre esto en un momento. Bueno, todos bienvenidos de nuevo a presionar este podcast de la comunidad de WordPress en W EMR. Estamos en el medio de hablar con un arrendador de lanzamiento sobre el enigma de habitabilidad al revés con WP CLI. Debería haber elegido un título menos trabalenguas para este espectáculo. Pero aquí estamos. Un largo es un buen libro. Sí, me gusta, tengo que decir tres veces rápido antes de que termine. Pero está bien, antes de la pausa estabas hablando de este tipo de problema de mantenimiento exponencial a medida que comienzas a lidiar con múltiples versiones de PHP y no sé si esto te hace sentir mejor solo, pero como el 100% de los motores WP los clientes están parcheados en versiones modernas de PHP forzamos esas actualizaciones, pero obviamente no todos lo hacen. ¿Derecha? No todos los hosts no todos los que alojan un sitio web hacen estas cosas, por lo que esto crea solo oshin apartados y desactualizados, versiones suaves de PHP o incluso complementos de WordPress. Y entonces, esta naturaleza de WordPress, ya sabes, en esta idea de compatibilidad con versiones anteriores es parte de WordPress, su fuerza en su popularidad importa si lo configuro usted mismo. WP CLI tiene que retrasarse porque está haciendo un trabajo para las personas que necesitan actualizarse. Y eso es algo bueno, ¿verdad? Esa es una buena parte de esa dinámica. Pero me pregunto cuáles son sus pensamientos sobre cómo WP CLI o WordPress en su conjunto podrían mejorar para mantener esas partes buenas y tal vez evitar más partes malas, como los requisitos de mantenimiento exponencial de la compatibilidad con versiones anteriores. ¿Cuáles son sus pensamientos sobre eso escrito en grande?

AS: Sí, creo que en este momento estamos en un punto en el que WordPress está haciendo un flaco favor a su base de usuarios al apegarse a ese enfoque de compatibilidad con versiones anteriores muy extremo que tiene en este momento con respecto a PHP, porque todos los signos parecen apuntar hacia el hecho. que entraremos lentamente en la fase en la que posiblemente ya no podamos mantener WordPress ejecutándose en las últimas versiones de PHP, lo cual es un problema real. Y necesitaríamos mucho tiempo para trabajar en la compatibilidad porque los cambios allí son muchos más cambios en PHP hoy en día. Y la única forma de resolver esto es tener un enfoque continuo de adaptación al ciclo de PHP; puede retrasarse con respecto a PHP, pero no es posible que tenga una velocidad más baja que PHP, lo que empeorará el problema. Por lo tanto, debe igualar la velocidad de PHP, incluso si no tiene un retraso de dos años. Y luego debemos asegurarnos de que podamos mantener todo lo relacionado con las herramientas, las pruebas, las herramientas, etc., lo suficientemente actualizado para que siempre podamos trabajar en la compatibilidad con la última versión de PHP, porque tal como se ve en este momento , PHP nueve probablemente será la primera versión, ya que ahora parece que no será posible adaptarse a WordPress si no cambiamos el enfoque. Con suerte, está bien, sí.

DV: Iba a decir que parece que este problema exponencial con el que está lidiando en WP CLI se está agravando, por así decirlo, en todo WordPress, y está asomando su cabeza, por así decirlo, con los desafíos que mencionó. para PHP nueve. Y eso tiene sentido en términos como este, este tipo de fuerza de mover WordPress para tener que ser mejor en el mantenimiento de igualar esa velocidad para que no se atrasen demasiado en los servicios y se atrasen demasiado en las versiones de PHP. En los últimos minutos aquí, sé que hay muchos desafíos con la compatibilidad con versiones anteriores. Sé que ha estado ofreciendo excelentes funciones y quiere ofrecer más. Y como he visto una avalancha de colaboradores a Gutenberg y me gusta, siento que no haría un servicio a menos que le hiciéramos un poco de amor a WP CLI en este podcast para colaboradores. ¿Cómo pueden las personas contribuir a WP CLI para ayudar a mantener viva y en marcha esta parte realmente importante de WordPress?

AS: En primer lugar, tenemos el equipo principal de Slack de wordpress.org. Tenemos un canal CLI. Así que puedes subirte a ese canal y saludar y hacer preguntas. Y si desea comenzar, siempre hay personas que están felices de ayudarlo a incorporarse a las contribuciones de WP CLI. También está el sitio web make wordpress.org/cli que es el punto de entrada para toda la documentación y enlaces a buenos primeros números y así sucesivamente. Y luego, idealmente, se uniría a uno de los días de contribuyentes de cámaras web que están ocurriendo ahora nuevamente. Estoy muy contento por eso. Porque durante estos días de contribuyentes, las personas pueden ayudarlo a configurar su propia máquina para realizar un desarrollo local adecuado. Esto detendrá la pieza en vivo porque a veces la incorporación es el obstáculo más difícil que la gente tiene que instalar.

DV: Sí, puedo dar fe de eso. Unos cuantos amigos que se habían metido a aportar y lo que superaron. Sé que hay bastantes personas por ahí que tienen pequeños cursos e instrucciones, por supuesto, WordPress tiene cosas sobre eso también en términos de documentación, pero ese es un punto realmente bueno y los días de contribuyente ayudan con ese aspecto de eso. También me gustó cómo llamaste para unirte al canal de Slack. Me recuerda a cómo Mike Liddell se involucró con WordPress respondiendo lo que estoy comentando en una publicación de blog de Mac Mullenweg, pero esa noción de contribuir en un contexto social conduce a algo más grande. Bueno, esto fue genial. Gracias por acompañarnos hoy.

AS: Gracias por recibirme.

DV: Me alegro mucho de tenerte aquí. Si desea obtener más información sobre lo que hace Alon, también. Visite make wordpress.org y busque el sitio WP CLI o búsquelo en wordpress.org slack y el canal WP CLI. Gracias a todos por escuchar este podcast de la comunidad de WordPress en WMR. Nuevamente, este ha sido su anfitrión, David Vogelpohl. Apoyo a la comunidad de WordPress a través de mi rol en WP Engine. Y me encanta traerles lo mejor de la comunidad aquí cada semana en Press This.