it-swarm.com.de

Wenden Sie Patches nicht erneut an, wenn Sie ein neues Modul benötigen?

Ich stoße immer wieder auf das Problem, dass vorhandene Pakete entfernt und neu installiert werden, wenn ein neues Modul mit Composer erforderlich ist, wenn in composer.json Patches definiert sind. Zum Beispiel:

$ lando composer require drupal/media_entity_browser
    1/2:        https://packages.drupal.org/8/drupal/provider-2019-2$bae9fca7243956d61e44a716bdfb5c872f0f3e1a0b48b1dccfcae53d7e59c86f.json 
    2/2:        https://packages.drupal.org/8/drupal/provider-2019-1$25356ca628b704d49a0ea504e6374f921a2b54d845d142aae1708cb94088516f.json 
    Finished: success: 2, skipped: 0, failure: 0, total: 2
    1/2:        http://repo.packagist.org/p/provider-latest$56447e2294826167894155c32ceb596c58b3b2af059facd78694060f8a4d8c1c.json 
    2/2:        http://repo.packagist.org/p/provider-2019-04$a612146345a708aa360ee61a695dd52d8d0faa79e136de5e075c95860af7c956.json 
    Finished: success: 2, skipped: 0, failure: 0, total: 2
Using version ^[email protected] for drupal/media_entity_browser 
./composer.json has been updated 
Gathering patches for root package. 
Removing package drupal/core so that it can be re-installed and re-patched. 
  - Removing drupal/core (8.7.3)
Deleting web/core - deleted 
> DrupalProject\composer\ScriptHandler::checkComposerVersion 
Loading composer repositories with package information 
Updating dependencies (including require-dev) 
    1/4:        https://ftp.drupal.org/files/projects/media_entity-8.x-1.8.Zip 
    2/4:        https://ftp.drupal.org/files/projects/entity-8.x-1.0-rc3.Zip 
    3/4:        https://ftp.drupal.org/files/projects/entity_browser-8.x-2.1.Zip 
    4/4:        https://ftp.drupal.org/files/projects/media_entity_browser-8.x-1.0-beta3.Zip 
    Finished: success: 4, skipped: 0, failure: 0, total: 4
Package operations: 5 installs, 0 updates, 0 removals 
Gathering patches for root package.
Gathering patches for dependencies. This might take a minute

Für so etwas wie drupal/core Ist dies wirklich ein Problem auf meinem lokalen, da es eine Weile dauert, das Paket herunterzuladen und neu zu installieren. Ich kann anscheinend kein Muster finden. Manchmal scheint es, dass das neu gepatchte Paket eine Anforderung des einen ist, das benötigt wird, manchmal sind sie nicht miteinander verbunden oder es werden überhaupt keine Pakete erneut gesendet.

Ist noch jemand darauf gestoßen? Gibt es einen Weg, um das zu umgehen? Im Idealfall wenden wir Patches nur dann erneut auf ein Paket an, wenn es aktualisiert wird.

Hier ist meine composer.json, da sie angefordert wurde:

