GitHub上のDiscourseリポジトリをフォークしました。サイト上の既存のDiscourseインストールをこれに置き換えるにはどうすればよいですか?

GitHub で Discourse リポジトリをフォークしました。サイトにある既存の Discourse インストールをこれに置き換えるにはどうすればよいですか?すべて試しましたが、毎回エラーが発生しました。app.yml ファイルに GitHub からの独自の Discourse リポジトリを追加しましたが、エラーのため続行できませんでした。変更を加えても、常に元の Discourse が再インストールされてしまいます。このプロセスを正しく実行するにはどうすればよいですか?

具体的に書くと役立ちます。

「いいね!」 1

再確認したところ、分析していたディスコースに変更を加え、その変更が管理パネル内の更新ページに表示されていることに気づきました。現在更新していますが、調整が正しく機能すれば、このメッセージをそれに応じて修正します。

これらは私のアプリの app.yml ファイルの設定です。エラーなく再構築しましたが、その後の確認で、ディスコースは問題なく動作しているものの、行った変更が表示されません。

run:
  - exec: echo "Beginning of custom commands"
  ## If you want to set the 'From' email address for your first registration, uncomment and change:
  ## After getting the first signup email, re-comment the line. It only needs to run once.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec:
     cd: /var/www/discourse
     cmd:
         - sudo -u discourse git remote set-url origin https://github.com/KilicSelcuk/discourse.git
         - sudo -u discourse git fetch origin
         - sudo -u discourse git checkout origin/main
         - sudo -u discourse git remote set-branches --add origin main
         - sudo -u discourse git remote set-branches origin tests-passed
         - sudo -u discourse git reset --hard origin/main
  - exec: echo "End of custom commands"

ソースを表示して、6行目あたりを見ると、バージョン文字列のコミットハッシュは、フォークしたリポジトリの最新のコミットに対応していますか?

タスクを完了したと思ったのですが、効果がないようです。管理者の更新ページで確認できる最新の更新は次のとおりです: https://github.com/KilicSelcuk/discourse/commit/e44347414a8325ec25e5892c35bcd889d39a6668。

しかし、実際に行った変更はここに反映されています: History for 。 - KilicSelcuk/discourse · GitHub

要するに、実装した変更が更新ページに表示されていません。さらに、再構築を実行しても、リポジトリの更新が組み込まれません。変更が適用されていれば、表示されるはずです。

私の最新の構成は次のとおりです。

## ビルド後に実行するカスタムコマンド
run:
  - exec: echo "カスタムコマンドの開始"
  ## 初回登録時の「From」メールアドレスを設定するには、コメントを解除して変更してください。
  ## 最初のサインアップメールを受信した後、行を再コメントしてください。一度だけ実行する必要があります。
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec:
     cd: /var/www/discourse
     cmd:
         - sudo -u discourse git remote set-url origin https://github.com/KilicSelcuk/discourse.git
         - sudo -u discourse git fetch origin
         - sudo -u discourse git checkout origin/main
         - sudo -u discourse git remote set-branches --add origin main
#         - sudo -u discourse git remote set-branches origin tests-passed
#         - sudo -u discourse git branch -u origin/main
         - sudo -u discourse git reset --hard origin/main

この問題の解決は有益でしょう。フォーラムで役立つリソースを見つけることができませんでしたが、後続の人々のためのガイドとして役立つかもしれません。

それは通常悪い考えです。プラグインで変更を行うべきです。

「いいね!」 2

実際、私は元々そうしていましたが、プラグインがコアに統合された後は、それを変更できなくなりました。残念ながら、提案された解決策も効果がありませんでした。Overriding user_guardian.rb in a plugin (no fork necessary!) - #24

プラグインをフォークした場合は、含まれているプラグインを削除して、自分のバージョンをクローンする必要があります。

この件については、別のトピックでもお伝えしたと思います。アプリ全体や他のすべてのプラグインではなく、プラグインだけをフォークする必要があります。

「いいね!」 1

プラグインをインストールしようとすると、常にエラーが発生します。時間があれば、もう一度試します: Overriding user_guardian.rb in a plugin (no fork necessary!) - #24

