2009-07-11 12 views
1

In this question habe ich meine Annahme erwähnt, dass Rubyforge-Edelsteine ​​offizieller, autoritativer und stabiler sind als Github-Gabeln. Einer der Leute, die auf meine Frage antworteten, sagte, dass meine Annahme nicht genau sei.Sind Github-Edelsteine ​​weniger stabil als Ruby-Forge-Edelsteine?

Was haben Sie beobachtet? Benutzen die Leute Github, um früh zu veröffentlichen und oft zu veröffentlichen, nur um stabile Veröffentlichungen auf RubyForge zu veröffentlichen, oder veröffentlichen Leute weniger oft auf RubyForge aus anderen Gründen (zB RubyForge ist mehr ein Ärger)?

Aktualisieren: Diese Frage ist jetzt ein wenig strittig. Github gems are defunct und rubyforge gems werden auf rubygems.org verschoben.

+0

diese Antwort Ihre Frage nicht, aber in einem Blog-Beitrag mit dem Titel "Vergessen Sie nicht Rubyforge" (http://judofyr.net/posts/ dont-forget-about-rubyforge.html), der Autor spricht über die Verwendung von Rubyforge Gem Server für reguläre Releases und über einige Probleme, die mit der Verwendung von Github als Edelstein-Server kommen. – RFelix

Antwort

4

Kein Unterschied, soweit ich das beurteilen kann.

Es gibt eine große Auswahl an Qualität/Stabilität von Edelsteinen aus beiden Quellen. Einige sind felsenfest, andere sind Pre-Alpha-Qualität.

Es hängt wirklich vom Edelsteinprojekt selbst ab.

Allerdings hat sich das Github-Modell zu einem schnelleren Turn-Around bei Problemen entwickelt. Es ist viel einfacher, ein Projekt zu forschen, einen Fehler zu beheben und es zurückzusenden, um es in die ursprüngliche Quelle aufzunehmen. So werden Bugs zumindest bei den bekannten Projekten schneller behoben. Vielleicht hilft das also, dass Projekte schneller reifen, aber ich weiß es nicht.

4

Was ich gemerkt habe, ist eine abnehmende Qualität von GEM über GitHub im Vergleich zur Gesamtqualität von GEMS bei RubyForge veröffentlicht.

IMHO gibt es mindestens zwei große Erklärung für dieses Verhalten:

-

Vor GitHub die 99% der Rubyist Subversion-abhängig war. Sie können sagen, was Sie über Subversion wollen, aber im Vergleich zu Git ist es definitiv einfacher zu benutzen und jeder kennt das trunk/tags/branches-Layout. Dann begannen die Leute nach Git zu ziehen. Nur ein extrem begrenzter Teil von Subversion-Benutzern begann, Git mit dem erforderlichen Wissen zu verwenden, und was ich bemerkte, ist, dass Leute begannen, Tags zu vergessen.

Es war einmal Tags. In Subversion wurden Leute benutzt, um eine neue Version basierend auf bestimmten Tags zu veröffentlichen, so dass Sie leicht erkennen können, welche Version Sie installiert haben und welche der stabile Zweig war.

Heutzutage sehe ich Tonnen von Bibliotheken immer in der Entwicklung in der Git-Master-Zweigstelle. Keine Tags, keine stabilen Zweige. Wenn Bibliotheken über RubyForge freigegeben wurden, wurde dem Deployment-Schritt mehr Aufmerksamkeit geschenkt.

-

GitHub macht den Verlag Schritt nicht mehr einen Streit. Das heißt, Sie können einfach ein neues GEM veröffentlichen, indem Sie einfach die Gemspec in Ihr Repository schieben.

Meiner Meinung nach könnte diese Einfachheit zu einer niedrigeren Qualität führen. Mehr weniger qualifizierte Entwickler begannen, GEMS zu vertreiben, weil es so einfach ist, ein neues Projekt mit Jeweler (oder einer ähnlichen Bibliothek) zu generieren und ein Git-Repository zu veröffentlichen. Sie wussten nicht viel mehr über Release-Management, Abwärtskompatibilität, Release-Bumps, Release-Wartung.

Oft stieß ich auf unfertige Bibliotheken, die als GEM verpackt waren, nur weil der Entwickler vergessen hatte, die .gemspec-Datei zu entfernen.Jedes Commit führte dazu, dass ein neues GEM ohne erkennbare Kohärenz und Konsistenz aufgebaut wurde.

Ich bin absolut für die "Freigabe oft" -Praxis, aber wenn es Sinn macht. Git bietet eine hervorragende Verzweigungsunterstützung, Sie müssen den Master-Zweig nicht mit Unmengen von nicht verwandten Commits durcheinander bringen und unvollendetes Stück Code freigeben, das Sie Bibliotheken nennen.

-

Last but not least, was ich wahrscheinlich am meisten hasse ist die unbegrenzte Vervielfältigung des gleichen GEM. Als RubyForge die unangefochtene GEM-Quelle war, war es ziemlich einfach ein neues Projekt zu finden und zu installieren.

IMHO, GitHub eingeführt eine unnötige Schicht der Komplexität. Zuerst haben Sie GEM beide über rubyforge als mygem und über GitHub als username-mygem. Sie müssen oft Zeit aufwenden, um herauszufinden, welches GEM am meisten aktualisiert ist und die Master-Entwicklung beinhaltet.

Darüber hinaus wurde einige beliebte GEM nicht mehr auf RubyForge aktualisiert und viele Leute verwenden sie weiterhin, nur weil RubyGems Sie nicht über neue Versionen benachrichtigt. Einfach zu verstehen, wenn Sie coolgem Release 1.2.4 installiert haben und die gleiche Bibliothek jetzt als superuser-coolgem (Version 2.0) verfügbar ist, ist RubyGems nicht schlau genug, Ihnen zu sagen, dass ein neues Update verfügbar ist.

-

Jetzt ist es Zeit für einen Haftungsausschluss.

Ich sage nicht, GitHub Benutzer produziert crappy GEMS im Vergleich zu RubyForge. Ich bin ein GitHub Benutzer und vorher war ich ein RubyForge Benutzer. Tausende von GEMS wurden erfolgreich von RubyForge nach GitHub migriert, ohne dass der Endbenutzer in der "der einen" Schwebe gelassen wurde.

Das beste Beispiel Rails, aber ich kann viele andere GEMs einschließlich (aber nicht beschränkt auf) Capistrano, Hpricot, RedCloth ... Alle diese Bibliotheken sind jetzt auf GitHub gehostet und wenn Sie sie sorgfältig betrachten, können Sie leicht erkennen das gleiche Qualitätsniveau wie zuvor.

Last but not least werden all diese Bibliotheken weiterhin über RubyForge als Hauptquelle freigegeben, so dass Sie Ihre Umgebung nicht neu konfigurieren müssen, um zu erkennen, ob Schienen oder Schienen installiert werden sollen.

Auch der Endbenutzer ist nicht von den Entwicklungsentscheidungen betroffen. Nehmen wir Capistrano zum Beispiel. Vor ein paar Monaten hat Jamis das Ende seines Engagements für die Entwicklung angekündigt. Die Gemeinde übernahm die Entwicklung und verlegte das Master-Repository von jamis/capistrano nach capistrano/capistrano. Was würde passieren, wenn das GEM als Jamis-Capistrano veröffentlicht würde? Alle Benutzer müssten mit viel Aufwand auf das neue GEM und das neue Repository umsteigen.

Dieses Szenario kam nie zustande, weil RubyForge der wichtigste Lieferpunkt von Capistrano war und ist.

-

Abschließend möchte ich bemerkt, leider eine allgemeine Abnahme der GEM Qualität vor allem durch mehr Menschen verursacht Ruby und RubyGems ohne das notwendige Maß an Wissen nähern. Gleiches gilt für eine große Anzahl von Rails-Plugins.

GitHub kann nicht als der Schuldige bezeichnet werden. Wenn komplexe Dinge leichter werden und mehr Menschen sie ohne ein zugrunde liegendes Wissen erreichen, ist es normal, dass die Qualität abnimmt, weil Komplexität ein natürlicher Auswahlprozess ist.

Wie auch immer, es gibt immer noch ein exzellentes Qualitätsniveau in der Ruby-Community. Es ist erstaunlich zu sehen, wie Ruby-Entwickler sich dem Komponententest und anderen professionellen Programmiergewohnheiten verschrieben haben.

0

Wahrscheinlich weniger stabil und etwas mehr auf dem neuesten Stand :) -r

Verwandte Themen