(주로) 포기한 GitHub 프로젝트에 어떻게 기여해야합니까?


43

나는 최근 GitHub에서 오픈 소스 협업을 시도하고 있으며 선호하는 진행 방법이 궁금한 상황에 처했습니다.

약 한 달 전, GitHub에서 이미 한동안 사용하고 있었고 몇 가지 버그를 발견하고 수정 한 라이브러리에 대한 프로젝트를 발견했습니다.

GitHub 공동 작업을 처음 시작했을 때 최근 활동이 가장 많고 버그를 수정하고 단위 테스트를 추가하고 GitHub로 푸시하여 풀 요청을 한 것으로 보이는 레포를 발견했습니다. 몇 시간 안에 내가 갈래 한 레포의 관리자는 PR을 받아들이고 기다리고 있던 다른 사람들의 다른 PR들과 합병했다.

이것에 의해, 나는 내가 찾은 3 개의 버그를 수정했다. 각각의 버그는 각각 다른 리포지토리에 있고, 각각에 대한 이슈와 풀 요청을 제출했다.

한 달 전이었고 풀 요청은 그 이후로 그대로 유지되었습니다. 내가 리 포크 한 리포지토리 사용자는 지난해 GitHub에 총 7 건의 기여를 한 적이 많지 않은 것처럼 보였으며 해당 리포지토리는 첫 번째 풀 요청 이후 커밋이 없었습니다.

그래서 내 질문 :

이 상황에서 어떻게 진행됩니까? 이상적으로는 부모 리포지토리에 병합되지 않은 자체 리포지토리에서 변경하고 변경하여 라이브러리의 조각화를 피하고 싶습니다. 그럼에도 불구하고 계속 버그 수정 및 기능 추가를 원하지만 모든 것을 내 마스터 브랜치에 병합하고 해당 브랜치에서 모든 새로운 수정 사항을 기반으로하면 포크 한 리포지토리의 관리자가 돌아 오면 승리합니다. 모든 변경 사항을 각 기능 / 버그 수정에 대해 별도의 풀 요청으로 분할 할 수 없습니다 (풀 요청은 일반적으로 기능 또는 버그 수 정당 하나의 풀 요청이어야 함을 읽었습니다).

원래 리포지토리와 같은 단계의 분기 하나를 유지하고 새 분기를 모두 그 분기에서 제외한 다음 모든 커밋을 마스터 분기에 병합해야합니까? 새로운 변화를 마스터 지점에 병합해야 할 때마다 전체 지점과 점점 더 부담스러운 작업이 생길 것 같습니다.

이와 같은 상황에 접근하는 일반적인 방법은 무엇입니까? 새로운 풀 요청을 검토하지 않는 원래 기고자들과 함께 프로젝트가 중단되는 것이 일반적입니다. 누군가가 단지 지배권을 잡고 그것을 실행해야하는 상황입니까? 원래 기여자가 다시 돌아와서 프로젝트를 다시 수행하려는 경우 조각화가 발생하는 것처럼 보입니다.


4
이 질문이 흥미로울 경우 새로운 오픈 소스 스택 교환 사이트 제안에 관심이있을 수 있습니다.
Philipp

호기심 많은 구경꾼들을 위해 이메일 대화에서 나온 내용을 공유 할 수 있습니까? :)
winkbrace 10

@winkbrace 지금까지는 아무것도 없습니다. 응답을받지 못했지만 이틀 전에 만 전자 메일을 보냈습니다. 무언가가 발전하면 모든 것을 알려 드리겠습니다.
JLRishe 2019

답변:


39

나는 아직이 상황을 겪지 않았지만 그것이 내가 시도하는 것입니다.

소유자에게 연락하십시오

어쩌면 그들은 실제로 관심을 잃었지만 다른 사람, 특히 이미 헌신적 인 헌신을 보여준 사람에게 프로젝트를 기꺼이 옮기려고합니다.

그러나 그들은 아마도 다른 일 (일, 휴가, 질병, 다른 프로젝트)을 점령하고 PR을 처리 할 시간이 없었지만 나중에 그렇게 할 계획이 있습니다.

또는 어떤 이유로 든 프로젝트 작업을 실제로 중단했을 수도 있습니다.

묻지 않으면 찾을 수 없습니다.

커뮤니티와 연락하십시오

분명히 프로젝트에 기여했거나 적어도 프로젝트를 사용한 다른 사람들이 있습니다. 프로젝트를 분기 한 사람을 확인하십시오 (변경하지 않았더라도이 프로젝트가 번창하는 것에 관심이있을 수 있음). 누가 문제를보고했는지, 또는 댓글을 달았는지 확인하십시오. GitHub 외부에 메일 링리스트, 포럼 또는 StackOverflow 멤버와 같은 커뮤니티가있을 수도 있습니다.

