런치 패드 프로젝트에 패치를 제출하려면 어떻게합니까? 못하는 경우가 종종 Launchpad에서

Git / GitHub 배경을 가지고 Bazaar VCS에 대해 거의 알지 못하는 경우가 종종 Launchpad에서 호스팅되는 프로젝트에 버그를보고하고 패치를 보내려고합니다. “적절한”방법으로 진행하고 싶지만 병합 또는 개선 준비가되어 있습니다.

내 요구에 맞는 적절한 간단한 방법을 찾지 못하는 것 같습니다.

내가 지금까지 한 일 :

  1. 런치 패드 계정을 만들었습니다.

  2. 버그를보고

  3. Bazaar 설치 및 SSH 키 설정 등

이제 그것이 GitHub라면

  1. 레포를 포크,

  2. 갈래 레포 복제

  3. 이름이 지어진 지사를 만들고 일을하고

  4. 커밋 + 푸시,

  5. GitHub WUI를 사용하여 풀 요청을 만듭니다.

그러나 GitHub는 아니며 Launchpad 및 Bazaar 아키텍처는 GitHub / Git 아키텍처와는 상당히 다릅니다.

그래서 친절한 영혼이 많은 양의 문서에서 익사하는 것을 막고 직접적인 단계 경로, 주로 두 번째 부분을 편집 할 수 있습니까? 필요할 때 관련 CLI 명령을 포함시킬 수 있습니까?


편집 : 우분투 패키지 (무엇이든) 또는 Launchpad 프로젝트에 대해 구체적으로 묻는 지 명확히해야합니다.

우분투 패키지와 비 우분투 패키지의 차이점에 대해서는별로 신경 쓰지 않습니다. 모든 소프트웨어는 오늘날 우분투에있을 수 있으며 내일 또는 그 반대 일 수도 있습니다. 개발은 배포보다 훨씬 중요합니다.

그래서 나는 그것을 가정했다

  • Ubuntu에 배포 된 모든 단일 패키지가 Launchpad에서 호스팅되는 것은 아닙니다.

  • 런치 패드에 대한 “공식”또는 “기본”워크 플로우가 존재합니다 (모든 개발자가 Bazaar 사용에 동의 할 수 있다면 대부분 패치 워크 플로우에 동의 할 수없는 이유는 무엇입니까?),

우분투 방식이 아닌 런치 패드 방식에 대해 묻고 있습니다. 그리고 교차로가 넓기 때문에 AU를 선택했습니다.



답변

런치 패드 프로젝트입니까?

(이미 런치 패드 프로젝트임을 알고 있으면이를 건너 뛸 수 있습니다.)

Launchpad에서 발견 된 모든 프로젝트가 실제로 호스팅되고 개발되는 것은 아닙니다. 일부는 다른 곳에서 호스팅되는 코드 미러 (GitHub / Gitorious / etc)이며 다른 프로젝트는 데비안에서 제공됩니다. 이 원본 소스는 “업스트림”프로젝트로 알려져 있으며 일반적으로 소스에서 패치를 제출하고 변경 내용이 우분투에서 “다운 스트림”(보통 다음 릴리스)에 도착하도록하는 것이 가장 좋습니다.

프로젝트 페이지가 다른 곳에서 호스팅되는지 또는 런치 패드에서 명확하게 표시되어야합니다. 그렇지 않은 경우 프로젝트 관리자에게 변경 사항을 수신하는 방법을 문의하십시오. 일부 업스트림 프로젝트는 간단한 패치 파일을 선호하고, 다른 업스트림 프로젝트는 해당 호스트를 통한 제출 / 푸시를 선호합니다.

특별 참고 사항으로 공식 우분투 패키지 (소프트웨어 센터에서 설치할 수있는 공식 우분투 저장소에 저장된 소프트웨어)에는 패치를 제출하는 몇 가지 방법이 있습니다. 패키지의 대부분은 데비안에서 직접 가져 와서 이상적으로 수정해야합니다. 우분투에서만이 아닙니다. (이것은 다른 질문입니다.)

