標準プラグインを更新する手順

小規模なセルフホスト型Discourseサイトを、標準のDockerインストールで構築しました。長年にわたり、containers/app.ymlファイルの末尾にあるフックを編集してプラグインリポジトリをgit cloneすることで、多数のプラグインをインストールしてきました。また、プラグイン開発も少し行いました。

しかし、数か月前、多くの標準プラグインがDiscourseコアに統合されました。仮に、Discourseリポジトリ全体をフォークし、それらのプラグインの1つ(例:discourse-math)を編集し、ローカル開発環境で変更がうまく機能するようになったとします。この新しいプラグインを本番のDiscourseインスタンスに組み込む手順は何でしょうか?

ついでに聞きますが、公式プラグインをフォークする必要があるのはなぜですか?

いずれにせよ、app.yml で特定のプラグインディレクトリを削除してから、どうしても必要な場合は独自のものをクローンするためのコマンドを実行できます。たとえば、次のようになります。

<in after_code: somewhere >
    - exec:
        cd: $home/plugins
        cmd:
          - rm -r poll
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/myaccount/myplugin-replacement.git

次のようにできるかもしれませんが、確認してください。

<in after_code: somewhere >
    - exec:
        cd: $home/plugins
        cmd:
          - rm -r poll
          - git clone https://github.com/myaccount/myplugin-replacement.git

スペースにはそれほど注意を払っていません。インデントが完璧であることを確認してください。

「いいね!」 2

なぜなら、discourse-math プラグインで使用されている古いバージョンの MathJax を更新したいと考えているからです。

わかりました。不足しているのはこの行のようです。

cmd:
  - rm -r poll

ただし、poll が何であるかを明確にしてください。競合(現在発生していると思われるもの)を防ぐために、古い discourse-math ディレクトリを削除すべきだと思います。つまり、次のようなものです。

cmd:
  - -r plugins/discourse-math

これは、やみくもに実行するのに適したコマンドではなさそうですね。:slight_smile:

間違いをしても構いません、もししたら再構築すればいいのです。

私の例はpollプラグインを使ったものです。

プラグインのディレクトリを繰り返さないでください。

「いいね!」 2

@merefield ちなみに、私のフロントページのこのアニメーションがお好きかもしれません: https://discourse.marksmath.org/

作成の過程で、あなたのコードをいくつか使用しました。

「いいね!」 1

ハ、いいね、これでユーザーカードにクリックを追加して!:slight_smile:

「いいね!」 2

これでうまくいきました、@merefield さん。本当にありがとうございます!!!

「いいね!」 1

それは、公式プラグインにとって pr-welcome の変更かもしれません。もし、プラグインに依存しているすべての人の利益のために、あなたがそれに挑戦することに興味があるなら、提案するために Feature トピックを開始してください。

「いいね!」 3