나는 결국 당신이 정말로 프로젝트를 인수합니다. 당신은 그들의 지원을 원할 것입니다. 그리고 새로운 마스터 리포지토리가 어디에 있는지 알아야합니다.

좋은 풀 요청을 계속하십시오

이것은 당신이 그것에 대해 진지한 소유자와 지역 사회를 보여주고, 그들이 당신의 기여를 판단하도록합시다.


1
감사합니다. 좀 더 검색 한 후이 조언은 npm 패키지와 함께 이러한 상황에 사용할 수있는 지침과 비슷 합니다 . 방금 소유자에게 이메일을 보냈으며 응답 내용을 확인할 수 있습니다.
JLRishe

리포지토리의 "소유자"가 실제로 수십 명의 사용자가있는 조직인 경우 특정 리포지토리에 대한 PR을 승인 할 수있는 사람을 찾기가 매우 어렵습니다.
cowlinator

15

원래 리포지토리의 소유자를 찾을 수없고 상당한 부재가있는 경우 다른 버전의 프로젝트로 내 리포지토리를 게시합니다.

이를 통해 라이브러리 개발을 주도하고 다시 업데이트하지 않고 모퉁이에서 죽지 않도록하십시오. 원래 소유자가 저장소를 닫은 경우에도 여전히 포크 버전을 사용할 수 있습니다.


1
예, 간단히 fork프로젝트와에서 README.md원본 소유자에게 참조 및 "감사"를 남깁니다.
Jared Burrows

답변 주셔서 감사합니다 (+1). 당신은 확실히 좋은 지적을합니다. 나는 궁극적으로 이것에 의지 할 수 있지만, 지금은 oefe의 조언을 따르고 전자 메일을 통해 repo의 소유자와 연락 할 수 있는지 확인할 것입니다.
JLRishe

물론, 저장소가 망각에 빠지지 않도록하십시오. Github 어딘가에 좋은 코드가 많이 숨겨져 있으면 원래 소유자가 더 이상 존재하지 않습니다.
cllamach

비슷한 상황에 있으며이 옵션을 사용해야 할 수도 있습니다. 프로젝트의 원래 소유자가 반복적 인 접촉 시도에 응답하지 않았습니다. 프로젝트의 이름을 유지하고 마지막 공식 버전에서 버전 번호를 계속 증가시키는 것이 정직한가? 이름을 변경하면 프로젝트의 기존 사용자가 찾기가 더 어려워 질까 걱정됩니다.
pericynthion

1
나도 그 상황에있을 수 있습니다. 그러나 원래 프로젝트는 이미 Bower에 등록되어 있습니다. 이름을 유지한다는 것은 원저자에게 등록을 취소하거나 Bower 관리자에게 연락하여 개입을 요청해야한다는 의미입니다. 그래도 후자를 신경 쓰지 않습니다. 이름을 바꾸는 것이 가장 좋습니다.
Lawrence I. Siden

0

오늘날 대부분의 중소 규모의 무료 및 오픈 소스 프로젝트가 github, gitlab 또는 이와 유사한 호스트에서 호스팅되므로 웹 API를 사용하여 일부 프로세스자동화 할 수 있습니다 .

원래 저장소가에 있다고 가정하면 https://github.com/someUserX/projectY/프로세스는 다음과 같습니다.

  1. ( "manual") 최소한 git committer 이메일과 이슈 (활성화 된 경우)를 통해 다른 방식으로 원저자에게 연락하십시오.

    몇 주 내에 허가를 받았거나 응답이없는 경우, 호스팅 업체 웹 API를 사용하여 다음과 같은 단계를 수행하는 스크립트를 실행할 수 있습니다.

  2. 이라는 새로운 (GitHub) 조직을 projectY만들고 그 안에 원래 저장소를 포크하십시오.https://github.com/projectY/projectY/

  3. 원래 작성자 및 풀 요청의 모든 작성자 (이미 병합되어 여전히 열려있는)를 조직 관리자로 추가
  4. 새 포크의 원래 저장소에서 모든 (열린) 풀 요청을 다시 작성하십시오.
  5. (공개) 문제와 동일하게 수행하십시오.
  6. 모든 리포지토리 관리자에게 알립니다
  7. "폐기 된"/ "아카이브 된"통지를 추가하고 README 상단의 새 리포지토리에 링크를 추가하여 이전 리포지토리에 대한 마지막 풀 요청을 만듭니다.

이 접근 방식에서 볼 수있는 주요 문제는 일부 "나쁜"기고자에게 관리자 액세스 권한이있을 수 있지만 자유 소프트웨어 전도자 인 Pieter Hintjens가 설명하는 것처럼 (예 :이 대화에서) 잘못된 커밋은 간단히 되돌릴 수 있으며 살아있는 프로젝트이며 나쁜 커미터가 시간이 지남에 따라 좋은 프로젝트가 될 수 있도록 도와줍니다.
hoijui
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.