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?