web-dev-qa-db-fra.com

Mise à jour du noyau avec Composer ne fonctionne pas

Je suis sur D 8.3.0-rc2 et je souhaite mettre à jour vers D 8.3.0 stable. Composer est ma seule option (exigence du module d'adresse). Composer la mise à jour du noyau ne m'amène pas au-delà de 8.3-0-rc2, sans même la forcer). Fonctionnement drush composer require "drupal/core:^8.3@stable" me donne la sortie suivante:

./composer.json a été mis à jour
Chargement composer référentiels avec des informations sur le package
Mise à jour des dépendances (y compris require-dev)
Rien à installer ou à mettre à jour

Le contenu de composer.json est le suivant.

{

"name": "drupal/drupal",
"description": "Drupal is an open source content management platform powering millions of websites and applications.",
"type": "project",
"license": "GPL-2.0+",
"require": {
    "composer/installers": "^1.0.21",
    "drupal/core": "^8.3@stable",
    "wikimedia/composer-merge-plugin": "~1.3",
    "drupal/address": "~1.0",
    "drush/drush": "^8.1"
},
"replace": {
},
"minimum-stability": "dev",
"prefer-stable": true,
"config": {
    "preferred-install": "dist",
    "autoloader-suffix": "Drupal8"
},
"extra": {
    "_readme": [
        "By default Drupal loads the autoloader from ./vendor/autoload.php.",
        "To change the autoloader you can edit ./autoload.php."
    ],
    "merge-plugin": {
        "include": [
            "core/composer.json"
        ],
        "recurse": false,
        "replace": false,
        "merge-extra": false
    }
},
"autoload": {
    "psr-4": {
        "Drupal\\Core\\Composer\\": "core/lib/Drupal/Core/Composer"
    }
},
"scripts": {
    "pre-autoload-dump": "Drupal\\Core\\Composer\\Composer::preAutoloadDump",
    "post-autoload-dump": "Drupal\\Core\\Composer\\Composer::ensureHtaccess",
    "post-package-install": "Drupal\\Core\\Composer\\Composer::vendorTestCodeCleanup",
    "post-package-update": "Drupal\\Core\\Composer\\Composer::vendorTestCodeCleanup"
},
"repositories": {
    "drupal": {
        "type": "composer",
        "url": "https://packages.drupal.org/8"
    }
}
}

J'ai lu sur la suppression de vendor et composer.lock, mais je ne comprends pas pourquoi cela fonctionnerait.

5
Peter Janes

Au lieu d'essayer de mettre à jour Drupal directement avec Composer, essayez plutôt de commencer par drupal-composer/drupal-project comme point de départ. Ce projet fonctionne définitivement avec Drupal 8.3.0.

Configurez un nouveau projet avec drupal-composer/drupal-project et utilisez composer require pour ajouter les modules dont vous avez besoin. Une fois que votre code est le même dans le nouveau projet que l'ancien, vous devriez pouvoir simplement copier la base de données (ou simplement pointer vers votre base de données existante avec settings.php) et exécuter updatedb.

3
greg_1_anderson

Vous avez déjà la bonne version dans votre composer.json. Alors c'est juste composer install (dans votre cas, c'est drush composer install).

Si cela ne fonctionne pas, supprimez votre fichier de verrouillage et/ou le dossier du fournisseur avant d'appeler composer install (ou drush composer install).

Et je suppose que composer update drupal/core (dans ton cas drush composer update drupal/core) peut également fonctionner (car la version de votre fichier de verrouillage ou du dossier du fournisseur est différente de celle de votre composer.jon).

0
leymannx