2012-03-09 1 views
13

CPAN에서 일부 모듈을 다운로드하고 추가 기능을 추가했습니다. 최신 모듈을 CPAN에 게시 할 수 있습니까? 그렇다면 어떻게해야합니까? 전혀 가능합니까? 원래 모듈을 작성한 사람에게 연락해야합니까? 누군가이 특정 모듈을 업데이트하는 절차에 대한 도움을 줄 수 있습니까?CPAN에서 다른 사람의 모듈을 어떻게 업데이트 할 수 있습니까?

+6

관심있는 모듈은 무엇입니까? 작가가 누구야? –

답변

20

공동 관리자가 아니면 같은 이름으로 모듈을 업로드하고 색인을 생성 할 수 없습니다. 다른 이름으로 업로딩하는 것은 커뮤니티에 대해 매우 생산적이지 않습니다. 이제는 두 가지 (또는 그 이상) 약간 다른 버전이 있기 때문입니다.

  • 연락
  • 이 모듈에 대한 RT queue에 패치를 제출 저자 (또는이 문서에서 지정하는 이슈 트래커)는 Github에서에 있다면
  • , 프로젝트를 포크의 변화를 확인하고 제출 끌어 오기 요청

작성자가 응답이없는 경우 (즉, 부정 응답이 아닌 응답 인 경우) pass on maintainership of abandoned modules 수 있습니다. 우리는 원저자 또는 현 관리자에게 응답 할 수있는 기회를주기를 원하기 때문에이 과정을 매우 천천히 진행합니다. 어떤 사람들은 직장이나 휴가 등으로 늪에 빠질 수도 있습니다. 그러나 대부분의 상황은 매우 잘 나타납니다.


PAUSE와 비슷한 항목은 업로드 할 수 있지만 관리자가 아닌 경우 PAUSE가 색인을 생성하지 않습니다. 여전히 CPAN 계정에 표시되며 사람들은 CPAN 웹 사이트를 통해 다운로드 할 수 있지만 CPAN 클라이언트는이를 볼 수 없습니다 (색인에 따라 작동하기 때문에). 일부 검색 사이트는이를 "Unauthorized release"로 표시합니다.

+0

최근에 누군가가 "Test"라는 빈 배포 물을 업로드하여 Test.pm을 사용하는 많은 모듈로 인해 연기 테스트가 실패하게되었습니다. 등록 된 작성자가 아니더라도 색인을 생성하지 않아도 모듈을 업로드 할 수 있습니다. 기본적으로 CPAN 도구 (cpan, cpanm 등)는 인덱싱되지 않은 버전을 선택하지 않습니다. 그러나 여전히 Unauthorized Version으로 존재하며 다운로드하여 설치할 수 있습니다. 그리고 우리가 보았던 것처럼 꽤 혼란을 일으 킵니다. 이 문제를 다루는 실제 테스트 배포판에 최근 RT가 있습니다. – DavidO

+0

"Test"사건은 [email protected]에서도 논의되었습니다. 어떤 연기자는 흡연자에게 "Unauthorized Version"을 설치했고, "plan()"이라는 함수를 포함하지 않았기 때문에 갑자기 Test.pm을 테스트 스위트에 포함시킨 모듈을 업로드 한 사람이 '사용'줄. – DavidO

+1

[cpan-testers thread] (http://www.nntp.perl.org/group/perl.cpan.testers.discuss/2012/03/msg2683.html) –

10

나는 저자에게 연락을 시도하는 것이 좋습니다.

또한 모듈 변경 사항을 rt.cpan.org을 통해 패치로 업로드 할 수 있습니다. CPAN의 모듈 웹 사이트 링크가 있어야합니다. CPAN FAQ: How do I report/fix a bug in a module/script?이 추적 시스템은 버그를보고하는 것뿐만 아니라 귀하의 요청과 같은 요청에 사용됩니다.

15

기능을 추가 한 모듈을 맹목적으로 업로드하는 것은 도움이됩니다. 모듈을 기반으로하는 모듈과 동일한 이름으로 기능을 추가했습니다 (가끔 발생하고 종종 엉망이됩니다). 하지만 도움이 될만한 옵션이 있습니다 :

먼저 모듈 저자 나 관리자에게 연락하여 추가 사항을보고 싶은 diff 또는 패치를 이메일로 보낼 수 있습니다. 관련 문서도 함께 제공하고 근거를 설명하십시오.

모듈 작성자가 패치를 수락하고 모듈 자체의 업데이트에 적용 할 수 있습니다. 또는 creeping featurism을 방지하기 위해 작성자/유지 관리자가 업그레이드 된 기능을 거부 할 수 있으며, 이는 두 번째 옵션으로 이어질 수 있습니다.

두 번째 옵션은 사용자 고유의 PAUSE 계정을 가져와 모듈을 서브 클래스 화하거나 확장하는 것입니다. 그러나 새로운 모듈 이름, 전체 문서 및 아마도 문서 내의 설명은 다음과 같은 추가 기능이있는 xyz 모듈의 확장이라고 할 수 있습니다. Math :: BigInt를 확장하는 경우 그것을 Math :: BigInt :: Frobcinate (단지 예제)라고 부르십시오.

모듈 작성자와 연락을 시도 할 때 기다려주십시오. 때로는 일이 적절한 방향으로 진행되도록 잠시 걸립니다.

+0

필자에게 dist를 전자 메일로 보내기 전에 배포판과 관련된 저장소를 찾는 것이 좋습니다. –

+0

좋은 제안입니다. 또한 종종 모듈의 POD에는 작성자가 모듈을 지원하는 방법에 대한 정보가 포함됩니다. RT 시스템, 메일 링리스트, git 저장소, 개별 전자 메일 또는 위의 일부 조합이 모두 공통입니다. – DavidO