Forking ein Open Source-Projekt gut

27

Es ist Zeit.

Sie haben lange und hart gearbeitet, um Ihre Vision dem Open-Source-Projekt, das Sie lieben, hinzuzufügen, an dem Sie gearbeitet, debattiert und zu dem Sie unschätzbare Mengen an Code und Erkenntnissen beigetragen haben.

Aber es wird nicht mit den bestehenden Entwicklern klappen.

Sie müssen endlich den Code eingeben.

Wie machen Sie das und bleiben mit dem bestehenden Projekt zu den bestmöglichen Konditionen? Wie sagt man nicht: " Oh ja? Gabelt euch! "

Abgesehen von der Mechanik der Querpolinisierung und der Annahme, dass die Gründe für das Gabeln vernünftig, logisch und akzeptabel sind, treten welche Probleme auf?

Wettbewerb? Ressourcenverbrauch? User-Wilderei?

Wie gehen Sie diesen wohl schwierigen und langen Prozess durch, bis Sie so diversifiziert sind, dass diese nicht mehr als Probleme angesehen werden?

Anstatt die Gründe für die Entscheidung zu erörtern, gehen Sie bitte davon aus, dass Sie bereits davon überzeugt sind, dass das Forken des Codes die beste Gesamtlösung ist, und dass es jetzt darum geht, auf bestmögliche Weise voranzukommen.

-Adam

Adam Davis
quelle

Antworten:

20

Sie möchten an Ihrem eigenen Code-Fork arbeiten oder die Community fragmentieren?

Wir haben intern einige Projekte gespalten. Wir würden eine Änderung vornehmen, sie an die Eigentümer senden, sie würden "Nein, danke" sagen, und wir würden unsere Schultern zucken und sie intern bringen und selbst pflegen.

Das waren keine riesigen Projekte, aber so läuft es nun mal. Wir haben nichts veröffentlicht, eine Website gehostet oder was auch immer. Wir leiten den Quellcode einfach mit dem Rest der Codebasis an unsere Kunden weiter.

Es gab einfach keinen Aufruf für uns, unsere Änderungen auf eine öffentlichere Art und Weise als die Entwickler-Mailingliste zu "bewerben".

Wenn Sie die Parität mit dem Original aufrechterhalten möchten, müssen Sie das Patch-Management und das Zusammenführen und was auch immer aggressiv angehen.

Wenn Sie sich nicht die Mühe machen wollen, dann ... nicht. Es gibt keinen Grund, etwas öffentlich zu machen, es sei denn, dies ist die allgemeine Absicht, anstatt einfach eine gegabelte Version für Ihre eigenen Projekte zu benötigen.

Die Quelle ist da, um benutzt zu werden, also benutze sie.


quelle
8

In den meisten Open-Source-Projekten wird das Wort "Fork" nicht so häufig verwendet. Ich habe persönlich die Erfahrung gemacht, dass es viel begrüßenswerter ist, an einem "Topic Branch" zu arbeiten, um bestimmte Features zu entwickeln.

Und das macht nur Sinn: "Gabeln" sind von Natur aus potenzielle Konkurrenten, während "Themenzweige" - zumindest beabsichtigt - dazu bestimmt sind, irgendwann zusammengeführt / wieder in das Projekt eingebracht zu werden.


quelle
5

Sagen Sie zunächst, Sie möchten nur experimentelles Refactoring durchführen. Weißt du, nur ein paar Ideen, mit denen du spielen möchtest. Diese Änderungen können jedoch eine Unterbrechung der Abwärtskompatibilität mit dem Hauptzweig des Projekts erforderlich machen, sodass Sie die Änderungen dort nicht übernehmen möchten.

Dann erstelle deine Gabel. Natürlich sind Sie ein verantwortungsbewusster Entwickler und stellen den gesamten Code unter Versionskontrolle. Verwenden Sie Launchpad oder SourceForge oder Google Code oder was auch immer.

Legen Sie sich eine Weile hin und arbeiten Sie einfach selbst daran. Lassen Sie dann jemanden, dem Sie vertrauen, "einen Blick darauf werfen", was Sie erstellt haben. Dann noch jemand. Erstellen Sie einige Zeit später eine einfache Projektwebsite, wo immer Sie Ihre Quelle aufbewahren.

Bis dahin werden die Leute, von denen Sie dachten, dass sie nicht an dem ursprünglichen Projekt gearbeitet haben, wahrscheinlich auch weitergezogen sein, sodass niemand mehr zu beleidigen ist. Das ursprüngliche Projekt verliert an Aktivität, wenn Ihr neues Projekt Anhänger gewinnt.


Kommentar von Re codelogic:

Recht; Ich bin davon ausgegangen, dass die Menschen, die das OP zurücklassen möchte, nicht in der Lage sind, das Projekt selbst zu unterstützen.

Ich habe gehört: "Organisationen überleben, Menschen nicht." Das heißt, keine einzelne Person ist für ein Projekt so kritisch, dass das verbleibende Team ein Vakuum, das durch den Abgang dieser Person entstanden ist, nicht ausgleichen kann.

Bei Open Source ist es jedoch manchmal richtig, dass niemand den Willen, das Talent und die Zeit hat, ein Projekt ohne den Gründer durchzuführen.

Bill Karwin
quelle
IMHO, der letzte Teil Ihrer Antwort ist zu anmaßend. Es ist nicht üblich, dass ein beliebtes Projekt aufgrund einer Gabelung nur an Aktivität verliert.
Vorausgesetzt natürlich, dass das fragliche Projekt nicht in erster Linie die Arbeit des einzelnen Entwicklers war, der sich für die Gabelung entschieden hat.