@leighno5 さん、こんにちは。
私の個人的な経験に基づいた考えをお伝えしますと、あなたが「フォーク」で行おうとしていることを Ruby のプラグインとして実装する方が、Discourse 用のプラグインを簡単に書ける(あるいは任意の Rails クラスを修正できる)ほど Ruby と Rails を理解している場合、はるかに簡単です。
もし Discourse プラグインを書くのに十分なほど Rails と Ruby を簡単に理解できていないなら、私の経験上、Discourse をフォークしてコア部分をいじくり回すのは「誤った方向」だと言えます。
比喩を挙げるとすれば(単純な考えで申し訳ありませんが)、こうなります。
「歩くのが難しい人が、代わりに走ることに決める」
もしよろしければ、少し説明させてください。
私が Rails アプリケーションの作成(Discourse とは直接関係ありません)を始め、Discourse プラグインの作成を試みる前には、少し行き詰まっていました。また、Discourse に少しイライラしていたかもしれません。それは、初めてゴルフボールを打とうとするときのようでした。ボールは真っすぐ飛ばず、フェアウェイの中央に打つには多くの練習が必要です。Discourse をフォークすることは、ショートアイアンでチップショットやパットができるようになる前に、練習場でドライバーを振り回すようなものです!
Discourse のいじくり回しからしばらく(数ヶ月ほど)離れ、実際にゼロからいくつかの Rails アプリケーションを構築する仕事に集中しました。そして(その時だけ)、Rails に関する「直感的な」知識を身につけ始めました。その後、Discourse を修正することに決めました(現在は生産環境で私が作成した 6 つのカスタムプラグインを実行しています)が、すべてが直感的になり、Ruby コアを修正するプラグインも非常に簡単になりました。
Ruby は非常に柔軟です。あらゆるクラスやオブジェクトをオーバーライドできます。Ruby のあらゆる側面を再定義することも可能です。ある程度の経験を得ると、「なんて Ruby は柔軟で(そして強力な)んだ!」と驚き始め、スーパーマンのように Ruby と Rails で空を飛べるようになるため、「危険な存在」になり始めます。その時点では、Ruby と Rails の旅の始まりにすぎず、終わりではありません!
2020 年に得た Ruby と Rails の知識、つまり今の私が知っていることを基にすれば、あなたが提案しているように Ruby や Rails のコアを変更するために Discourse をフォークすることはありません。なぜなら、Ruby クラスの基礎とメタプログラミングの基礎を理解していれば、プラグインを使って Ruby クラスをオーバーライド・修正するのは非常に簡単だからです。
私が言いたいのは、直接的で申し訳ありませんが、Discourse のコアをいじって小さな Ruby の変更を加える必要があると思うなら、その人は Ruby と Rails を十分に理解していないということです。もし理解していれば、コアをいじるのではなく、クラスをオーバーライドする簡単なプラグインを書き、モンキーパッチングを愛するはずです。
一方、EmberJS を React と Ant Design に置き換えるような「狂気じみた」ことをして苦しまねばならない場合、フォークするしかありません!しかし、私の見解では、「Discourse」は「JavaScript ライブラリ」によって定義されるものではありません。Discourse を定義しているのは、コア開発チーム(人々)のスキル、細部への注意、顧客対応、オープンソースコード開発に対するチームアプローチ、SPA 機能のパイプライン、そして彼らのすべての努力です。Ant Design(React 付き)や VueJS を好むからといって、そんな脳力をすべて捨て去るのは(私の考えでは)少し狂気じみています。
単に Discourse のコアを少しだけ修正しようとしている場合も、これも全く同じことが言えます。それをするためにフォークして、「人々」を捨てるのは少し「おかしい」ことです。彼らこそが「本当の」Discourse(コードではない)なのですから。
これは私が 2020 年に Ruby と Rails を学んだ個人的な旅からの発言にすぎません。今は基礎が簡単になり、「危険な存在」になりつつあります(笑)。私は「何でもモンキーパッチでいじれる」ようになりましたが、それが常に良いこととは限りません。それが Discourse プラグインの存在理由です。
コアは岩のように固く保ち、プラグインを使って Discourse と「いじくり回る」のを楽しんでください。
お役に立てれば幸いです。
なお、この返信を書いている間に、あなたはこう書かれました:
これが私の主張を証明していると思いませんか?
Discourse での「プラグイン」作成は(あるレベルでは)「Ruby コード」の作成であり、他の人にとっては(EmberJS の面で)もっと深いものです。
Discourse プラグインの作成を始める前に、私の友好的なアドバイス(あなたにとって価値がないように見えるかもしれませんが)は、まずいくつかの Ruby on Rails アプリを開発することです。Ruby と Rails の道筋、少なくとも基礎を学んでください。その後、あなたは上記の質問に自分で答えられるようになるでしょう。
私の見解では、Discourse プラグインを書くための最短ルートは、まず Rails を学ぶことです。
お役に立てれば幸いです!