Przez przypadek przeprowadziłem remont czyjegoś projektu. Jakikolwiek akceptowalny sposób wyciągnięcia żądania?


12

Znalazłem świetny projekt na githubie z użyteczną centralną funkcją, ale który jest szorstki w „dopracowywaniu” obsługi błędów, rejestrowania, konfiguracji i konfiguracji. Projekt jest 5 lat nietknięty i tylko kilkaset wierszy kodu. Mimo to jest wystarczająco użyteczny, aby zwrócić na siebie uwagę przyzwoitej liczby obserwatorów i garstki widelców.

Do mojego użytku wymagany był konkretny dodatek, ale wcześniej przeprowadziłem czyszczenie. Potem miałem trochę obsesji na punkcie inżyniera iw ciągu tygodnia dodałem system rejestrowania, dużo logowania, automatyczną konfigurację, konfigurację wyodrębnioną z kodu i do zewnętrznych plików konfiguracyjnych (i kodu do ich odczytu), plus kilka poprawek błędów, tak jak je znalazłem.

Myślę, że wszystkie moje zmiany są rozsądne / dobre i są tym, czego potrzebuje publiczność. Ale istnieje wiele zatwierdzeń, prawie tyle, ile pierwotnie miało repozytorium (unikanie liczb, aby zachować ten ogólny). Co więcej, git blame pokazuje, że dotknąłem prawie każdej linii tej (małej!) Bazy kodu. Nie szukam kontroli nad projektem, a nawet niekoniecznie jakiegokolwiek uznania za to, co zrobiłem. Ale biorąc pod uwagę wybór, chciałbym, aby moje zmiany zostały scalone, aby każdy mógł z nich skorzystać, zamiast ukrywać się w widelcu na moim nieznanym githubie.

Nigdy wcześniej nie przesyłałem prośby o wycofanie, ale wiem, że powinny być małe i łatwe do przejrzenia. Ale tutaj odszedłem i dokonałem wielu zmian transformacyjnych.

Moje zobowiązania są bardzo czyste, ponieważ przez cały czas uważnie zajmowałem się historią. Trudno byłoby je jednak podzielić na wiele żądań rozgałęzień / ściągnięć, ponieważ wiele z nich musi opierać się na sobie. Na przykład eksternalizacja konfiguracji opiera się na pewnym czyszczeniu przygotowawczym, a konfiguracja istnieje częściowo w celu zapełnienia tych konfiguracji, rejestrowanie jest włączone i konfigurowane przez zewnętrzne konfiguracje utworzone w konfiguracji itp. Biorąc to pod uwagę, jestem bardzo chętny do robię, co mogę, aby ta ogromna pigułka była smaczniejsza, po prostu nie wiem, co by to było. Mógłbym rozdzielić kilka zobowiązań, ale duży przegląd jest wciąż duży.

Co więc zrobić, jeśli przypadkowo przerobią czyjś projekt?

Czy powinienem po prostu nauczyć się lekcji, jak tego nie robić i zachować zmiany dla siebie w swoim widelcu? Czy powinienem po prostu poprosić o pull i zobaczyć, co się stanie? Czy powinienem poświęcić kilka słów na wyjaśnienie siebie w opisie? Czy powinienem to przedstawić w określony sposób?

Odpowiedzi:


30

Jeśli, jak napisałeś, projekt był „5 lat nietknięty”, prawdopodobne jest, że żądania ściągania nie zostaną zaakceptowane, niezależnie od tego, czy ktoś naprawił literówkę w komentarzu, czy dokonał kompletnego przepisania. Projekt został prawdopodobnie porzucony przez pierwotnych autorów.

Pierwszą rzeczą, którą spróbowałbym, to skontaktować się z autorami i zapytać, co o tym sądzą. Jeśli nie odpowiedzą w rozsądnym czasie, dlaczego po prostu nie upublicznić widelca (zakładając, że licencja na to pozwala), dodać podsumowanie tego, co poprawiłeś, i zobaczyć, co się stanie?

Jeśli inni uważają, że twoje ulepszenia są dla nich przydatne, mogą preferować użycie widelca jako projektu początkowego na korzyść oryginalnego. Jeśli oryginalny autor zamierza ponownie ożywić oryginalny projekt, oboje możecie nadal zdecydować, czy oryginalny projekt i widelec powinny zostać ze sobą połączone i kto będzie przyszłym opiekunem.

Jeśli oryginalni autorzy nie wykazują żadnych oznak aktywnej konserwacji, możesz rozważyć całkowite odłączenie widelca od oryginalnego projektu. W takim przypadku skonfiguruj w tym celu własne niezależne repozytorium. Nie zapomnij o uznaniu autorów oryginalnych i upewnij się, że jest to objęte licencją projektu.


2
Dzięki za sprawdzenie rzeczywistości. Spróbuję skontaktować się z autorem i poznać jego podejście do projektu.
user1169420,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.