Was ist die Netiquette, um die Open-Source-Projekte II anderer Leute zu forken?

8

Dies ist FAST ein direktes Duplikat von ( Was ist die Netiquette, um die Open-Source-Projekte anderer Leute zu forken ? ), Außer dass ich dort meine Antwort nicht finden konnte und keinen Kommentar abgeben kann (weil ich noch nicht genug Ruf habe).

Hier ist mein Szenario:
Ich habe einen öffentlichen Zweig eines öffentlichen GitHub-Projekts ( https://github.com/fengyuanchen/cropper ). Ich habe einige Korrekturen am Ursprung vorgenommen (z. B. das Umgehen von Einschränkungen beim Rendern von Zeichenflächen auf Geräten mit geringem Arbeitsspeicher), aber ich habe auch eine Reihe von Funktionen hinzugefügt, die ich in der Software haben wollte, wie z.

  1. viewMode: 4: Wenn das Bild gedreht wird, wird es so skaliert, dass das gesamte Bild immer im Container sichtbar ist. Die CropBox ist auch immer auf das Bild beschränkt und nicht nur auf die Leinwand .
  2. getCroppedCanvas Kacheln: Die Möglichkeit, das zugeschnittene Bild auf einer Leinwand zu kacheln (z. B. im Matrixstil zu duplizieren).

Der ursprüngliche Autor möchte diese neue Funktionalität jedoch nicht zusammenführen, da er sein ursprüngliches Plugin so einfach wie möglich halten möchte.

Ich habe versucht zu verhandeln und zu verhandeln, werde aber einfach ignoriert.

Also habe ich mich damit abgefunden, dass ich diese öffentliche Gabelung weiterhin pflegen werde. Nicht ideal, aber ich möchte wirklich diese andere Funktionalität. Da sind wir also.

Die ursprüngliche Lizenz ist eine MIT-Lizenz und deklariert als:

The MIT License (MIT)

Copyright (c) 2014-2016 Fengyuan Chen and contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

Was ich nicht denke, wird im anderen Beitrag beantwortet:

  1. Wie gebe ich dem ursprünglichen Autor die korrekte Zuordnung, nachdem ich eine neue Version aktualisiert / gepflegt habe? Ich weiß, dass ich effektiv an einer neuen Version arbeite, die meine eigene ist, aber sie basiert auf einer Grundlage, die von jemand anderem verfasst wurde.
  2. Ist es in Ordnung zu maskieren, als ob diese neue Gabel ganz mir gehört? Beispiel: Ersetzen Sie die Links zur Seite github.io für das ursprüngliche Projekt in meiner gegabelten README-Datei? Es fühlt sich irgendwie falsch an, nicht auf das Original zurückzugreifen, aber auf github.io befinden sich Demos, und ich möchte die neue Funktionalität, die ich einsetze, vorführen.
  3. Gibt es einen Teil eines Repos, sei es die README.md, die Site usw., den ich komplett durch meine eigene Arbeit ersetzen sollte, um es besser zu machen ... angemessener meine?
  4. Sollte ich den Lizenztext ändern, um den Namen des ursprünglichen Autors zu entfernen und ihn durch meinen zu ersetzen?

Grundsätzlich fühlt es sich nicht so an, als ob die Gabel mir gehört, obwohl die ganze neue Arbeit meine eigene ist. Ich möchte niemanden abschrecken, und die ursprüngliche Arbeit war wirklich gut.

Ich würde mich über jede Anleitung freuen, die die Leute anbieten können, damit ich das Richtige tue, was alles ist, was ich wirklich tun möchte.

Update
Folgendes habe ich am Ende getan : https://github.com/OddPrints/cropper :

  1. Gutschrift hinzugefügt und warum die Gabel? Abschnitte plus die Erwähnung unter dem Hauptblockquote.
  2. Folgen Sie dem Link zur Website - verlinken Sie so weit wie möglich auf den ursprünglichen Autor, einschließlich der Jumbotron- und Kopf- / Fußzeilenmenüs, aber thematisieren Sie die Website trotzdem neu.
  3. Der dist-Intro-Kommentar wurde geändert in:

Cropper v2.3.3 https://github.com/OddPrints/cropper wurde von https://github.com/fengyuanchen/cropper gegabelt

Copyright (c) 2015-2016 OddPrints and contributors originally 2014-2016 Fengyuan Chen and contributors
Released under the MIT license

Date: 2016-07-01T11:35:42.277Z

Aber ich habe die Lizenz noch nicht geändert, weil es anscheinend nicht ideal ist, die Namen von Personen zu entfernen? ( Lizenzierung für gegabelte Projekte )

ndtreviv
quelle
2
Was ist das genaue Projekt, das Sie klonen möchten? Mit welcher Lizenz? Welche Funktionen fügen Sie hinzu? Bitte bearbeiten Sie Ihre Frage , um genauer zu sein ... Übrigens, vielleicht ist diese Frage besser auf OpenSource
Basile Starynkevitch
@ BasileStarynkevitch - Ist das wichtig? Wenn ja, hier: fengyuanchen.github.io/cropper
ndtreviv
@BasileStarynkevitch - Ich hatte noch nie von opensource.stackexchange.com gehört. Gibt es Funktionen, um die Frage auf dieser Site dorthin zu verschieben? Ich werde die Frage so bearbeiten, dass sie die gewünschten Details enthält.
ndtreviv
Ich habe versucht, dies für die Migration zu kennzeichnen, habe jedoch die Meldung "Dieses Kennzeichen ist keine Option mehr" erhalten. Seltsam.
RubberDuck

Antworten:

7

Wie gebe ich dem ursprünglichen Autor die korrekte Zuordnung, nachdem ich eine neue Version aktualisiert / gepflegt habe?

Folgendes sehe ich oft in ähnlichen Situationen:

Copyright 2016 - Project101, written by ndtreviv, based on Project100, originally written by RandomDude24

Ersetzen Sie die Links zur Seite github.io für das ursprüngliche Projekt zu meinem eigenen in meiner gegabelten README?

Das sollte in Ordnung sein. Solange Sie erwähnen, dass dies eine Abzweigung eines anderen Projekts ist und es an mindestens einer Stelle in der Readme-Datei verknüpft, verstehe ich nicht, warum die Readme-Datei nicht mit Ihrer eigenen Abzweigung verknüpft werden sollte.

Gibt es einen Teil eines Repos, sei es die README.md, die Site usw., den ich komplett durch meine eigene Arbeit ersetzen sollte, um es besser zu machen ... angemessener meine?

IMO, wenn ich der ursprüngliche Autor wäre, wäre es absolut in Ordnung, wenn Sie eine Gabel hätten (schließlich war ich derjenige, der das Projekt an erster Stelle in Github gestellt hat), solange Ihr Projekt das Original eindeutig würdigt Seite.

Stellen Sie sicher, dass Ihre Website nicht zu sehr dem Original ähnelt und Sie das Wiki möglicherweise auch neu schreiben möchten.

Außerdem sollten Sie in der Readme-Datei darauf hinweisen, was eine ursprüngliche Funktion war und was Sie hinzugefügt haben

rückgängig machen
quelle
4
Sie sind absolut in Ordnung damit. Und wer damit nicht absolut einverstanden ist, sollte die MIT-Lizenz nicht verwenden.
gnasher729
3

Ich würde nur versuchen, explizit zu sagen, was das Originalwerk ist und was Sie hinzufügen. "Mascarade" Sie nicht den Originalcode wie Ihren (dies wäre "stehlen" und ist schlecht).

Nehmen Sie nach Möglichkeit die meisten Änderungen in neuen Quelldateien vor (wobei Sie Ihren Namen oder Ihren Arbeitgeber, wenn Sie arbeiten, als Inhaber des Urheberrechts hinzufügen).

Anschließend können Sie Kommentare zu den wenigen Änderungen an den Originaldateien hinzufügen, die Sie gerade ausführen.

Seien Sie endlich nett und fügen Sie hinzu, README.mddass der größte Teil der Arbeit geklont ist, und einen kleinen Absatz, der Ihre Verbesserungen beschreibt. Fügen Sie möglicherweise eine weitere Datei hinzu, IMPROVEMENTS.mdin der Ihre Ergänzungen beschrieben werden.

Stellen Sie sicher, dass der Leser des gegabelten Projekts auf einen Blick erkennen kann, welcher Code hauptsächlich aus dem ursprünglichen Projekt stammt und welcher Code Ihnen gehört.

Benennen Sie Ihr Projekt möglicherweise etwas anders um (z. B. Cropper_with_Foowenn Sie Fooeinem Projekt eine Funktion hinzufügen Cropper).

Basile Starynkevitch
quelle