Chcę naprawić błąd. Gdzie zaczynam?

47

Chociaż nie jestem profesjonalnym programistą, napisałem program lub dwa. Jednak obecnie każdy inżynier i naukowiec uczy się również trochę programować i jako taki jestem przyzwyczajony do pisania programów w Pythonie, C i MATLAB. Teraz chcę trochę oddać Ubuntu i jego wspaniałym ludziom i naprawić błąd!

Spojrzałem na listę kampanii bitesize i musiałem stwierdzić, że większość z nich nie jest łatwa do naprawienia, ponieważ podejrzewam, że wymagają dużo czasu, aby zająć się tą sprawą, a ja tego nie mam. Jeszcze odkryłem ten jeden i to wygląda w zarządzaniu i jak funkcja schłodzenia do mnie.

Ponieważ nigdy wcześniej nie napisałem łatki ani nie wypuściłem na wolność programu, nie mam pojęcia, od czego zacząć. Jaki powinien być mój pierwszy krok do rozwiązania tego problemu?

Konkluzja: Gdzie i jak zacząć naprawiać tego faceta?

Ingo
źródło
1
jakie masz tło? Czy znasz systemy kontroli wersji? W praktyce pakowania?
pygabriel
Nie, jeszcze się z tym nie zaznajomiłem! Zastrzega się możliwość zmian ...
Ingo

Odpowiedzi:

31

Odpowiedź na to pytanie może być długa i skomplikowana, więc zamiast tego wskażę Ci dostępne zasoby zamiast je tutaj ponownie przetwarzać.

Dokumentacja

  1. Przygotowanie do programowania Ubuntu
  2. Jak naprawić błędy

Poradniki

Prowadzimy wydarzenia w całym cyklu, aby pomóc ludziom takim jak Ty, w szczególności prowadzimy Tydzień programistów Ubuntu w IRC, który jest tutorialem na żywo oraz warsztatami pytań i odpowiedzi. Jest jeden, który pojawi się pod koniec lutego, jeśli chcesz dołączyć!

Oto dwa dzienniki z poprzedniej sesji, aby dać ci wyobrażenie:

Miejsca do znalezienia możliwości

  • Harvest - to narzędzie przechodzi przez wszystkie łaty i pakiety w Launchpad (a nawet szuka w innych dystrybucjach) w poszukiwaniu łatek. Wiele z nich można zablokować, zastosować, przetestować, a następnie naprawić w Ubuntu, a następnie wysłać w górę.
  • Cleansweep - Lista łatek w Launchpad, które ktoś dołącza do zgłoszenia błędu. Mogą one być przydatne lub nie, należy jednak na nie spojrzeć.

Otrzymywać pomoc

Kontakt z MOTU na liście mailingowej lub IRC to dobry sposób na uzyskanie pomocy w przypadku indywidualnych problemów, na które napotkasz:

Informacje zwrotne

Spędziliśmy dużo czasu na przerabianiu tej dokumentacji, aby była tak łatwa, jak to tylko możliwe, jeśli zrobiłbyś notatki na temat swoich doświadczeń i jak możemy ulepszyć te rzeczy, bardzo przydatne byłoby wiedzieć, jak zmniejszyć ich ssanie dla ludzi takich jak ty.

Jorge Castro
źródło
19

Uogólniona odpowiedź Jorge to świetne wprowadzenie do przeskakiwania w rozwój Ubuntu, ale spróbujmy przyjrzeć się bliżej konkretnemu problemowi ...

Główny programista Apport i opiekun Ubuntu są jednym i tym samym. To trochę dla ciebie upraszcza. Zamiast uczyć się o systemach pakowania i łatek, najprostszą ścieżką jest praca bezpośrednio nad kodem źródłowym.

Rozwój Apport jest hostowany na Launchpad . Wykorzystuje rozproszony system kontroli wersji bazaru do zarządzania kodem źródłowym. Pierwszym krokiem w kierunku naprawienia błędu jest pobranie źródła. Jeśli wcześniej nie korzystałeś z bazaru, warto zacząć od bazaru w pięciominutowym samouczku .

Zainstaluj bazar z:

sudo apt-get install bzr

Ściągnij kod źródłowy apport:

bzr branch lp:apport

Teraz możesz zacząć hakować. Podobnie jak w przypadku większości VCS, podczas pracy z bazarem dobrym pomysłem jest wprowadzenie tylko jednej zmiany na zatwierdzenie. Powinieneś także sprawić, by twoje komunikaty zatwierdzające były pouczające. Sprawia, że ​​zmiany są znacznie łatwiejsze do przejrzenia. Kiedy będziesz gotowy do pierwszego zatwierdzenia, uruchom:

bzr commit -m "My commit message. Did foo to bar in order to achieve baz."

Kontynuuj wprowadzanie zmian i zatwierdzanie, dopóki nie upewnisz się, że błąd został naprawiony. Przy ostatnim zatwierdzeniu możesz oznaczyć go jako naprawiający błąd, dołączając --fixes lp:<bug_number>do polecenia zatwierdzenia. Teraz możesz przesłać zmiany do sprawdzenia i włączenia.

Najpierw musisz przekazać go do Launchpada, aby udostępnić go publicznie:

bzr push lp:~<launchpad_username>/apport/<branch_name>

Twój oddział można teraz znaleźć pod adresem:

https://code.launchpad.net/~<launchpad_username>/apport/<branch_name>/

Uruchomienie bzr lp-openw oddziale otworzy tę lokalizację w przeglądarce.

Teraz chcemy zaproponować połączenie. Na tej stronie wybierz „Zaproponuj połączenie”.

zaproponuj połączenie

Na następnej stronie wybierz gałąź docelową i opisz swoje zmiany.

opisz scalenie

Otrzymasz teraz aktywną propozycję scalenia.

aktywny przegląd

Opiekunowie sprawdzą twoje zmiany. Jeśli są odpowiednie, zostaną połączone i będą dostępne w następnej wersji. Alternatywnie propozycję można ustawić na „Wymaga pracy”, a opiekunowie omówią z Tobą dodatkowe zmiany, które należy wprowadzić przed połączeniem. Jeśli tak się stanie, nie traktuj tego jako osobistej odmowy twojej pracy. Wnosząc wkład w nowy projekt po raz pierwszy, często istnieje niewiele rzeczy, takich jak styl kodowania, o których możesz nie wiedzieć.

andrews coś
źródło