Verwendung von "benutzerdefinierten" Ruby-Gems

Hallo! Ich kämpfe schon seit ein paar Tagen damit, daher ist jede Hilfe willkommen!

Ich entwickle einen Fork eines Plugins, das das discordrb Ruby Gem benötigt. Aus welchem Grund auch immer, die aktuellste Version auf discordrb | RubyGems.org | your community gem host ist 3.4.0, die ungefähr zwei Jahre alt und fehlerhaft ist.

Glücklicherweise gibt es eine aktuelle Version des Plugins hier GitHub - shardlab/discordrb: Discord API for Ruby, die aber nicht auf RubyGems veröffentlicht werden konnte :confused:

Wie kann ich die GitHub-Version dieses Gems/Dependencies verwenden? Ich habe das Gefühl, ich habe so ziemlich alles versucht.

1 „Gefällt mir“

Hast du gesehen?: Discord Bot Construction Kit 🤖

Es wird noch aktiv entwickelt. Wenn man mit den Entwicklern kürzlich gesprochen hat, wird die nächste Version „fertig sein, wenn sie fertig ist“ herauskommen. Sie arbeiten unter anderem an Thread-Unterstützung.

Das sind die gleichen Dinge. Es ist nur so, dass das Gem-Dokument nur 3.4.0 als neueste Version beansprucht. Das andere ist das offizielle Repository. Wenn du auf den Link „Homepage“ in deinem ersten Link klickst, gelangst du zu deinem zweiten Link ;). Ich habe keine Ahnung, warum das Gem-Dokument 3.4.1 nicht auflistet.

Du kannst dich auf ein GitHub-Repository beziehen, wenn du wirklich musst: https://stackoverflow.com/questions/2823492/install-gem-from-github-branch

1 „Gefällt mir“

Habe ich! Ich bin ziemlich sicher, dass unser Plugin ein Fork eines Forks davon ist. Wir benötigen in unserem Fall eine spezifische Logik, daher ist es sinnvoll, unsere eigene Version zu entwickeln.

Wie würde das im Discourse-Kontext aussehen? Ich habe das Gefühl, ich habe bereits jede Methode ausprobiert, die Abhängigkeit über GitHub in plugin.rb zu deklarieren (schau dir unseren Commit-Verlauf an :smile:)

image

Unser Build schlägt mit jeder Gem-Syntax fehl, die versucht, auf die GitHub-Quelle zu verweisen. Ich bin ziemlich sicher, dass es damit zusammenhängt, wie discourse/lib/plugin_gem.rb at main · discourse/discourse · GitHub versucht, die .gemspec-Datei für Plugin-Gems zu finden. Könntest du mir die Schritte für eine Umgehungslösung geben?

1 „Gefällt mir“

Hallo @FerrariFlunker
Hier ist ein Beispiel für ein offizielles Plugin, das eine lokale Kopie des holidays-Gems verwendet. Ich denke, Sie können ein ähnliches Muster in Ihrem Fall verwenden.

So ist es enthalten.

1 „Gefällt mir“

Eine lokale Version des Git-Repos (Hinweis: Es darf kein Submodul sein, es muss eine echte lokale Kopie sein) und die libdir-Inklusionszeilen funktionierten perfekt! Vielen Dank für Ihre Hilfe, sie wird unglaublich geschätzt @fzngagan und @merefield :+1:

Hoffentlich hilft dieses Thema anderen, diese Antwort zu finden, es war eine ziemliche Reise, das herauszufinden :smile:

2 „Gefällt mir“

Sie können den Gem auch über GitHub-Pakete veröffentlichen. Publishing a Ruby Gem to the GitHub Package Registry | michaelheap.com

3 „Gefällt mir“