{
    "name": "drupal/drupal",
    "description": "Drupal is an open source content management platform powering millions of websites and applications.",
    "type": "project",
    "license": "GPL-2.0-or-later",
    "require": {
        "composer/installers": "^1.0.24",
        "cweagans/composer-patches": "^1.6",
        "drupal/address": "^1.4",
        "drupal/addtoany": "^1.10",
        "drupal/admin_toolbar": "^1.26",
        "drupal/antibot": "^1.2",
        "drupal/better_exposed_filters": "^[email protected]",
        "drupal/blazy": "^[email protected]",
        "drupal/ckeditor_media_embed": "^1.3",
        "drupal/color_field": "^2.0",
        "drupal/config_inspector": "^[email protected]",
        "drupal/config_update": "^1.6",
        "drupal/console": "~1.0",
        "drupal/context": "^[email protected]",
        "drupal/core": "^8.7.0",
        "drupal/csv_serialization": "^1.4",
        "drupal/ctools": "^3.2",
        "drupal/delete_all": "^1.0",
        "drupal/devel": "^2.0",
        "drupal/draggableviews": "^1.2",
        "drupal/dropzonejs": "^[email protected]",
        "drupal/ds": "3.x-dev",
        "drupal/entity_clone": "^[email protected]",
        "drupal/entity_print": "^2.1",
        "drupal/entity_update": "^[email protected]",
        "drupal/entity_usage": "^[email protected]",
        "drupal/features": "^3.8",
        "drupal/file_mdm": "^1.1",
        "drupal/form_options_attributes": "^1.0",
        "drupal/geocoder": "^2.0",
        "drupal/geofield_map": "^2.23",
        "drupal/google_analytics": "^3.0",
        "drupal/google_tag": "^1.1",
        "drupal/honeypot": "^1.29",
        "drupal/htmlmail": "^[email protected]",
        "drupal/imagemagick": "^2.4",
        "drupal/imagick": "^1.2",
        "drupal/imce": "^1.7",
        "drupal/inline_entity_form": "^[email protected]",
        "drupal/languageicons": "^[email protected]",
        "drupal/layout_builder_at": "^2.8",
        "drupal/layout_builder_modal": "^[email protected]",
        "drupal/layout_builder_restrictions": "^2.2",
        "drupal/media_entity": "^2.0",
        "drupal/media_entity_browser": "2.x-dev",
        "drupal/media_entity_generic": "^[email protected]",
        "drupal/media_entity_image_exif": "1.x-dev",
        "drupal/media_entity_video": "^[email protected]",
        "drupal/menu_export": "^1.2",
        "drupal/menu_per_role": "^1.0",
        "drupal/metatag": "^1.8",
        "drupal/migrate_plus": "^4.1",
        "drupal/migrate_source_csv": "^2.2",
        "drupal/migrate_tools": "^4.1",
        "drupal/panelbutton": "^1.2",
        "drupal/paragraphs": "^1.5",
        "drupal/path_redirect_import": "^[email protected]",
        "drupal/pathauto": "^1.3",
        "drupal/permissions_by_term": "^2.10",
        "drupal/recaptcha": "^2.4",
        "drupal/redirect": "^1.3",
        "drupal/redis": "^1.1",
        "drupal/rename_admin_paths": "^1.1",
        "drupal/restrict_ip": "^1.3",
        "drupal/search_api": "^1.12",
        "drupal/search_api_autocomplete": "^1.2",
        "drupal/search_api_page": "^[email protected]",
        "drupal/slick": "^[email protected]",
        "drupal/slick_media": "^[email protected]",
        "drupal/slick_paragraphs": "^2.0",
        "drupal/smtp": "^[email protected]",
        "drupal/stage_file_proxy": "^[email protected]",
        "drupal/superfish": "^1.3",
        "drupal/taxonomy_menu": "^3.4",
        "drupal/tmgmt": "^1.7",
        "drupal/twig_Tweak": "^2.1",
        "drupal/views_accordion": "^1.2",
        "drupal/views_block_area": "^[email protected]",
        "drupal/views_bulk_operations": "^2.5",
        "drupal/views_data_export": "^[email protected]",
        "drupal/webform": "5.1",
        "drupal/weight": "^3.1",
        "drush/drush": "^9.2",
        "league/iso3166": "^2.1",
        "solarium/solarium": "3.8",
        "wikimedia/composer-merge-plugin": "^1.4"
    },
    "require-dev": {
        "webflo/drupal-core-require-dev": "^8.7.0"
    },
    "minimum-stability": "dev",
    "prefer-stable": true,
    "config": {
        "preferred-install": "dist",
        "autoloader-suffix": "Drupal8",
        "sort-packages": true
    },
    "conflict": {
      "doctrine/common": ">2.8"
    },
    "extra": {
        "_readme": [
            "By default Drupal loads the autoloader from ./vendor/autoload.php.",
            "To change the autoloader you can edit ./autoload.php.",
            "This file specifies the packages.drupal.org repository.",
            "You can read more about this composer repository at:",
            "https://www.drupal.org/node/2718229"
        ],
        "installer-paths": {
            "core": ["type:drupal-core"],
            "modules/contrib/{$name}": ["type:drupal-module"],
            "profiles/contrib/{$name}": ["type:drupal-profile"],
            "themes/contrib/{$name}": ["type:drupal-theme"],
            "drush/contrib/{$name}": ["type:drupal-drush"],
            "modules/custom/{$name}": ["type:drupal-custom-module"],
            "themes/custom/{$name}": ["type:drupal-custom-theme"]
        },
        "patches": {
            "drupal/core": {
                "Compatibility with JSON:API": "https://www.drupal.org/files/issues/2018-09-20/2942975-24.patch",
                "Layout builder revisions": "https://www.drupal.org/files/issues/2019-06-06/3033516-8.drupal.Revision-UI-on-Layout-Builder-does-not-function-correctly.patch",
                "Error: Call to a member function getLabel() after enable layout_builder": "https://www.drupal.org/files/issues/2018-07-16/2985882-entityfield-2.patch",
                "media_bundle shim": "patches/295028764_media-bundle-shim.patch"
            },
            "drupal/dropzonejs": {
                "The 'media_bundle' entity type does not exist.": "https://www.drupal.org/files/issues/2019-04-25/2820183-19.patch"
            },
            "drupal/paragraphs": {
                "Paragraphs Translation": "https://www.drupal.org/files/issues/2018-12-14/experimental-widget-asymetric-translation-2904705-47.patch"
            },
            "drupal/entity_reference_revisions": {
                "Fixes broken revisioning on paragraph updates": "https://www.drupal.org/files/issues/2019-01-29/3025709-3.patch"
            },
            "drupal/permissions_by_term": {
                "Use custom 403 destination set by admin form": "https://www.drupal.org/files/issues/2018-11-27/3009470-403-url-settings-ignored-10.patch"
            }
        }
    },
    "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",
        "drupal-phpunit-upgrade-check": "Drupal\\Core\\Composer\\Composer::upgradePHPUnit",
        "drupal-phpunit-upgrade": "@composer update phpunit/phpunit --with-dependencies --no-progress",
        "phpcs": "phpcs --standard=core/phpcs.xml.dist --runtime-set installed_paths $($COMPOSER_BINARY config vendor-dir)/drupal/coder/coder_sniffer --",
        "phpcbf": "phpcbf --standard=core/phpcs.xml.dist --runtime-set installed_paths $($COMPOSER_BINARY config vendor-dir)/drupal/coder/coder_sniffer --"
    },
    "repositories": [
        {
            "type": "composer",
            "url": "https://packages.drupal.org/8"
        }
    ]
}
1
Mrweiner

