Ist es akzeptabel, die Datei composer.json von Drupal zu ändern?

8

Drupal hält sich an die Best Practice, den Kern niemals zu modifizieren .

In Drupal 8 ist eine Datei composer.json in den Kern integriert. Wenn Sie eine Bibliothek eines Drittanbieters hinzufügen müssen, sollten Sie composer.json ändern, oder gibt es eine bessere Möglichkeit, dies zu tun?

David Barratt
quelle
Können wir diese Diskussion wieder eröffnen, da es zwei Jahre her ist, seit sie das letzte Mal diskutiert wurde? Ich habe gelesen, dass man in Drupal 8 RC1 Module jetzt direkt über composer requiredas Drupal-Dokument verwalten kann. Das ist alles schön und gut, aber was ist, wenn ich etwas tun muss, composer require drupal/drupal-extensiondas Behat einbindet und anschließend viele Dinge im Herstellerverzeichnis von D8 Core ändert? Dies ist besonders eine knifflige Frage im Pantheon, wo anscheinend die Repo-Wurzel die Drupal-Docroot sein muss.
Kostajh

Antworten:

5

Es ist möglich, Drupal 8 in Ihre eigene composer.jsonDatei zu kopieren :

{
    "name": "davidbarratt/mydrupalproject",
    "require": {
        "drupal/drupal": "8.*"
        "composer/installers": "1.*"
    },
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "drupal/drupal",
                "type": "drupal-core",
                "version": "8.0.0-dev",
                "source": {
                    "url": "http://git.drupal.org/project/drupal.git",
                    "type": "git",
                    "reference": "8.x"
                }
            }
        }
    ],
    "minimum-stability": "dev"
}

Es gibt eine Pull-Anfrage, composer/installersum die Installation von drupal-coreProjekttypen zu ermöglichen : http://github.com/composer/installers/pull/38

Ich würde mich über Ihre Eingabe zu der obigen Pull-Anfrage sowie über diese andere in der Warteschlange freuen, die die Installation von Modulen / Themen / Profilen ermöglicht.

Eine andere Lösung, die derzeit funktioniert, ist das Composer Manager- Modul, das die composer.jsonVerwendung für Module erleichtert . Es ist derzeit für Drupal 7 verfügbar und wird für Drupal 8 verfügbar sein, sobald die Drupal 8-Alpha-Versionen geschlossen sind.

Vielen Dank, Rob

RobLoach
quelle
Möchten Sie Ihre Antwort aktualisieren? :) drupal.org/node/2404989
David Barratt
1

Es gibt auch das Composer-Modul , das ein Drush-Wrapper für Composer ist. Ihr Modul kann dann eine eigene Composer-Datei bereitstellen, mit der Drush zusätzliche Abhängigkeiten für Ihr Modul herunterlädt - oder eine Site, wenn Sie beispielsweise mindestens ein "benutzerdefiniertes" Modul für Ihre Drupal-Site verwenden.

Ich empfehle auch, dieses Drupal8 / Composer-Seminar von der DrupalCon Munich 2012 anzuschauen: http://munich2012.drupal.org/content/drupal-has-dependencies-lets-manage-them

Tenken
quelle
Drush Composer ist nur ein Wrapper um Composer. Wenn Sie damit die Composer-basierten Anforderungen von Drupal ändern, wird die Root- composer.jsonDatei von Drupal geändert . Auch das Video für München 2012 ist nicht mehr verfügbar.
Paul-m
0

Ja.

Es ist akzeptabel, Composer so zu verwenden, wie es verwendet werden soll. :-)

Bearbeiten:

Dieses Paket hilft Ihnen bei der Verwaltung Ihres Composer-basierten Drupal-Projekts: https://github.com/drupal-composer/drupal-project

paul-m
quelle
Hast du ein Zitat?
David Barratt
Ich habe folgendes: composer create-project drupal/drupal drupal_root ~8@dev --keep-vcs cd drupal_root composer require vendor/package ~1... entscheide, dass du das Paket nicht brauchst ... git checkout -- composer.json composer updateUnd das möchte ich behalten.
Paul-m
Dadurch wird die Root-Datei composer.json weiterhin geändert. Sie müssten Ihre Änderungen immer noch mit den Änderungen von Drupal zusammenführen. Oder schlimmer noch, wenn jemand seine Composer-Datei nicht wie angegeben aktualisiert, können schwerwiegende Fehler oder kritische Sicherheitslücken auftreten. Wie kommst du darum herum?
David Barratt
Das tust du nicht. Du musst diese Dinge tun. Derzeit gibt es für Drupal 8 kein automatisches Komponistenmaterial, außer für Skripte, die Sie möglicherweise dafür erstellen.
Paul-m
Wenn Sie Änderungen mit Drupal zusammenführen müssen, ist das nicht genau der Grund, warum Sie den Kern nicht ändern?
David Barratt