Gemfile und Plugin-Verbesserungen

Hallo, Discourse-Team,

ich möchte euch eine interessante Lösung für die Gemfile-Verwaltung im Plugin-Verzeichnis und das Hinzufügen erforderlicher externer Gems anbieten:

# Lade die Gemfiles der Plugins
Dir.glob File.expand_path("../plugins/*/{Gemfile}", __FILE__) do |file|
  eval_gemfile file
end

Wenn wir dies in das Haupt-Gemfile aufnehmen, können wir die Gemfiles der Plugins laden.

Lass uns diese Lösung diskutieren.

P.S. Die DSL-Dokumentation für eval_gemfile findest du hier: https://apidock.com/ruby/v2_6_3/Bundler/Dsl/eval_gemfile

2 „Gefällt mir“

Das ist interessant! Momentan können Plugins Gems anfordern, indem sie den gesamten rekursiven Abhängigkeitsbaum in der plugin.rb-Datei auflisten, z. B.:

2 „Gefällt mir“

Danke, das ist genau das, was ich gesucht habe.
Aber ich finde, meine Entscheidung ist für mich klarer und verständlicher.
Gründe (meiner Meinung nach):

  1. plugin.rb bleibt sauberer.
  2. Gemfile ist für Rails-Entwickler verständlicher.
1 „Gefällt mir“

Leider bedeutet dies, dass die Lock-Datei ein sich ständig veränderndes Ziel wird, und wir diese in der Versionskontrolle bereitstellen.

Gem-Dateien sind zwar praktisch, aber solange wir keine Delta-Lock-Dateien bereitstellen können, wird eine solche Lösung nicht funktionieren.