Das Problem wird wahrscheinlich dadurch verursacht, dass einer der Kern-Patches, die Sie anwenden möchten, nicht vorhanden ist oder nicht heruntergeladen werden konnte.

Ich habe mit Ihrem composer.json Eine saubere Drupal 8-Installation getestet. Beim Ausführen von composer update Erhalte ich die folgende Fehlermeldung:

Patch konnte nicht angewendet werden! Überspringen. Der Fehler war: The "patches/295028764_media-bundle-shim.patch" file could not be downloaded: failed to open stream: No such file or directory.

Ich habe festgestellt, dass der Patch media-bundle-shim.patch Nicht mehr verfügbar ist, also habe ich ihn aus composer.json Entfernt. Danach funktionierte alles einwandfrei und die Core-Patches wurden nicht mehr jedes Mal neu angewendet.

Sie müssen also nur den Patch aus composer.json Entfernen oder durch einen neuen ersetzen:

"drupal/core": {
  "Compatibility with JSON:API": "https://www.drupal.org/files/issues/2018-09-20/2942975-24.patch",
  "Layout builder revisions": "https://www.drupal.org/files/issues/2019-06-06/3033516-8.drupal.Revision-UI-on-Layout-Builder-does-not-function-correctly.patch",
  /* Remove the last comma from this line. */ "Error: Call to a member function getLabel() after enable layout_builder": "https://www.drupal.org/files/issues/2018-07-16/2985882-entityfield-2.patch",
  /* Remove this line. */"media_bundle shim": "patches/295028764_media-bundle-shim.patch"
},

UPDATE: Der Patch media_bundle Konnte für mich nicht angewendet werden, da es sich um einen lokalen Patch handelt.

Ich habe zwei Vorschläge, warum die Patches immer wieder neu angewendet werden:

  1. lando verursacht das Problem.
  2. Das Problem wird verursacht, weil der lokale Patch nicht ordnungsgemäß angewendet wird.

Da Sie erwähnen, dass das Problem vor dem Hinzufügen des lokalen Patches aufgetreten ist, ist es unwahrscheinlich, dass der lokale Patch nicht ordnungsgemäß angewendet wird. Ich denke, das Problem ist Lando, da Ihre composer.json - Datei bei einer sauberen Drupal - Installation nur mit Drupal und Composer) einwandfrei funktioniert.

Ich weiß nicht, ob es möglich ist, composer require Ohne Lando auf Ihrer Site auszuführen, aber wenn es möglich ist, können Sie testen, ob Lando das Problem ist, indem Sie composer require Ohne Lando ausführen.

Wenn dies nicht funktioniert, versuchen Sie, den lokalen Patch zu entfernen, um zu sehen, ob das Problem weiterhin besteht. Lokale Patch-Probleme .

Ich hoffe, dies hilft Ihnen beim weiteren Debuggen.

2
user72672

Ich denke, Sie könnten 2 "extra" Einstellungen in Ihrem composer.json Verpassen:

"enable-patching": true,
"patchLevel": {
    "drupal/core": "-p2"
},

Erläuterung:

Aus der Composer-Patches-Dokumentation :

Wenn Sie möchten, dass Ihr Projekt Patches aus Abhängigkeiten akzeptiert, muss Folgendes in Ihrer composer - Datei enthalten sein: "enable-patching": true

Auch der drupal/core": "-p2" Vermeidet Dinge, die in core/core oder core/b enden. Siehe drupal-project/composer.json und Patch Drupal core, ohne dass Dinge in core/core oder core/b enden .

1
milkovsky