development

작곡가와 포크를 요구하는 방법

big-blog 2020. 6. 14. 09:43
반응형

작곡가와 포크를 요구하는 방법


여기 내 composer.json이 있습니다 .Github에서 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"
},

하지만 업데이트 할 때이 오류가 있습니다.

nodge / lessphp dev-master-> 일치하는 패키지가 없습니다.

이 포크를 올바르게 요구하는 방법을 모르겠습니다 ...

어떤 제안?


가장 일반적이고 쉬운 방법은 VCS 리포지토리를 사용하는 것입니다.

포크를 리포지토리로 추가하고 사용자 지정 분기를 가리 키도록 버전 제약 조건을 업데이트하기 만하면됩니다. 사용자 지정 분기 이름 앞에 접두사가 있어야합니다dev- .

버그 픽스 브랜치에서 버그를 수정하기 위해 모노로그를 패치했다고 가정하는 예제 :

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

bugfix 브랜치를 지정하는 것 외에는 require 문을 변경하지 마십시오. 개인 포크 ( )가 아닌 업스트림 패키지 ( monolog/monolog)를 계속 참조하십시오 . 문서에서 세부 정보 읽을 수 있습니다igorw/monolog


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 답변을 얻을 수 없다면 포크가 다른 지점을 사용하는지 확인하십시오.

예를 들어 my-bugfix, 포크에있는 분기에 변경 사항을 푸시하십시오. dev-분기 이름 접 두부를 추가하지 말고 composer.json에 추가해야합니다. 작곡가 파일은 다음과 같습니다.

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

According to the Composer documentation http://getcomposer.org/doc/05-repositories.md#vcs, it's enough to specify the original repository (not the fork) in the require ("nodge/lessphp" in your case). Composer will then install YOUR fork (look at the code in the vendors)


I have tried many options but After I got this post I saw the light and it just worked perfect.

This is what you have to do:

1- Fork de repository

2- Create a branch and make the required modifications.

3- Add the repository label to your composer.json

"repositories": [

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

4- In the command line inside your project require your fork like this:

composer require vendor/packagename:dev-branchname

And Voilá!!

You have your fork version working


I usually add a "dist" node to the package definition. I never had a problem using it this way.

I can't remember where I got this trick from, though, for any further explanations.

{
    "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": "*"
    }
}

So, this is 2019, and most of the answers here are already correct.

If you find yourself however, in a situation where you need to require a particular branch of your fork (that you created), have composer list the available versions/tags first. This saved me a lot of time.

A full example with spatie/laravel-backup package.

First, add repositories key to composer.json. With the url of your fork

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

Get available versions/tags

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

Choose the version you want from versions in the terminal output, then require that version

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

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

반응형