Kontext:
Ich habe nachgefragt, ob es ein Tool gibt, mit dem ich etwas tun kann (in meinem Fall habe ich nach einem Proxy gesucht, der eine Überprüfung des http-Protokolls über ein Python-Testframework ermöglicht).
Es stellte sich heraus, dass es ein Tool gab, das nur geringfügige Anpassungen erfordern würde, und es schien ziemlich stabil / ausgereift zu sein, ohne Aktualisierungen in den letzten 5 Monaten ( Pymiproxy ), also gabelte ich das Projekt ( bis hierher ) und ließ es funktionieren wie ich brauche. Das Ziel des ursprünglichen Projekts ist die Einfachheit, daher bezweifle ich, dass eine Pull-Anfrage akzeptiert wird, zumal eine der beteiligten Dateien nur für meinen derzeitigen Arbeitgeber nützlich ist.
Schließlich dachte ich, ich sollte die setup.py
Datei aktualisieren , aber ich bin mir nicht sicher - ich habe eine 'nützliche' Arbeit an meiner Gabel geleistet, und während ich die Originaldateien im Takt gelassen habe und sie in meine eigenen Module unterteilt habe, gibt es jetzt signifikante zusätzliche Funktionalität.
Ich weiß nicht, dass ich mich wohl fühle, wenn ich behaupte, der "Autor" dieses Moduls zu sein, wie es von Python installiert wird, aber als Autor des Fork-Projekts fühle ich mich auch nicht wohl, wenn ich Support-E-Mails an den Autor des ursprünglichen Projekts hinterlasse .
Frage:
Was ist die allgemein anerkannte Best Practice für gegabelte Projekte? Sollte das Projekt umbenannt werden, um anzuzeigen, dass es einen anderen Zweck hat? Das ursprüngliche Projekt ist nicht über pip verfügbar, da sonst die Struktur meines Projekts es zulässt, dass ich das Original anstelle der Verzweigung nur als Abhängigkeit umhülle. Sollte ich meine Änderungen tatsächlich rückgängig machen, diese in ein neues Projekt einfügen und die beiden in pypl auflisten lassen, oder geht dies im Auftrag des ursprünglichen Autors zu weit?
Anmerkungen:
Überschriften hinzugefügt, um das Ablesen der Geschwindigkeit zu erleichtern. Ich bin auf der Suche nach akzeptierten Best Practices. Bitte keine Meinungen ohne Quellen, um sie zu sichern, sei es ein maßgeblicher Blog-Beitrag oder Beispiele für andere Projekte, die dasselbe getan haben.
setup.py
oder wenn es darum geht, das Projekt in zwei Teile zu teilen und den Teil eines Drittanbieters allgemeiner verfügbar zu machen - wenn es eine bessere Richtlinie gibt, würde ich Ich bin froh, das zu hören, aber ich habe immer gedacht, dass Code hierher gehört und auf Programmierern verarbeitet wird.Antworten:
Nun, in der Praxis benenne ich die Gabel um, wenn ich ein Projekt abspalte und nicht kann oder nicht möchte, dass meine Änderungen in den Upstream integriert werden. In der README zitiere ich den ursprünglichen Autor, behaupte aber, dass ich dieser betreue Codequelle und verknüpfe die Quelle mit meinem Repository und aktualisiere in setup.py die
authors
Zeichenfolge, um meinen Namen nach einem Komma hinzuzufügen:Ich habe keine Quellen, die mich unterstützen könnten, aber das ist das Ergebnis langer Diskussionen, die ich vor einiger Zeit mit anderen Pythonisten-Freunden geführt habe, als ich dunkles Bier getrunken habe…
quelle