Qual è un modo corretto / educato di ereditare da un progetto open source abbandonato per un nuovo progetto open source?


13

Il mio team ha appena provato a contattare alcuni ragazzi di un vecchio progetto open source ospitato su code.google.com. Abbiamo detto loro che avremmo voluto unirci al loro progetto e impegnarci a farlo - almeno in qualche ramo di esso - ma nessuno ci ha risposto. Abbiamo provato tutti, proprietari e committenti; nessuno era in alcun modo attivo e nessuno rispose.

Ma abbiamo del codice da impegnare e ci piacerebbe davvero continuare a lavorare su quel progetto. Quindi dobbiamo creare un nuovo progetto. Ci è venuto in mente un nome che è vicino ma non un duplicato del nome del progetto da cui vogliamo ereditare. Come dovremmo fare il nostro primo commit e quale dovrebbe essere il messaggio di commit? Dovremmo semplicemente copiare il loro codice nel nostro repository con un commento del tipo "abbiamo ereditato questo codice, lo abbiamo trovato qui sotto tale e tale licenza ... ora lo stiamo aggiornando a questa licenza più / meno rigorosa ..."? O dovremmo semplicemente usare il loro codice come primo commit, con gli aggiornamenti che dicono "abbiamo ereditato da ... abbiamo apportato tali e tali modifiche ..."?


7
A meno che non si ottenga l'autorizzazione dal progetto originale, a seconda della licenza originale probabilmente non sarà possibile renderla una licenza meno rigorosa. Se è una licenza abbastanza permissiva da permetterlo, probabilmente non c'è molto bisogno di passare a una licenza ancora più permissiva.
Matthew Scharley,

Risposte:


13

Idealmente, dovresti inserirlo su Google Code, che manterrebbe tutta la vecchia storia. Non so se questo è esplicitamente supportato su Google Code, ma se il vecchio progetto utilizza git come controllo della versione, puoi farlo manualmente clonando il vecchio progetto in una directory locale, modificando il origintelecomando in modo che punti al tuo nuovo repository, quindi spingendo la tua copia locale.

Sono sicuro che un metodo simile può essere usato con sovversione ( svnsyncforse?) Ma non ho esperienza pratica con sovversione, quindi non posso commentare lì.


2
il codice google supporta Mercurial, ma non git. Per mercurial la procedura è molto simile però, basta modificare l' defaultalias in .hg\hgrc.
Wim Coenen,

@Wim grazie per le informazioni. Non ho usato molto il codice di Google, fornendo solo quante più informazioni possibili su ciò che so.
Matthew Scharley

8

La cosa cruciale è se la licenza del codice originale e cosa ti consente di fare. Una cosa a cui dovresti prestare molta attenzione è cambiare la licenza poiché potresti non essere autorizzato a farlo - ricorda che non hai il copyright.

Ma supponendo che tutto sia in perfetto ordine, il messaggio di commit iniziale potrebbe essere "Importato 2011-02-25 da http: // .... versione XYZ", nonché una spiegazione importante nel file README.txt.

Sii molto chiaro su ciò che hai fatto e, se possibile, scrivi il tuo codice usando il codice originale come libreria. Questo rende molto più facile separare le preoccupazioni.


8

In realtà si tratta di un codice FAQ di Google , vedere "Cosa devo fare se desidero assumere un progetto che sembra abbandonato dai suoi proprietari?".

A quanto pare puoi occuparti di progetti abbandonati chiedendo a Google di farlo bene.


4

Se hai contattato il vecchio progetto, non penso che possano lamentarsi, sii solo aperto e chiaro su ciò che stai facendo e non prendersi il merito per il lavoro degli altri. Probabilmente proverei a spiegare la situazione sia sul tuo sito web che nel primo messaggio di commit. Sarebbe anche educato assicurarsi che l'importazione del codice iniziale sia esattamente la stessa del progetto precedente, quindi tutte le modifiche sono nei registri di commit.

Come altri hanno già detto, puoi cambiare la licenza solo con una compatibile e NON puoi cambiare i proprietari del copyright, anche se cambi la licenza. È importante conservare tutti i nomi dei proprietari di copyright esistenti e tutti i file su cui hanno lavorato.



Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.