패치를 제출하는 방법

패치를 제출하는 일반적인 방법은 브랜치를 만들고 로컬로 커밋 한 다음 다시 Launchpad로 푸시하는 것입니다.

bzr push lp:~user/project/branch-name

그런 다음 웹 사이트를 통해 또는 bzr lp-propose명령을 사용하여 분기를 분기 한 상위로 병합하도록 분기를 제안 할 수 있습니다 .

버그를 제출했는데 지점에서 수정 한 경우, 000000다른 곳이 아니라 Launchpad에 버그가보고되었다고 가정 할 때 커밋 할 때 다음을 수행해야 합니다. 버그 번호로 대체됩니다.

bzr commit --fixes=lp:000000

“기본”워크 플로우에 대한 참고 사항

이것은 GitHub과 비교할 수 있는 전형적인 최신 워크 플로입니다. 런치 패드는 조금 더 오래 걸렸으므로이 워크 플로우는 처음부터 시스템에 내장 된 것이 아니라 사실 이후에 진화했기 때문에 일부 오래된 프로젝트는 다른 패치 승인 방법에 의존 할 수 있습니다. 그러나 대부분의 모든 최신 프로젝트는 GitHub에서 “풀 요청”이 항상 존재하는 곳에서이 워크 플로에 의존하며 사람들은 GitHub에서 다른 작업을 수행 할 수단이 없기 때문에 기본적으로 사용합니다.


답변

dobey 의 답변 과 프로젝트 별 질문에 대한 Jorge Castro의 답변 을 기반으로 한 초기 답변. 수정 / 수정 / 제안은 환영합니다.

  1. 런치 패드 계정을 작성하십시오. 런치 패드 사용자 이름 ( LP-USER) 이 포함됩니다.

  2. 런치 패드에 SSH 키 추가 https://launchpad.net/~LP-USER/+editsshkeys

  3. 런치 패드에서 프로젝트 이름 ( PROJECT-NAME)을 기록하십시오.

  4. 프로젝트에 대해 문제를보고하십시오. 문제에 버그 번호 ( 000000) 가 할당됩니다 .

  5. Bazaar가 설치되어 있는지 확인하십시오 dpkg-query -l bzr. Bazaar / Launchpad 통합 에 대해 읽을 수 있습니다 .

  6. 구성 BZRbzr whoami "Your Name <name@example.com>"bzr launchpad-login LP-USER

  7. 컴퓨터에서 프로젝트의 로컬 브랜치를 확인하십시오.

    bzr branch lp:PROJECT-NAME
    

    ( PROJECT-NAME최신 프로젝트 코드가 포함 된 폴더가 생성됩니다 .)

  8. 프로젝트를 실행하십시오. 변화시키다. 변경 사항을 테스트하십시오. (이 단계는 프로젝트 및 이슈에 따라 다릅니다.)

  9. 버그 번호 ( 000000)를 포함하여 변경 사항을 커밋하십시오 .

    bzr commit --fixes=lp:000000
    
  10. 변경 사항을 설명하는 변경 로그 항목을 추가 할 수있는 커밋 대화 상자가 열립니다.

  11. 변경 사항을 런치 패드로 푸시하십시오. 계정과 관련된 새 원격 지점이 생성됩니다.

    bzr push lp:~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME
    

    ( NEW-BRANCH-NAME문제가 수정되고 추가 된 기능의 짧은 설명 이름이어야 함)

  12. 브라우저에서 bzr lp-open또는로 이동하여 지점 열기https://code.launchpad.net/~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME/

  13. 와 병합 제안 bzr lp-propose에 붙여 설명을 추가, “병합 제안”또는 선택하여 마지막 단계에서 URL에서 lp:PROJECT-NAME당신이에 제안하고 클릭하여 원하는 지점에 Submit.