Korzyści z kontrybuowania do Open Source: Jak zacząć?

Angażowanie się w projekty open source to doskonały sposób na rozwijanie umiejętności programistycznych, poznawanie nowych technologii oraz nawiązywanie kontaktów z innymi programistami.

Co więcej, praca nad projektami open source może pomóc Ci w znalezieniu wymarzonej pracy w branży!

Z tego artykułu dowiesz się, dlaczego warto i jak zacząć kontrybuować do open source, ale najpierw może powiedzmy sobie, czym jest ten cały “open source”.

Czym jest open source?

Open source to model tworzenia oprogramowania, który pozwala użytkownikom na dostęp do kodu źródłowego, jego modyfikowanie i udostępnianie tych zmian innym użytkownikom.

Oprogramowanie open source jest często tworzone przez społeczności programistów, którzy dzielą się swoimi umiejętnościami i doświadczeniem, aby stworzyć narzędzia, które są użyteczne dla innych użytkowników. Open source jest często stosowany w projektach komercyjnych i naukowych, ponieważ umożliwia łatwe dostosowanie oprogramowania do potrzeb użytkowników i zapewnia większą przejrzystość kodu źródłowego.

Dlaczego warto angażować się w projekty open source?

Przede wszystkim, dzięki pracy nad projektami open source możesz rozwijać swoje umiejętności programistyczne w praktyce. Już sama praca nad różnymi projektami pozwala na poznanie nowych technologii i narzędzi. A co ważniejsze, możesz zbudować społeczność programistów, którzy dzielą się swoją wiedzą i doświadczeniem. Ale to nie wszystko - praca nad projektami open source może również pomóc Ci w znalezieniu swojej wymarzonej pracy. Dlaczego? Pracodawcy często szukają programistów, którzy mają doświadczenie w pracy nad projektami open source.

Jak kontrybuować do projektów open source?

  1. Znajdź projekt, który Cię interesuje - Przeglądaj listę projektów open source i wybierz ten, który Cię fascynuje i z którego chcesz się uczyć.
  2. Zapoznaj się z dokumentacją - Nie ma nic gorszego niż przesyłanie pull requestów, które nie są zgodne z wymaganiami projektu. Dlatego przed podjęciem pracy, dokładnie przeczytaj dokumentację projektu i upewnij się, że masz pełne zrozumienie wymagań.
  3. Weź udział w dyskusjach - Wiele projektów open source ma swoje community, gdzie można zadawać pytania i uzyskać pomoc. Weź udział w dyskusjach, pomagaj innym i ucz się na błędach innych.
  4. Znajdź problem, który chcesz rozwiązać - Wiele projektów open source posiada sekcję "Issues", gdzie można znaleźć problemy do rozwiązania. Często łatwe problemy mają przy sobie tag “First issue”, wskazujący że jest do dobre zadanie na początek pracy w projekcie.
  5. Przetestuj swoje rozwiązanie - Po napisaniu kodu, przetestuj swoje rozwiązanie i upewnij się, że działa tak, jak powinno.
  6. Otwórz pull request - Jeśli wszystko działa, prześlij pull request z Twoim kodem. Upewnij się, że zmiany są opisane w sposób jasny i zrozumiały.
  7. Czekaj na feedback - Projekt open source to nie tylko kod, ale także ludzie. Często może minąć trochę czasu, zanim ktoś przejrzy Twoje zmiany i udzieli feedbacku.

Praktyka czyni mistrza

Teraz przejdziemy przez ten proces w praktyce, zaczynając od momentu, gdy zdecydujesz się zaangażować w projekt, aż do umieszczenia Twojego kodu w repozytorium.

Załóżmy że znalazłeś już projekt oraz repozytorium w którym znajduje się jego kod. Poniższy proces przedstawię na przykładzie Github'a.

1. Fork repozytorium

Na samym początku musisz zrobić “forka” repozytorium. Fork to kopia istniejącego repozytorium, która jest “odczepiona” od oryginalnego repozytorium.

Nie można tej kopii zrobić za pomocą polecenia “git clone”, ponieważ wtedy kopia jest wciąż ściśle powiązana z oryginalnym repozytorium, a próby pchania zmian najprawdopodobniej zakończyłyby się błędem o braku uprawnień. Jest to logiczne, mimo że tworzymy otwarte oprogramowanie nie oznacza to, że chcemy, aby każdy mógł do niego dodawać swoje zmiany bez naszego zatwierdzenia.

Aby zrobić fork’a przechodzimy na GitHub’ie na stronę repozytorium i klikamy przycisk Fork. Od teraz kopia repozytorium znajduje się wśród twoich repozytorium, nie jest ona już połączona z oryginalnym repozytorium.

github-fork.webp

2. Sklonowanie repo na komputer

