Qual è l'etichetta corretta per rilasciare una riscrittura completa di un progetto esistente?


12

Sono nuovo nel mondo opensource. Il progetto a cui sto lavorando risiede su Github. (Solo per riferimento) Il progetto a cui sto lavorando è un plug-in per Plex Media Server. Ho intenzione di inviare il mio plug-in a Plex in modo che sia incluso nel loro "app store". Ora alla mia domanda.

Quando ho iniziato, ho trovato un vecchio plug-in semi-abbandonato che ha fatto qualcosa di quello che volevo, ma non molto bene. Ho iniziato contribuendo a quel repository. Sono stato immediatamente reso un collaboratore con tutti i diritti per il repository poiché l'attuale proprietario ha dichiarato che era troppo occupato per rovinarlo più. Tuttavia, quando ho iniziato a scavare più a fondo nel codice mi sono reso conto che era inutile. La base di codice esistente era terribile e non c'era un modo efficace per risolverlo. Ho finito per ricominciare da zero. L'unico codice che ho usato nel mio nuovo plugin era il codice che ho commesso inizialmente.

Ora il progetto è pronto per essere rilasciato. Tuttavia, non sono sicuro di come procedere. Vedo le mie opzioni come segue:

  1. Crea un nuovo repository e dimentica quello esistente. Non sono sicuro se dovrei anche menzionare il repository precedente eo i suoi collaboratori. Non ho usato nessuno di quel codice / risorse e ho creato una base di codice completamente nuova. Mentre il plugin fa alcune delle stesse cose del vecchio, lo fa in un modo completamente nuovo e più efficiente.

  2. Eseguo il fork del repository esistente, elimino il codice esistente e commetto il mio nuovo codice. Sono davvero nuovo con Git, quindi non sono sicuro che sia possibile.

  3. Apporto le mie modifiche al repository esistente e vedo come dicono gli attuali collaboratori.

Delle tre opzioni, sono fortemente incline al primo. MA! Sono nuovo di open source e voglio assicurarmi di fare le cose secondo l'etichetta corretta. Non voglio che il mio primo progetto mi esploda in faccia e diventi un disastro. L'opzione due non suona male, ma non sono sicuro che dovrei farlo. Non sono sicuro di come funzionerebbero la storia e le differenze. Stiamo parlando solo di 500 - 1000 righe di codice al massimo. Quindi non è una base di codice enorme.

Grazie per qualsiasi input che puoi fornire!


10
Dato che è tutto un nuovo codice, tenderei ad andare con il n. 1 perché la storia del vecchio progetto è davvero irrilevante. Ma sarebbe bello aggiungere qualcosa al README sulla falsariga di "Basato su un'idea di ...".
Peter Rowell,

2
@PeterRowell, per favore, metti quel commento in una risposta così posso votarlo!
MattDavey,

@PeterRowell Grazie per il consiglio. Questa è una grande idea.
Matt Keller,

1
Per 2, non è necessario eliminare il repository esistente. Qualunque cosa tu faccia, sono sicuro che lo sviluppatore originale apprezzerebbe che tu gli abbia detto che stai biforcando il progetto
James

Risposte:


13

Dato che è tutto nuovo codice, tenderei ad andare con il n. 1 perché la cronologia di commit del vecchio progetto è davvero irrilevante. Ma sarebbe bello aggiungere qualcosa al README sulla falsariga di "Basato su un'idea di ...".

Sono un grande fan di riconoscere da dove veniamo noi (o i nostri algoritmi). Se guardi indietro nelle nebbie della storia, vedrai che siamo tutti in piedi sulle spalle di quelli che sono venuti prima - tutti noi. Ad esempio, ho sviluppato e commercializzato un motore di ricerca di somiglianza negli anni '80, e sembrava abbastanza radicale per alcune persone (Boolean era il re allora). Ma il cuore dell'algoritmo che stavo usando era basato sul lavoro iniziato da Gerard Salton a Cornell 20 anni prima di me.

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.