2014-12-31 8 views
5

laravel 패키지 (패키지 A라고 함)를 개발 중이며 다른 패키지 (패키지 B https://github.com/dropbox/dropbox-sdk-php)가 필요합니다.작곡가 종속성에 패키지 포크 사용

내가 패키지 B의 포크 (https://github.com/EmilioBravo/dropbox-sdk-php)를 만들었다는, "fix64"새로운 지점에서 약간의 변화를 만든 작곡가의 문서에 표시된 패키지 A의 composer.json의 저장소로 내 GitHub의의의 repo를 추가 :

나는 패키지 A를 내에서 작곡가 업데이트를 호출하면 메신저 그것에서 다른 프로젝트의 의존성 (프로젝트 C) 및 전화 작곡가 업데이트로 패키지 A를 사용하는 경우
"repositories": [ 
    { 
     "type": "vcs", 
     "url": "https://github.com/EmilioBravo/dropbox-sdk-php" 
    } 
], 
"require": { 
    "php": ">=5.4.0", 
    "illuminate/support": "4.2.*", 
    "dropbox/dropbox-sdk": "dev-fix64" 
}, 

그것이 제대로 내 포크를 다운로드하지만, 작곡가, 그것은 수 있다고 dev-fix64를 찾지 못했습니다. 발견>과 일치 패키지 -

문제 1

- emilio-bravo/platform dev-dropboxfix requires dropbox/dropbox-sdk dev-fix64 -> no matching package found. 
  • 에밀리오-브라보/플랫폼 DEV-dropboxfix이 보관/보관-SDK의 DEV-fix64을 필요로하지 않는다.

  • emilio-bravo/platform dev-dropboxfix -> emilio-bravo/platform [dev-dropboxfix]의 설치 요청이 만족 스럽습니다.

내가 프로젝트 C의 composer.json의 저장소로 내 환매 특약을 추가 할 경우에만 내 포크의 지점을 발견한다.

다른 방법은 내 포크를 만족 저장소에 복제하는 것입니다.

하지만 느낌이 옳지 않습니다. 작곡가가 GitHub에서 포크를 찾도록하려면 어떻게해야합니까?

+1

이 문제에 대한 올바른 해결책을 찾았습니까? 나는 똑같은 문제를 겪고있다. –

+1

[작곡가와 포크를 요구하는 방법] 가능한 복제본 (http://stackoverflow.com/questions/13498519/how-to-require-a-fork-with-composer) –

답변

2

주 프로젝트에 사용자 정의 리포지토리를 추가하는 것은 Composer가 새 소스를 인식하도록하는 유일한 방법입니다. 그렇지 않으면 REPOS은 REPOS이 REPOS를 추가 할 수 있습니다 추가 할 수 있기 때문에

그리고 의도적으로의 repos의 유한 목록을 가지고 보증없이 ..., 이런 식으로 이루어집니다.

또한, REPO을 추가하는 소프트웨어가 발견되어야하는 대한 진술을하지 않습니다, Composer는 모든 태그와 브랜치를 스캔합니다. 이론적으로 저장소는 전혀 다른 잘 알려진 패키지를위한 다른 브랜치를 가질 수 있으며 새로운 버전을 제공하고 악성 행위를 추가 할 수 있습니다. 일반적으로

작곡가 나쁜 결정을받지 않은 사람을 제외하고 원격 코드 실행에 대한 매우 적합에 대한 보호 것으로 보인다. 당신이 packagist.org에 게시 된 패키지에서 버그를 발견하면

그래서, 모두를위한 최선의 방법은 끌어 오기 요청을 제안하는 것이다. 두 번째 가장 좋은 방법은 프로젝트를 새로운 이름으로 포크하고 packagist.org에도 게시하는 것입니다. 동일한 프로젝트 이름으로 포크 된 레포를 사용하여 문제를 패치하고 Composer를 가리키는 것은 최악의 솔루션이며 일반적으로 자신의 프로젝트의 종속성에 대해서만 가능합니다.

관련 문제