Tal como se había anunciado, el martes 9 de febrero llegó la nueva versión estable de Magento, con un escueto anuncio comercial.
Si bien en cada comunicación se percibe cierto esmero(1) en hacer de cuenta que sólo existe una edición, tanto la edición Open Source como la Commerce siguen siendo actualizadas de forma simultánea.
¿Qué noticias trae este nuevo lanzamiento?
Muchas y de distinto tenor (tómese cada uno el tiempo de revisar)
Como en cada edición, tenemos nuestro set de parches de seguridad que fueron backporteados (¿cómo traducir eso?) para 2.4.1 y 2.3.6.
Una mejora que se agradecerá mucho es el soporte para Composer 2 (además del soporte para ElasticSearch 7.9, Varnish 6.4 y Redis 6).
En mi caso, voy a actualizar de un Magento 2.4.1 con sample data y PHP 7.4 (que usaba Composer 1) a ésta última versión y usando Composer 2.
Como en cada upgrade:
composer require magento/product-community-edition 2.4.2 --no-update
El output fue:
The "dealerdirect/phpcodesniffer-composer-installer" plugin was skipped because it requires a Plugin API version ("^1.0") that does not match your Composer installation ("2.0.0"). You may need to run composer update with the "--no-plugins" option.
The "magento/magento-composer-installer" plugin was skipped because it requires a Plugin API version ("^1.0") that does not match your Composer installation ("2.0.0"). You may need to run composer update with the "--no-plugins" option.
The "magento/inventory-composer-installer" plugin was skipped because it requires a Plugin API version ("^1.1") that does not match your Composer installation ("2.0.0"). You may need to run composer update with the "--no-plugins" option.
The "laminas/laminas-dependency-plugin" plugin was skipped because it requires a Plugin API version ("^1.1") that does not match your Composer installation ("2.0.0"). You may need to run composer update with the "--no-plugins" option.
The "magento/composer-root-update-plugin" plugin was skipped because it requires a Plugin API version ("^1.0") that does not match your Composer installation ("2.0.0"). You may need to run composer update with the "--no-plugins" option.
Ok, hago de cuenta como que no vi nada. Siguiente paso.
composer update
Y ponemos freno de mano.
The "dealerdirect/phpcodesniffer-composer-installer" plugin was skipped because it requires a Plugin API version ("^1.0") that does not match your Composer installation ("2.0.0"). You may need to run composer update with the "--no-plugins" option.
The "magento/magento-composer-installer" plugin was skipped because it requires a Plugin API version ("^1.0") that does not match your Composer installation ("2.0.0"). You may need to run composer update with the "--no-plugins" option.
The "magento/inventory-composer-installer" plugin was skipped because it requires a Plugin API version ("^1.1") that does not match your Composer installation ("2.0.0"). You may need to run composer update with the "--no-plugins" option.
The "laminas/laminas-dependency-plugin" plugin was skipped because it requires a Plugin API version ("^1.1") that does not match your Composer installation ("2.0.0"). You may need to run composer update with the "--no-plugins" option.
The "magento/composer-root-update-plugin" plugin was skipped because it requires a Plugin API version ("^1.0") that does not match your Composer installation ("2.0.0"). You may need to run composer update with the "--no-plugins" option.
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires dealerdirect/phpcodesniffer-composer-installer ^0.5.0 -> satisfiable by dealerdirect/phpcodesniffer-composer-installer[v0.5.0].
- dealerdirect/phpcodesniffer-composer-installer v0.5.0 requires composer-plugin-api ^1.0 -> found composer-plugin-api[2.0.0] but it does not match the constraint.
You are using Composer 2, which some of your plugins seem to be incompatible with. Make sure you update your plugins or report a plugin-issue to ask them to support Composer 2.
Ok, conflicto de dependencias, pero por el uso de Composer 2. Sino, esto hubiera funcionado sin mayores problemas.
¿Cómo puedo solucionar este conflicto?. Vamos a editar nuestro composer.json para aplicar estos cambios.
En el require agregamos:
"laminas/laminas-dependency-plugin": "2.1.0 as 1.0.4",
"magento/inventory-composer-installer": "1.2.0 as 1.1.0",
Y en require-dev cambiamos:
"dealerdirect/phpcodesniffer-composer-installer": "^0.5.0",
Por:
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
Luego ejecuto el comando:
composer update
Finaliza correctamente y me dispongo a actualizar como de costumbre.
bin/magento setup:upgrade
Cuando termina, revisamos versión:
bin/magento --version
Y deberíamos obtener:
Magento CLI 2.4.2
Y la navegación no presenta problemas.
Volviendo un poco sobre las cuestiones que se agregan y aquellas que se quitan, hay que dedicarle un capítulo a una funcionalidad interesante (sólo disponible en la edición Commerce) que ya no estará disponible: split database.
A finales del año pasado se notificó de este cambio y finalmente se ha deprecado la funcionalidad. Si estás haciendo uso de ella, ya deberías estar planificando el proceso inverso (aquí Magento provee una guía para llevarlo adelante).
Mejoras funcionales y técnicas a B2B, GraphQL y PWA Studio siguen siendo las figuritas que no dejan de repetirse de versión en versión.
Ahora si, happy patching!
(1) Puede verse aquí o aquí o se pueden anotar aquí para que se los cuenten en un webinar.