Jaka jest właściwa etykieta do wydania pełnego przepisania istniejącego projektu?

12

Jestem nowy w świecie opensource. Projekt, nad którym pracuję, znajduje się w Github. (Tylko dla odniesienia) Projekt, nad którym pracuję, jest wtyczką do Plex Media Server. Planuję przesłać moją wtyczkę do Plex, aby znalazła się w „sklepie z aplikacjami”. Teraz moje pytanie.

Kiedy zaczynałem, znalazłem starszą, częściowo porzuconą wtyczkę, która spełniała niektóre moje oczekiwania, ale niezbyt dobrze. Zacząłem od udziału w tym repozytorium. Natychmiast zostałem współpracownikiem z pełnymi prawami do repozytorium, ponieważ obecny właściciel powiedział, że jest zbyt zajęty, aby z nim zadzierać. Jednak, gdy zacząłem zagłębiać się w kod, zdałem sobie sprawę, że był on daremny. Istniejąca baza kodu była okropna i nie było skutecznego sposobu na jej naprawienie. Skończyło się tak, że zaczynałem od zera. Jedynym kodem, którego użyłem w mojej nowej wtyczce, był kod, który pierwotnie popełniłem.

Teraz projekt jest gotowy do wydania. Nie jestem jednak pewien, jak to zrobić. Widzę moje opcje w następujący sposób:

  1. Utwórz nowe repozytorium i zapomnij o istniejącym. Nie jestem pewien, czy powinienem nawet wspomnieć o poprzednim repozytorium i / lub jego autorach. Nie użyłem żadnego z tych kodów / zasobów i stworzyłem zupełnie nową bazę kodu. Chociaż wtyczka robi te same rzeczy, co poprzednia, robi to w zupełnie nowy i bardziej wydajny sposób.

  2. Rozwidlam istniejące repo, usuwam istniejący kod i zatwierdzam mój nowy kod. Jestem naprawdę nowy w Git, więc nie jestem pewien, czy to w ogóle możliwe.

  3. Zatwierdzam moje zmiany do istniejącego repozytorium i widzę, co mają do powiedzenia obecni współpracownicy.

Spośród trzech opcji zdecydowanie skłaniam się ku pierwszej. ALE! Jestem nowym użytkownikiem open source i chcę się upewnić, że robię rzeczy zgodnie z odpowiednią etykietą. Nie chcę, żeby mój pierwszy projekt wybuchł mi w twarz i stał się katastrofą. Opcja druga nie brzmi źle, ale nie jestem pewien, czy mam to zrobić. Nie jestem pewien, jak działałaby historia i różnice. Mówimy tylko o 500 - 1000 wierszach kodu. Więc to nie jest duża baza kodu.

Dziękujemy za wszelkie informacje, które możesz podać!

Matt Keller
źródło
10
Ponieważ jest to nowy kod, wybrałbym numer 1, ponieważ historia starego projektu jest naprawdę nieistotna. Ale byłoby miło dodać coś do README w stylu „Na podstawie pomysłu z…”.
Peter Rowell,
2
@PeterRowell proszę umieścić ten komentarz w odpowiedzi, abym mógł go głosować!
MattDavey,
@PeterRowell Dziękujemy za radę. To świetny pomysł.
Matt Keller
1
W przypadku 2 nie ma potrzeby usuwania istniejącego repozytorium. Cokolwiek robisz, jestem pewien, że oryginalny programista byłby wdzięczny za to, że powiedziałeś mu, że rozwijasz projekt
James

Odpowiedzi:

13

Ponieważ jest to nowy kod, wybrałbym numer 1, ponieważ historia zatwierdzeń starego projektu jest naprawdę nieistotna. Ale byłoby miło dodać coś do README w stylu „Na podstawie pomysłu z…”.

Jestem wielkim fanem potwierdzania, skąd pochodzimy (lub nasze algorytmy). Jeśli spojrzysz w mgłę historii, zobaczysz, że wszyscy stoimy na ramionach tych, którzy byli wcześniej - wszyscy z nas. Na przykład opracowałem i sprzedałem wyszukiwarkę podobieństw w latach osiemdziesiątych, a dla niektórych wydawało się to dość radykalne (Boolean był wtedy Królem). Ale sedno algorytmu, którego używałem, było oparte na pracy rozpoczętej przez Gerarda Saltona w Cornell 20 lat przede mną.

Peter Rowell
źródło