¿Por qué no funciona la "actualización del compositor drupal / drupal"?

10

Instalé un sitio Drupal 8.2.0 con composer create-project drupal/drupal testsite.

Ahora me gustaría actualizarlo a Drupal 8.2.1. Sin embargo, correr composer update drupal/drupal no funciona. Imprime el siguiente error:

El paquete "drupal / drupal" listado para actualización no está instalado. Postergación.

¿Cómo hago esto? El soporte está claramente documentado en example.gitignore.

# Ignore core when managing all of a project's dependencies with Composer
# including Drupal core.
# core

Entonces tiene que haber alguna forma de hacer esto con el compositor, pero ¿cómo?

Christoph Burschka
fuente

Respuestas:

5

Editar: esto probablemente no sea útil b / c Acabo de volver a leer su declaración y no tenía el mismo caso que el mío en el que venía de una antigua instalación de Drupal 8, pero dejaré esto en caso de que alguien más tenga esto e intente ver si puedo encontrar el problema específico que está teniendo. Lo siento.

Tuve este problema al tratar con una actualización reciente y este era mi problema, pero YMMV, así que si no funciona, avíseme.

Esto puede ser un problema de que su archivo de compositor esté configurado en el listado de repositorio antiguo en composer.org. Recientemente, Drupal configuró sus propios puntos finales de compositor, uno para Drupal 7 y otro para Drupal 8. Puede leer más sobre ese cambio aquí: https://www.drupal.org/docs/develop/using-composer/using-composer- instalar-drupal-paquetes-a través de drupalorg

Este es el comando que debe ejecutarse para intercambiar el repositorio sobre Drupal.org.

$ composer config repositories.0 
$ composer https://packages.drupal.org/8
Burnsjeremy
fuente
2
Mensaje de error interesante de ese segundo comando: "No hay comandos definidos en el espacio de nombres" https ". Estoy realmente perdido ahora.
Mojo
4

Creo que lo resolví. Pensé que necesitaría un archivo root composer.json diferente que extrajera el paquete drupal en lugar de reemplazarlo, pero no sabía cómo hacerlo.

Afortunadamente, alguien ya ha hecho esto y ha reempacado Drupal de una manera amigable para el compositor: https://github.com/drupal-composer/drupal-project (aparentemente no hay una versión estable todavía).

Al usar composer create-project drupal-composer/drupal-project:8.x-dev --stability dev drupal-dirpude obtener una instalación que se puede actualizar con el compositor.

Christoph Burschka
fuente
2
El comando composer create-projectutiliza el proyecto solicitado como plantilla para el nuevo proyecto, por lo que en su primer intento, git.drupal.org/project/drupal.git se utilizó como plantilla para su nuevo proyecto. El uso de github.com/drupal-composer/drupal-project como plantilla en su lugar, hace que Drupal sea una parte del proyecto. De hecho, en lugar de usar drupal/drupal, usa drupal/core(para el directorio principal) y drupal-composer/drupal-scaffoldpara los otros archivos importantes como index.php y .htaccess.
David Lanier
3

El comando composer create-projectclona el paquete solicitado, que en este caso es https://git.drupal.org/project/drupal.git . Al final del proceso de creación del proyecto, se le preguntará si desea eliminar el historial VCS existente. Si respondió n, tendrá una manera de actualizar desde el repositorio drupal ascendente. Navegue al sitio de prueba y use git para buscar y ver la versión de Drupal que desee. Luego, ejecute composer installpara obtener las dependencias identificadas en composer.json y composer.lock de la versión actualizada de Drupal.

David Lanier
fuente
3

En la línea de comando, tuvimos que requerir drupal core (reemplazar con su versión):

composer require drupal/core:8.6.3 --update-with-dependencies

En el archivo composer.json debajo de replace, tuvimos que eliminar "drupal / core": "^ 8.6", así que reemplazar parece:

"replace": {

},

en nuestro archivo composer.json ahora. Luego corrimos:

composer update

y drupal actualizado a la última versión.

jasonflaherty
fuente