Nadszedł czas żeby kod znalazł się na Twoim komputerze. Przejdź do zforkowanego repozytorium i kliknij zielony przycisk “Code”, następnie upewnij się że masz zaznaczoną zakładkę HTTP i skopiuj znajdujący się tam link. A następnie pobierz repo na swój komputer przy pomocy polecenia git clone <tutaj link z repozytorium>.

github-clone.webp

3. Wprowadzenie zmian i wysłanie do repozytorium

Mamy już repo loklanie, teraz możemy wprowadzić zmiany w kodzie. Nie będę tutaj za dużo się rozpisywał, bo to u każdego będzie wyglądało inaczej. Załóżmy że zmiany zostały już wprowadzone, przetestowane i chcemy, aby teraz znalazły się one w docelowym repozytorium.

Zwróć jednak uwagę na konwencje nazywania gałęzi w projekcie, najpierw poszukaj tego w pliku CONTRIBUTING.md, jeśli projekt nie posiada tego pliku, albo nie wynika z niego jak je nazywać, to sprawdź jak inni nazywali swoje branche przy ich PR.

Najpierw jednak musimy te zmiany wysłać do naszego repo. Dodajemy zatem pliki na staging area przy pomocy git add <nazwa pliku> lub też jeśli chcemy dodać wszystkie pliki które zmieniliśmy to git add . a następne git commit -m "<tutaj wiadomość co zostało zmienione>". Tak naprawdę to co wpiszemy jako wiadomość do commit’a zależy od umowy w projekcie, czasami będzie to numer ticketa z jakiegoś zewnętrznego programu do zarządzania zadaniami, czasami numer Issue z GitHub’a. Zobacz też czy w projekcie używane są conventional commits, jeśli tak to zastosuj się do nich.

Nie zmienia to faktu, że napisanie w commit message co zostało zmienione to dobra praktyka. Na sam koniec wysyłamy commit na repo przy pomocy git push.

4. Pull request

Zmiany znajdują się już w naszym repozytorium, musimy teraz utworzyć tak zwany Pull Request, czyli prośbę o dodanie naszych zmian do oryginalnego repozytorium. Przechodzimy do naszej kopii repozytorium, klikamy Contribute, a następnie Open pull request.

github-contribute.webp

Po kliknięciu w przycisk powinniśmy zostać przeniesieni na stronę “Open a pull request”. Pierwsze co musimy wybrać to do jakiej gałęzi chcemy wysłać nasze zmiany. Tutaj też najlepiej te informacje pozyskać z pliku CONTRIBUTING.md, jeśli jednak takowego nie ma, zobacz jak robili to inni. Nawet jeśli nie masz pewności to wystaw swojego PR, jeśli wybrałeś złą gałąź to ktoś pewnie zwróci Ci na to uwagę i wskaże gdzie powinieneś wysłać swoje zmiany.

Kolejna rzecz to ustawienie nazwy Pull Request’a, to też może zależeć od konwencji w projekcie, także jak w pierwszym kroku zapoznaj się z nimi, ale zazwyczaj w nazwie PR krótko opisujesz co on wnosi.

Została ostatnia rzecz, zanim będziemy mogli kliknąć wyczekiwany zielony przycisk.

Jest to dodanie opisu do naszego PR. Jeśli projekt na GitHubie ma to skonfigurowane to pojawi się template do uzupełnienia, jeśli nie to też zaczerpnijmy wiedzy co tam napisać z pliku o tym jak kontrybuować oraz podglądając PR innych. Dobrą zasadą jednak jest opisanie nieco bardziej szczegółowo co zostało zmienione, np. w liście punktowanej. Jeśli była to zmiana w interfejsie możesz umieścić screena interfejsu po zmianie, jeśli została dodana animacja, to zamieść krótki filmik.

W tym momencie jesteśmy gotowi do wystawienia PR, sprawdzamy jeszcze raz czy wszystko jest ustawione tak jak chcieliśmy. Na koniec przeglądamy kod w poszukiwaniu zmian, których nie chcielibyśmy wystawić w PR.

5. Mamy to

Jeśli wszystko ustawiliśmy tak jak chcieliśmy i nasze zmiany też wyglądają sensownie to klikamy Create pull request. Mamy to! 🎉

Teraz pozostaje nam tylko czekać na feedback.

Ten proces może wydawać się skomplikowany, ale z każdym kolejnym razem staje się coraz bardziej intuicyjny i łatwiejszy.

Podsumowanie

Podsumowując, zaangażowanie w projekty open source to nie tylko doskonała okazja do rozwoju i zdobycia doświadczenia, ale również szansa na budowanie reputacji w branży i przyczynianie się do rozwoju technologii, która ma potencjał zmienić świat.

Dlatego warto poświęcić trochę czasu na zapoznanie się z otwartymi projektami i zacząć działać.

Mam nadzieję, że zachęciłem Cię do zainteresowania projektami open source i do działania w nich!

Znalazłeś błąd lub literówkę?
Napisz do mnie, albo zrób PR na GitHubie!