Pourquoi la «mise à jour du compositeur drupal / drupal» ne fonctionne-t-elle pas?

10

J'ai installé un site Drupal 8.2.0 avec composer create-project drupal/drupal testsite.

Maintenant, je voudrais le mettre à jour vers Drupal 8.2.1. Cependant, la course composer update drupal/drupal ne fonctionne pas. Il imprime l'erreur suivante:

Le package "drupal / drupal" répertorié pour la mise à jour n'est pas installé. Ignorer.

Comment puis-je faire cela? Le support est clairement documenté dans example.gitignore.

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

Il doit donc y avoir un moyen de le faire avec le compositeur, mais comment?

Christoph Burschka
la source

Réponses:

5

Edit: ce n'est probablement pas utile b / c je viens de relire votre déclaration et vous n'aviez pas le même cas que le mien d'où je venais d'une ancienne installation de Drupal 8 mais je laisserai ça au cas où quelqu'un d'autre aurait ça problème et essayez de voir si je peux trouver le problème spécifique que vous rencontrez. Pardon.

J'ai eu ce problème lors d'une récente mise à jour et c'était mon problème, mais YMMV, donc si cela ne fonctionne pas, faites le moi savoir.

Cela peut être dû au fait que votre fichier Composer est défini sur l'ancienne liste de référentiels sur composer.org. Récemment, Drupal a configuré ses propres points de terminaison Composer, un pour Drupal 7 et un autre pour Drupal 8. Vous pouvez en savoir plus sur ce changement ici: https://www.drupal.org/docs/develop/using-composer/using-composer- installer-drupal-packages-through-drupalorg

Il s'agit de la commande qui doit être exécutée pour échanger le référentiel sur Drupal.org.

$ composer config repositories.0 
$ composer https://packages.drupal.org/8
burnsjeremy
la source
2
Message d'erreur intéressant de cette deuxième commande: "Aucune commande n'est définie dans l'espace de noms" https "." Je suis vraiment perdu maintenant.
Mojo
4

Je pense que je l'ai résolu. J'ai pensé que j'aurais besoin d'un autre fichier root composer.json qui a extrait le paquet drupal au lieu de le remplacer, mais je ne savais pas comment le faire.

Heureusement, quelqu'un a déjà fait cela et a reconditionné Drupal d'une manière conviviale pour le compositeur: https://github.com/drupal-composer/drupal-project (Pas de version stable pour l'instant, apparemment.)

En utilisant, composer create-project drupal-composer/drupal-project:8.x-dev --stability dev drupal-dirj'ai pu obtenir une installation qui peut être mise à jour avec composer.

Christoph Burschka
la source
2
La commande composer create-projectutilise le projet demandé comme modèle pour le nouveau projet, donc lors de votre première tentative, git.drupal.org/project/drupal.git a été utilisé comme modèle pour votre nouveau projet. L'utilisation de github.com/drupal-composer/drupal-project comme modèle à la place fait de Drupal une partie du projet. En fait, au lieu d'utiliser drupal/drupal, il utilise drupal/core(pour le répertoire principal) et drupal-composer/drupal-scaffoldpour les autres fichiers importants comme index.php et .htaccess.
David Lanier
3

La commande composer create-projectclone le package demandé, qui dans ce cas est https://git.drupal.org/project/drupal.git . À la fin du processus de création de projet, vous devez être invité à supprimer l'historique VCS existant. Si vous avez répondu n, vous aurez un moyen de mettre à jour à partir du référentiel Drupal en amont. Accédez à testsite et utilisez git pour récupérer et vérifier la version de Drupal que vous souhaitez. Ensuite, exécutez composer installpour obtenir les dépendances identifiées dans composer.json et composer.lock de la version mise à jour de Drupal.

David Lanier
la source
3

Sur la ligne de commande, nous devions exiger un noyau drupal (à remplacer par votre version):

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

Dans le fichier composer.json sous replace, nous avons dû supprimer "drupal / core": "^ 8.6", donc replace ressemble à:

"replace": {

},

dans notre fichier composer.json maintenant. Nous avons ensuite couru:

composer update

et drupal mis à jour vers la dernière version.

jasonflaherty
la source