web-dev-qa-db-ja.com

インストールする正しい方法は何ですかDrupal with Composerコアの問題に取り組みたい場合は?

ローカルDrupalサイトをDrupalコアがgitリポジトリになるようにインストールするので、パッチで作業できます。

Drushなどのツールも必要なので、gitクローンを作成するだけでは機能しません。コアのgitクローンにそれらをインストールすると、composer.jsonコアに属するファイル。

これを行う正しい方法は何ですか?

6
joachim

本当に正しい、または最善の方法があるかどうかはわかりません。私がやり取りしたすべてのコア開発者には、それぞれに最適な独自のセットアップがあります。

私の一般的なセットアップは

  • リモートブランチごとのディレクトリ:現在、drupal-8.8.x、drupal 8.9.x、およびdrupal 9.0.x
  • issue-comment形式の各パッチのgitブランチ:3113284-02、3113284-04)

インストール、クリーニング、diff、パッチの生成、テストの実行などのためのシェルスクリプトがたくさんあるので、これを行います。これらのスクリプトはすべて無視されます。

Drushに関する限り、私はグローバルインストールを維持し、タグを定期的にチェックアウトしています。次に、各ブランチディレクトリに 。envrc を設定し、すべてを正しく$ PATHします。これにより、composer.jsonへの変更が防止されます。

ただし、いくつか試してみることができます。しばらく前に、特定のPHPバージョンでテストをローカルで実行することは、ポストコンポーザースクリプトを介してphpunitを更新することを意味しました。次に、git diff ...を実行する前にcomposer.jsonとcomposer.lockを復元する必要がありました。パッチ/相互差分を生成します。drushでも同様のことができます。

  • git pull Origin/8.8.x
  • 作曲家はdrush/drushを必要とします:^ 10
  • git checkout composer.json composer.lock

上記のアプローチは、私のスクリプトの更新に関する私の最終リストにあります。

1
mpdonadio

これを解決するには、Drushを個別にインストールし(まだDrush 8を使用しています)、GitでダウンロードしたDrupalのインストールでDrushコマンドを実行します。

1
Damien McKenna

preferred-installsourcelike contribモジュールのドキュメント これは私のニーズに合います。

composer create-project --no-install drupal/recommended-project:8.8.x-dev se-291135
cd se-291135/

これにより、^ 8.8(8.8.2のように)が必要になるため、composer.jsonを編集して、すべての出現箇所を8.8.x-devと追加し、preferred-install

    "config": {
        "preferred-install": {
            "drupal/core": "source",
            "*": "dist"
        },
        ...

ロックファイルを削除する必要がある理由がわかりません:-/

rm composer.lock

これらの設定でインストールすると、drupal/code inweb/coreヘッドを取り外してあります。それを修正すれば、ほぼ完了です。

composer install
cd web/core
git checkout Origin/8.8.x

パッチが確実に一致するようにするにはdrupal a git diffエイリアスが役立ちます

alias corediff='git diff --src-prefix=a/core/ --dst-prefix=b/core/'
1
Clemens Tolboom