버그를 수정하고 싶습니다. 어디서부터 시작해야합니까?


47

나는 전문 프로그래머는 아니지만 프로그램을 작성했습니다. 그러나 오늘날 모든 엔지니어와 과학자는 약간의 프로그래밍을 배우므로 Python, C 및 MATLAB으로 프로그램을 작성하는 데 익숙합니다. 이제 우분투와 그 위대한 사람들에게 약간을 돌려주고 버그를 수정하고 싶습니다!

나는 물린 캠페인 목록을 보았고 문제에 들어가는 데 많은 시간이 필요하다고 생각하기 때문에 대부분의 문제를 해결하기가 쉽지 않다는 것을 알아야했습니다. 아직 내가 발견 한 이 일을 하고 그것을 관리하고 나에게 멋진 기능처럼 보인다.

그래도 패치를 작성하거나 프로그램을 공개하지 않았으므로 어디서부터 시작해야할지 모르겠습니다. 그 문제를 해결하기위한 첫 단계는 무엇입니까?

결론 : 그 사람을 어디서 어떻게 고치려면 어떻게해야합니까?


1
당신의 배경은 무엇입니까? 버전 관리 시스템에 익숙하십니까? 포장 관행에서?
pygabriel

아니요, 아직 익숙하지 않습니다! 변경 될 수 있습니다 ...
Ingo

답변:


31

이 질문에 대답하는 것은 길고 복잡해질 수 있으므로 대신 여기에서 다시 해시하는 대신 사용 가능한 리소스를 알려 드리겠습니다.

문서

  1. 우분투 개발을위한 준비
  2. 버그 수정 방법

튜토리얼

우리는 사이클 전반에 걸쳐 이벤트를 진행하여 여러분과 같은 사람들을 돕습니다. 특히 IRC에서 Ubuntu Developer Week 를 운영 합니다.이 튜토리얼은 라이브 자습서 및 질문 및 답변 워크숍입니다. 2 월 말에 가입하고 싶은 사람이 있습니다.

지난 세션에서 얻은 두 가지 로그는 다음과 같습니다.

기회를 찾을 수있는 장소

  • 하베스트 -이 도구는 런치 패드의 모든 패치와 패키지를 거치며 다른 배포판에서도 패치를 찾습니다. 이것들 중 많은 것들이 우분투에서 납치되고, 적용되고, 테스트되고, 수정 된 다음 업스트림으로 보내질 수 있습니다.
  • Cleansweep- 누군가가 버그 보고서에 첨부 한 런치 패드에있는 패치 목록입니다. 이것들은 유용 할 수도 있고 그렇지 않을 수도 있지만 여전히 살펴 봐야합니다.

도움을 받다

메일 링리스트 또는 IRC에서 MOTU에 연락하면 다음과 같은 개별 문제에 대한 도움을 얻을 수 있습니다.

피드백

우리는 가능한 한 쉽게이 문서를 재 작업하기 위해 많은 시간을 보냈습니다. 당신의 경험에 대해 메모하고이 자료를 개선 할 수있는 방법을 알고 있다면, 당신.


19

Jorge의 일반 답변은 Ubuntu 개발에 뛰어 들기에 대한 훌륭한 소개이지만 특정 문제를 조금 더 자세히 살펴 보겠습니다 ...

Apport의 주요 업스트림 개발자와 Ubuntu 관리자는 동일합니다. 이것은 당신을 위해 일을 조금 단순화합니다. 패키징 및 패치 시스템에 대해 배우지 않아도되는 가장 쉬운 방법은 업스트림 코드에서 직접 작업하는 것입니다.

Apport의 개발은 Launchpad에서 호스팅됩니다 . 시장 분산 버전 제어 시스템을 사용하여 소스 코드를 관리합니다. 버그 수정을위한 첫 단계 는 소스를 얻는 것입니다. 이전에 시장을 사용한 적이 없다면 5 분 동안시장에서 자습서 를 시작하는 것이 좋습니다.

다음과 같이 시장을 설치하십시오.

sudo apt-get install bzr

apport의 소스 코드를 가져옵니다.

bzr branch lp:apport

이제 해킹을 시작할 수 있습니다. 대부분의 VCS와 마찬가지로, 바자 작업시 커밋 당 하나만 변경하는 것이 좋습니다. 또한 커밋 메시지를 유익하게 만들어야합니다. 변경 사항을 훨씬 쉽게 검토 할 수 있습니다. 첫 번째 커밋을 할 준비가되면 다음을 실행하십시오.

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

버그가 수정되었다고 확신 할 때까지 계속 변경하고 커밋하십시오. 마지막 커밋 --fixes lp:<bug_number>을 사용하면 commit 명령 을 추가하여 버그를 수정하는 것으로 태그를 지정할 수도 있습니다 . 이제 검토 및 포함을 위해 변경 사항을 제출할 준비가되었습니다.

먼저 공개적으로 사용 가능하게하려면 Launchpad로 푸시해야합니다.

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

이제 지점을 찾을 수 있습니다 :

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

bzr lp-open지점에서 실행 하면 브라우저에서 해당 위치가 열립니다.

이제 병합을 제안하고 싶습니다. 해당 페이지에서 "병합 제안"을 선택하십시오.

합병 제안

다음 페이지에서 대상 브랜치를 선택하고 변경 사항에 대한 개요를 제공하십시오.

병합 설명

이제 병합 제안이 활성화되었습니다.

적극적인 검토

관리자가 변경 사항을 검토합니다. 적절한 경우 병합되어 다음 릴리스에서 사용할 수 있습니다. 또는 제안서가 "작업 필요"로 설정 될 수 있으며 관리자는 병합하기 전에 수행해야 할 추가 변경 사항에 대해 논의합니다. 이런 일이 발생하면 어떤 종류의 작업을 개인적으로 거부하지 마십시오. 처음으로 새 프로젝트에 참여할 때 코딩 스타일과 같이 모르는 경우가 거의 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.