Как требовать вилку с композитором



вот мой композитор.json, я хочу использовать вилку Nodge проекта lessphp на Github



 "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 -> соответствующий пакет не найден.




Я не знаю, как правильно требовать эту вилку...



какие предложения ?

769   6  

6 ответов:

наиболее распространенный (и более простой) способ сделать это-использовать репозиторий VCS.

все, что вам нужно сделать, это добавить вилку в качестве репозитория и обновить ограничение версии для указания на пользовательскую ветвь. Ваша пользовательская ветвь имя должны будет начинаться с dev-.

пример предполагая, что вы исправили монолог, чтобы исправить ошибку в ветке исправления:

{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/igorw/monolog"
        }
    ],
    "require": {
        "monolog/monolog": "dev-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- префикс в имени вашей ветви, но в вашем композиторе.json вы должны добавить его. Ваш файл composer будет выглядеть так:

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

согласно документации композитора http://getcomposer.org/doc/05-repositories.md#vcs, этого достаточно, чтобы укажите исходный репозиторий (не вилку) в require ("nodge/lessphp" в вашем случае). Затем Composer установит вашу вилку (посмотрите на код в поставщиках)

обычно я добавляю узел "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": "*"
    }
}

Я пробовал много вариантов, но после того как я получил этот пост я увидел свет и он просто работал идеально.

это то, что вы должны сделать:

1-Fork de repository

2-Создайте ветку и внесите необходимые изменения.

3-Добавьте метку репозитория к вашему композитору.json

"repositories": [

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

4-в командной строке внутри вашего проекта требуется вилка следующим образом:

composer require vendor/packagename:dev-branchname

И Вуаля!!

у вас есть ваша версия вилки работает

Comments

    Ничего не найдено.