it-source

작곡가에게 포크를 어떻게 요구합니까?

criticalcode 2023. 2. 2. 21:09
반응형

작곡가에게 포크를 어떻게 요구합니까?

이건 내 거야composer.jsonGithub에서 Nodge의 lessphp 프로젝트 포크를 사용하고 싶다.

 "repositories": [{
    "type": "package",
    "package": {
        "version": "dev-master",
        "name": "nodge/lessphp",
        "source": {
            "url": "https://github.com/Nodge/lessphp.git",
            "type": "git",
            "reference": "master"
        },
        "autoload": {
            "classmap": ["lessc.inc.php"]
        }
    }
}],
"require": {
    "php": ">=5.3.3",
    "nodge/lessphp": "dev-master"
},

그러나 실행 시 이 오류가 발생합니다.composer update:

nodge/lessphp dev-master -> 일치하는 패키지를 찾을 수 없습니다.

나는 이 포크를 어떻게 정확하게 요구하는지 모르겠다.

가장 일반적이고 쉬운 방법은 VCS 저장소를 사용하는 것입니다.

저장소로 포크를 추가하고 사용자 지정 분기를 가리키도록 버전 제약 조건을 업데이트하기만 하면 됩니다.커스텀 브랜치명 에 가 붙어야 합니다.

monolog/monolog를 fork하여 bugfix라는 브랜치를 작성했다고 가정하면 다음과 같이 composer.json을 업데이트합니다.

{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/igorw/monolog"
        }
    ],
    "require": {
        "monolog/monolog": "dev-bugfix"
    }
}

bugfix 브랜치를 지정하는 경우를 제외하고 require 문을 변경하지 마십시오.아직 업스트림패키지를 참조하고 있습니다(monolog/monolog, 퍼스널 포크가 아닙니다( ).igorw/monolog)와 브랜치명 앞에 붙습니다.dev-자세한 내용은 문서에서 확인할 수 있습니다.

VCS 사용 방법:

"name": "test/test",
"repositories": [{
    "type": "vcs",
    "url": "http://github.com/Nodge/lessphp"
}],
"require": {
    "leafo/lessphp": "dev-master"
},

단, 이 기능이 있는 모듈이 필요한 경우composer.json,동작되지 않습니다.포크가 아닌 원래 프로젝트를 설치합니다.

"name": "example/example",
"require": {
    "test/test": "dev-master"
},

저장소를 다시 언급해야 합니다.그게 정상인가요?

@Neilime answer를 사용할 수 없는 경우 포크가 다른 브랜치를 사용하는지 확인하십시오.

예를 들어, 변경 내용을 포크의 브랜치로 푸시합니다.my-bugfix, 추가하지 않음dev-composer.json에는 prefix를 추가해야 합니다.작성자 파일은 다음과 같습니다.

"repositories":
[
    {
        "type": "vcs",
        "url": "http://github.com/yourname/packageName"
    }
],
"require": {
    "owner/packageName": "dev-my-bugfix"
},

저는 여러 가지 방법을 시도해 보았지만, 이 게시물을 받은 후 빛을 보았고, 그것은 완벽하게 작동했습니다.

다음 작업을 수행해야 합니다.

1-저장소 포크

2- 브런치를 만들고 필요한 변경을 합니다.

3- 저장소 라벨을 composer.json에 추가합니다.

"repositories": [
     
        {
            "type": "vcs",
            "url": "https://github.com/user/yourforkname"
        }
    ]

4- 프로젝트 내 명령줄에 다음과 같이 포크가 필요합니다.

composer require vendor/packagename:dev-branchname

그리고 Voila!!

포크 버전이 작동 중입니다.

Composer 문서 http://getcomposer.org/doc/05-repositories.md#vcs,에 따르면 포크가 아닌 원래 저장소를 지정하면 됩니다.require("고객님의 경우 "classge/lessphp")Composer가 포크를 설치합니다(벤더의 코드를 참조).

그래서 지금은 2019년이고, 여기 있는 대부분의 답은 이미 정답입니다.

단, 자신이 작성한 포크의 특정 브랜치가 필요한 경우에는 먼저 사용 가능한 버전/태그 목록을 작성자에게 제출하도록 지시합니다.덕분에 많은 시간을 절약할 수 있었어요.

「 」를 사용한 한 예spatie/laravel-backup★★★★★★★★★★★★★★★★★★.

「」를 추가해 주세요.repositoriesjson.json .

"repositories": [{
   "type": "vcs",
   "url": "https://github.com/holymp2006/laravel-backup"
 }]

사용 가능한 버전/태그 가져오기

composer show "spatie/laravel-backup" --all

.versions 후, 그 「」을 합니다.

composer require spatie/laravel-backup:v5.x-dev

패키지 정의에 보통 "dist" 노드를 추가합니다.이런 식으로 사용하는 데 문제가 있었던 적은 없습니다.

근데 어디서 이런 속임수를 썼는지 기억이 안 나네요. 더 이상 설명을 드리자면요.

{
    "repositories": [
        {
            "type": "package",
            "package": {
                "version": "dev-master",
                "name": "nodge/lessphp",
                "source": {
                    "url": "https://github.com/Nodge/lessphp.git",
                    "type": "git",
                    "reference": "master"
                },
                "autoload": {
                    "classmap": ["lessc.inc.php"]
                },
                "dist": {
                    "url": "https://github.com/Nodge/lessphp/archive/master.zip",
                    "type": "zip"
                }
            }
        }
    ],
    "require": {
        "nodge/lessphp": "*"
    }
}

응용 프로그램을 사용했을 때, 포킹하고 수정한 의존 관계가 필요했을 때, 수용된 답변과 명확한 답변이 모두 나에게 효과가 있었습니다.나는 이 경우에도 여전히 인정된 답을 사용할 것이다.

하지만, 제가 Packagist에 제 자신을 배포하고 싶었을 때, 이 접근법은 더 이상 효과가 없었습니다.

「이러다」, 「이러다」가 됩니다. -> no matching package found.에러 메시지

답변과 연결된 Composer 문서는 repo 설정이 최상위 수준이어야 함을 나타냅니다.composer.json 이 하는 는, 「」, 「」, 「」, 「」, 「」에그을 추가할 필요가 있습니다composer.jsonfile too: 설치 프로세스에 불필요한 혼란이 가중됩니다.

대신, 나는 Packagist에게 내 포크를 발행했다.포크는 눈살을 찌푸리게 하지만, 이 새로운 패키지에 사용하기 때문에 유지 보수용 포크로 간주될 것으로 알고 있습니다.

배포하고 싶은 패키지나 라이브러리에서 이러한 문제가 있는 사용자에게 도움이 되었으면 합니다.

언급URL : https://stackoverflow.com/questions/13498519/how-to-require-a-fork-with-composer

반응형