我正在尝试让作曲家使用我自己的图书馆叉子.
原始:https://github.com/KnpLabs/php-github-api
我的叉子:https://github.com/TransitScreen/php-github-api
只需将其添加到composer.json中,便能够使用composer安装原始版本:
{
"require": {
"knplabs/github-api": "~1.4"
}
}
我在文档中遵循了the instructions,并将其更改为:
{
"repositories": [
{
"type": "git",
"url": "https://github.com/TransitScreen/PHP-github-api.git"
}
],
"require": {
"knplabs/github-api": "dev-master"
},
"minimum-stabilitiy": "dev"
}
在我的分叉存储库中,我同时创建了master和dev-master分支.我不清楚哪个是正确的,所以我都做到了.我也尝试过使用“ type”:“ vcs”并从URL中删除.git.两者均无效.我运行composer update,然后composer.lock文件仍然指向原始存储库URL,而不是我的URL.因此,当我运行composer install时,永远都不会得到更改.
我究竟做错了什么??
PS:我注意到我要分叉的库在composer.json文件中包含此文件:
"extra": {
"branch-alias": {
"dev-master": "1.4.x-dev"
}
}
我还没有找到任何文档来解释别名可能产生的影响.例如,我的分叉存储库应该有一个1.4.x分支吗?
更新1
顺便说一句,我知道我的某些配置必须正确,因为在删除缓存后运行composer update时,有一段时间我看到它正在读取(正确的)存储库的composer.json.但是之后,composer.lock仍然指向原始(不正确).
更新2
我也尝试使用composer update –prefer-source,但仍然无法正常工作.
解决方法:
我解决了这个问题!
我已经在我的分支存储库中编辑了composer.json文件…看起来像这样:
{
"name": "knplabs/github-api",
"type": "library",
"description": "GitHub API v3 client",
"homepage": "https://github.com/TransitScreen/PHP-github-api",
"keywords": ["github", "gh", "api", "gist"],
"license": "MIT",
但是我将其更改为:
{
"name": "transitscreen/PHP-github-api",
"type": "library",
"description": "GitHub API v3 client",
"homepage": "https://github.com/TransitScreen/PHP-github-api",
"keywords": ["github", "gh", "api", "gist"],
"license": "MIT",
我以为该名称需要与新存储库匹配,但是我错了.当我将其更改回原始名称时,一切正常!
非常感谢@Tomas提供有用的故障排除提示.
我在任何地方都没有找到有关此文档的任何文档,因此我对作曲家文档进行了更新:https://github.com/composer/composer/pull/4329