私はDrupal 8およびcomposerで作業を始めたばかりで、更新ワークフローがどのように機能するかを理解しようとしています。 Drupal 7台のサーバーを何年もの間管理していますが、Composerの部分は私をつまずかせています。
現在、Drupalインストールのルートフォルダーから(メンテナンスモードを有効にして)composer outdated
]を実行すると、更新が必要な一連のパッケージのリストが表示されます。
ドキュメントからわかる限り、「drupal /」で始まるパッケージのみを更新する必要があります。コンソールとコアだけが古くなっていると想定して、composer update drupal/console drupal/core --with-dependencies
を実行すると、更新が実行され、処理が実行されます。これが完了した後、composer outdated
を再度実行すると、composerによると古いパッケージがまだ表示されます。それは意図されていますか?または、これらのパッケージを更新する必要がありますか?
Drupalは特定のバージョンのパッケージを使用して構築されているので、それらすべてを更新するとおそらくいくつかの問題が発生しますよね?どのパッケージを更新する必要があるか、どのパッケージを更新する必要があるかを誰かが知っているはずです。特定のバージョンのままですか?
これは、composer outdated
を実行したときに得られるものです。
alchemy/zippy 0.4.3 0.4.8 Zippy, the archive manager companion
composer/installers v1.4.0 v1.5.0 A multi-framework Composer library installer
consolidation/annotated-command 2.8.1 2.8.2 Initialize Symfony Console commands from annotated command class methods.
consolidation/output-formatters 3.1.12 3.1.13 Format text by applying transformations provided by plug-in formatters.
cweagans/composer-patches 1.6.2 1.6.4 Provides a way to patch Composer packages.
dflydev/dot-access-data v1.1.0 v2.0.0 Given a deep data structure, access data by dot notation.
drupal/php 1.0.0-beta1 1.0.0-beta2 Allows embedded PHP code/snippets to be evaluated. Enabling this can cause security and performance issues as it allows users to execute PHP code on your site.
egulias/email-validator 1.2.14 2.1.3 A library for validating emails
fabpot/goutte v3.2.1 v3.2.2 A simple PHP Web Scraper
gabordemooij/redbean v4.3.4 v5.0 RedBeanPHP ORM
jcalderonzumba/gastonjs v1.0.3 v1.2.0 PhantomJS API based server for webpage automation
phpdocumentor/reflection-docblock 2.0.5 4.2.0
phpspec/prophecy v1.7.2 1.7.3 Highly opinionated mocking framework for PHP 5.3+
phpunit/php-code-coverage 2.2.4 5.3.0 Library that provides collection, processing, and rendering functionality for PHP code coverage information.
phpunit/php-file-iterator 1.4.2 1.4.5 FilterIterator implementation that filters files based on a list of suffixes.
phpunit/php-token-stream 1.4.11 2.0.2 Wrapper around PHP's tokenizer extension.
phpunit/phpunit 4.8.36 6.5.5 The PHP Unit Testing framework.
phpunit/phpunit-mock-objects 2.3.8 5.0.6 Mock Object library for PHPUnit
sebastian/comparator 1.2.4 2.1.1 Provides the functionality to compare PHP values for equality
sebastian/diff 1.4.3 2.0.1 Diff implementation
sebastian/environment 1.3.8 3.1.0 Provides functionality to handle HHVM/PHP environments
sebastian/exporter 1.2.2 3.1.0 Provides the functionality to export PHP variables for visualization
sebastian/global-state 1.1.1 2.0.0 Snapshotting of global state
sebastian/recursion-context 1.0.5 3.0.0 Provides functionality to recursively process PHP variables
sebastian/version 1.0.6 2.0.1 Library that helps with managing the version number of Git-hosted PHP projects
symfony-cmf/routing 1.4.1 2.0.3 Extends the Symfony2 routing component for dynamic routes and chaining several routers
symfony/browser-kit v3.3.10 v4.0.3 Symfony BrowserKit Component
symfony/class-loader v3.2.14 v3.4.3 Symfony ClassLoader Component
symfony/config v3.2.14 v4.0.3 Symfony Config Component
symfony/console v3.2.14 v4.0.3 Symfony Console Component
symfony/css-selector v3.3.10 v4.0.3 Symfony CssSelector Component
symfony/debug v3.4.3 v4.0.3 Symfony Debug Component
symfony/dependency-injection v3.2.14 v4.0.3 Symfony DependencyInjection Component
symfony/dom-crawler v3.4.3 v4.0.3 Symfony DomCrawler Component
symfony/event-dispatcher v3.2.14 v4.0.3 Symfony EventDispatcher Component
symfony/expression-language v3.4.3 v4.0.3 Symfony ExpressionLanguage Component
symfony/filesystem v3.4.3 v4.0.3 Symfony Filesystem Component
symfony/Finder v3.4.3 v4.0.3 Symfony Finder Component
symfony/http-foundation v3.2.14 v4.0.3 Symfony HttpFoundation Component
symfony/http-kernel v3.2.14 v4.0.3 Symfony HttpKernel Component
symfony/process v3.2.14 v4.0.3 Symfony Process Component
symfony/routing v3.2.14 v4.0.3 Symfony Routing Component
symfony/serializer v3.2.14 v4.0.3 Symfony Serializer Component
symfony/translation v3.2.14 v4.0.3 Symfony Translation Component
symfony/validator v3.2.14 v4.0.3 Symfony Validator Component
symfony/var-dumper v3.4.3 v4.0.3 Symfony mechanism for exploring and dumping PHP variables
symfony/yaml v3.2.14 v4.0.3 Symfony Yaml Component
twig/twig v1.35.0 v2.4.4 Twig, the flexible, fast, and secure template language for PHP
webflo/drupal-Finder 1.0.0 1.1.0 Helper class to locate a Drupal installation from a given path.
これはかなりバニラですDrupalインストール。私はいくつかのモジュールと1つのテーマを追加しました。このサイトは公式ドキュメントで言及されているdrupal-composerテンプレートを使用して構築されたことにも言及する必要があります( https://github.com/drupal-composer/drupal-project )。
正直なところ、典型的なDrupalサイトのようなコードベースの場合、これは解決するのが難しい問題です。たとえば、昨日VMコア8.4.5から8.5.0にアップグレードしたばかりの Drupal Drupal Prod codebaseを見てみましょう。
~8.4
ですcomposer update drupal/core --with-dependencies
を実行しても_ Drupalコアは更新されませんでした。 8.4.5で動かなくなったcomposer update
を実行すると(核オプションの詳細-contribモジュールやその他の依存関係を含むすべてが更新され、問題が発生し、複雑なサイトで個々の更新をテストするのが難しくなります)Drupal core ...しかし、それは理想的ではありません。だから私は問題でそれについて尋ねました composerは8.4.4から8.5.0-alpha1へのアップグレードに失敗します で、どの依存関係が私のDrupalコアアップグレードをブロックしているかを突き止めようとしましたComposerコマンドを使用:
composer prohibits drupal/core:8.5.0
これは、symfonyのさまざまなコンポーネントをリストアップしていました...そこに座って、14個のコンポーネントのそれぞれをcomposer update
コマンドにコピーして貼り付けることができましたが、それは面白くなかったので、続けていました(無駄に)。
コメントスレッドの後半で、@ eiriksmは、私のプロジェクトにはsymfony/config
(drushおよびdrupal consoleの依存関係)があるため、composer update drupal/core symfony/config --with-dependencies
を実行する必要があると述べました。
更新コマンドにsymfony/config
を追加する必要があるだけで、他のすべてのsymfonyコンポーネントを追加する必要があることをどのように理解できたのか、まだわかりません...もしそうなら、これを更新しようとします他の人が将来的に利益を得ることができるように、その情報で答えてください!
composer)でマイナーバージョン(8.3> 8.4、8.4> 8.5)を更新することは悪夢です。
たぶんcomposer update
は「採用」されるべきであり、モジュールバージョンをcomposer.json
で慎重に管理する必要があるという結論に達していますモジュールを更新します。それは本当にそれほど大きなことではありません。
それは本当に作曲家の前にそれをやった方法です。 drush up modulename
などを使用して、一度にすべてではなく1つずつ更新するモジュールを決定しました。
これは、特定のバージョン番号のモジュールをインストールすることをお勧めします:
composer require "drupal/address:1.0"
これではない
composer require "drupal/address:~1.0"
"~1.0"
は"1.0"
の後半でいつでもcomposer.json
に変更できますが、特定のバージョン番号をインストールする場合は必要ありません。