それがあなたの問題を解決する方法です。エラーが発生し、ヘルプが必要な場合は、エラーの内容を正確に伝え、yml ファイルのプラグインセクションと、フォークしたプラグインへのリンクを含める必要があります。

「いいね!」 4

残念ながら、問題の解決に懸命に取り組んでいますが、この件に関する不具合も共有しましたが、まだ解決策は見つかっていません。Overriding user_guardian.rb in a plugin (no fork necessary!) - #24

設定を行っていますが、間違いがあると思いますか? Discourseのアップデートでは変更があったことを示していますが、ローカルリポジトリからの変更が表示され、Discourseからの変更が表示されません。アップデートしても何も変わりません。アップデートは表示されたままです。(私の変更を認識していると思いますが、アップデートするとメインリポジトリから取得されます。)

## ビルド後に実行するカスタムコマンド
run:
  - exec: echo "カスタムコマンドの開始"
  ## 最初の登録の「差出人」メールアドレスを設定したい場合は、コメントを解除して変更してください。
  ## 最初のサインアップメールを受信したら、行を再度コメントアウトしてください。一度だけ実行する必要があります。
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec:
     cd: /var/www/discourse
     cmd:
         - sudo -u discourse git remote set-url origin https://github.com/KilicSelcuk/discourse.git
         - sudo -u discourse git fetch --tags --prune-tags --prune --force origin
         - sudo -u discourse git checkout origin/main
         - sudo -u discourse git remote set-branches --add origin main
         - sudo -u discourse git remote set-branches origin tests-passed
#         - sudo -u discourse git branch -u origin
         - sudo -u discourse git reset --hard origin/main
  - exec: echo "カスタムコマンドの終了"

はい。フォークしたプラグインのみを含める方法を説明しましたが、あなたはそうしていません。

「いいね!」 4

Indeed, I have undertaken this task: Overriding user_guardian.rb in a plugin (no fork necessary!) - #24. As you suggested, I experimented with both methods. The first approach resulted in an error, as documented here: Overriding user_guardian.rb in a plugin (no fork necessary!) - #24.

The second method rendered the site inaccessible. I am exploring alternative solutions in my quest for resolution, but progress has been limited, prompting me to consider other avenues.

Since I prefer not to make extensive modifications, I contemplated forking Discourse. I would simply update my fork with the latest changes from the main repository each time, then reapply only the modifications I have made, accepting this approach.

My primary challenge lies in identifying an effective and correct solution. I am willing to delete and rewrite the code, trying new approaches. However, in the face of uncertain errors, I am unfortunately unable to produce a definitive resolution.

thanks

@pfaffman が提案するように実行してください。

クライアントでもこのようにしており、これが最善の方法です。

特に経験の浅い開発者である場合、メインリポジトリをフォークすると問題が発生します。

「いいね!」 1

それはフルタイムの仕事です。何年も前にこの言葉を使った人々はまだ後悔しており、当時は物事はずっとゆっくりと進んでいました。

すでにこれを行っていますが、それでもエラーが発生します。お手伝いいただきありがとうございますが、これは以前に2、3回言及しました :confused:

おっしゃる通りですが、コアプラグインに加えられた更新を自分のプラグイン内に保持するにはどうすればよいでしょうか?コアファイルをコピーしてリポジトリにアップロードすべきではありませんか?それとも、このプロセスを自動化する方法はありますか?

ありがとうございます

フォークしたプラグインを試したときに何が問題だったのか共有していません。

「いいね!」 1

もう一度試したところ、今回発生したエラーの詳細(ほとんどすべて)を含めました。確認していただけますでしょうか: Overriding user_guardian.rb in a plugin (no fork necessary!) - #24

@kuaza このトピックに#unsupported-install のタグを付け、クローズします。今後、ここでヘルプを得たい場合は、公式のインストール手順に従ってください。幸運を祈ります!

上記には、@pfaffman@merefield からのいくつかのヒントがあり、これらを使用して Discourse の操作方法を理解するのに役立つことを願っています。

「いいね!」 2