오픈 소스 애플리케이션 수정


9

원래 작성하지 않은 오픈 소스 응용 프로그램에 기능을 추가하려는 경우 일반적인 작업 과정은 무엇입니까? 코드를 어떻게 알 수 있습니까? 변경하거나 추가해야하는 지점을 어떻게 찾습니까? 실제로 다른 것을 깨지 않고 어떻게 변경합니까? 모든 것이 여전히 작동하는지 어떻게 테스트합니까?
그러한 프로젝트에 대한 일반적인 지침은 무엇입니까?


2
또한 변경 사항 을 일반적으로 패치로 프로젝트에 제출하여 다른 사람들이 혜택을 볼 수 있도록해야합니다.

답변:


6

어떤 프로토콜이 있습니다. 모두 시간이 지남에 따라 모두가 결정되지만 여기서는 풀립니다.

  • 분산 소스를 다운로드하십시오.
  • 혼자서 코드를 탐색하기 시작합니다.

    • 컴파일 된 프로그램 인 경우 이제 컴파일 방법을 배웁니다 .
    • 컴파일에 실패하면 작성자 / 메일 링리스트에보고하고 지시 사항을 요청하십시오.
  • 코드에 대해 정말로 이해하지 못하면 ...

    • 글쎄요, 당신 그들에게 가까이 묻지 않습니다 .
    • 당신은 아마 파에 있지 않고 실제로 도움이 될 수 없기 때문에 그것을 버립니다 .
    • 작성자가 기능 요청을 수락하면 기능을 제출합니다.
  • 그밖에

    • 변경하려는 지점을 찾으십시오.

    • 사소한 세부 사항에 대해 궁금한 경우 작성자 / 메일 링리스트를 요청하고 의도를 설명하십시오.

    • 배포판의 기본 디렉토리 (untarring / unzipping에서 나오는 최상위 디렉토리)로 CD를 넣습니다.

    • 당신 diff -ur . > mypatch.path

    • 당신 mypatch.patch은 당신이 한 일, 왜 그 일을했는지, 그리고 당신이 이미 거기에있는 것처럼 패치에 대한 권리를 포기한다는 것을 명확하게 진술합니다.

  • 저자가 귀하의 기여를 좋아하지 않는 경우

    • 어떤 종류의 플러그인으로 수정 사항을 릴리스 할 수있는 방법이 있는지 확인하십시오.

      • 이 경우 이제 플러그인 관리자 가 되려고합니다 .
    • 그밖에

      • 블로그의 상황에 대해 불을 지르고 패치를 릴리스하고, 무료로 귀하의 설명과 분노를 다운로드하고 시도하십시오.

      • 당신은 지금 귀신 다음 버그 시스템 / 메일 링리스트는 패치에 대한 지원을 구매하려고합니다. 금지하지 마십시오.

    • 이 경우 코드를 포크하지 않습니다 . 매우 피곤하고 보람이없는 프로세스이므로 시간을 거의 맞추지 못할 것입니다. 사용자를 슬프고 혼란스럽게 만듭니다. 포크는 실제로 대기업이 OSS에 대한 결정을 괴롭 히려고 할 때만 발생 합니다.

  • 그밖에

    • 해당 저자로부터 추가 지침을받습니다

측면에서 : diff -ur .패치에 대한 최신 대안 이 있으며 github way 입니다.

  • 당신은 당신의 이름으로 github에서 그들의 코드를 "포크"합니다
    (이제 당신의 계정에 그들의 코드 사본이 있습니다)
  • 당신의 자식을 당신의 개인 사본에 연결하십시오.
  • 수정하고 체크인하고
  • 메인 저자에게 github 프로젝트를 보도록 지시하십시오.

  • 그들이 좋아한다면, 그들은 동기화 됩니다.

  • 그렇지 않으면 블로그에서 "gitfork"를 연결할 수 있습니다.

OP가 새로운 기능 패치를 수용하지 않은 것에 대해 제품 작성자가 불길을 내밀기 전까지는 좋았습니다. 재미 있거나 진지한 것이 확실하지 않은지 확실하지 않습니다. 제품 팀은 새로운 기능 패치를 좋아하거나 원하지 않습니다. 반드시 결정을 내리는 것이 어떻든 상관없이, 그것을 게시하되 받아들이지 않으면 항상 장엄하다. -1-참고로, 투표를 취소하면 기꺼이 투표를 취소합니다.
ocodo

변경하려는 응용 프로그램은 엄격한 표준을 따르므로 변경하면 표준을 위반하게됩니다. 패치를 적용 할 위치에 있지 않다고 생각합니다.
Dani

@Slomojo OSS는 미성숙 한 사람들로 가득 차 있으며, 이런 종류의 일은 항상 발생합니다. 모두가 노새처럼 일할 수 있도록 준비한 다음 때로는 단단 하고 때로는 무가치 한 것에 근거하여 거부해야합니다 . 그리고 적어도, 당신은 항상 그것에 대해 뛰어 다닐 기회가 있으며 당신이 옳다고 생각하는 사람들을 찾으십시오. 이제 에도 불구하고 밖으로 분기 , 그것은 것 잘못 하고 취할 매우 kiddish 단계.
ZJR

@Dani lol, 당신은 정말로 공유를 패치하고 그것에 대해 줘야합니다 . 그것은 당신의 인생을 소비 할 것이므로, 돈을 지불하지 않고 계속 리팩토링하는 느낌이 든다. 어쨌든 메일 링리스트와 버그 리포트 시스템 (있는 경우)을 확인하여 누군가 그런 종류의 확장에 관심이 있는지 알아보십시오. Aaaand의 가장 좋은 점은 확장 할 API가 있거나 변경 사항을 플러그인하는 플러그인이 있다는 것입니다. 그런 경우에는 항상 플러그인을 관리 하는 것이 가장 좋습니다 . ... 편집 할 것입니다.
ZJR

2
자동화 된 테스트 사례가있는 경우 패치를 제출하기 전에 실행하십시오.
oenone

0

일반적으로

임의의 OS 프로젝트 인 경우 사소한 버그를 수정했을 것입니다.

결국 "패치"로 많은 변경 사항을 제출하게됩니다.

일반적으로 물건이 좋으면 커밋 권한을 얻습니다.

나는 질문으로 인해 가능한 한 일반적으로 모호하고 비 특정 적으로 이야기하고 있습니다.

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