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

12

Sono nuovo nel mondo di Open Source. Il progetto su cui sto lavorando risiede su Github. (Solo per riferimento) Il progetto su 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 faceva parte di ciò che volevo ma non molto bene. Ho iniziato contribuendo a tale repo. Sono stato immediatamente reso un collaboratore con pieni diritti per il repository dato che l'attuale proprietario ha detto che era troppo impegnato per fare casino con esso. Tuttavia, quando ho iniziato a scavare più a fondo nel codice ho capito che era inutile. La base di codice esistente era terribile e non c'era un modo efficace per risolverlo. Ho finito per iniziare 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 su come fare per farlo. Vedo le mie opzioni come segue:

  1. Crea un nuovo repository e dimentica quello esistente. Non sono sicuro se dovrei menzionare il precedente repo o i suoi contributori. 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 che ha fatto il vecchio, lo fa in un modo completamente nuovo e in un modo più efficiente.

  2. I fork il repository esistente, eliminare il codice esistente e commit il mio nuovo codice. Sono davvero nuovo di Git, quindi non sono sicuro che sia possibile.

  3. Appoggio le mie modifiche al repository esistente e vedo come hanno da dire gli attuali contributori.

Delle tre opzioni, sono strongmente inclinato verso il primo. MA! Sono nuovo all'open source e voglio assicurarmi che stia facendo le cose secondo l'etichetta corretta. Non voglio che il mio primo progetto esploda in faccia e diventi un disastro. L'opzione due non suona male, ma non sono sicuro se 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 è un'enorme base di codice.

Grazie per qualsiasi input che puoi fornire!

    
posta Matt Keller 03.03.2013 - 20:10
fonte

1 risposta

13

Dato che è tutto nuovo codice, tenderei ad andare con # 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 da ...".

Sono un grande fan nel riconoscere da dove proveniamo noi (oi nostri algoritmi). Se guardi indietro nelle nebbie della storia, vedrai che siamo tutti sulle spalle di quelli che ci hanno preceduto- tutti di noi. Ad esempio, ho sviluppato e commercializzato un motore di ricerca similarity negli anni '80, e sembrava piuttosto radicale per alcune persone (a quel tempo Boole era il re). Ma il cuore dell'algoritmo che stavo usando era basato sul lavoro iniziato da Gerard Salton a Cornell 20 anni prima di me.

    
risposta data 04.03.2013 - 00:21
fonte

Leggi altre domande sui tag