【问题标题】:Composer require a fork of a fork作曲家需要一个叉子的叉子
【发布时间】:2017-04-22 12:42:04
【问题描述】:

我的主要目标是更改 slack 存储库中的依赖项版本。
在我的项目中,我需要使用依赖于 slackslack-laravel

我做了什么:

  • 分叉了 slackslack-laravel
  • slack 中更改了所需的依赖版本并将其推送到名为 guzzle-patch 的分支
  • slack-laravel 中的原始 slack 依赖项更改为我的分叉 slack,如下所示:

    "repositories": [
      {
          "type": "vcs",
          "url": "https://github.com/gofilord/slack"
      }
    ],
    "require": {
      "php": ">=5.4.0",
      "maknz/slack": "dev-guzzle-patch"
    },
    
  • 然后我做了一个composer update,它没有任何问题。
  • 最后,我将此更新推送到了我的分叉 slack-laravel 中的新 guzzle-patch 分支

问题:
当我尝试composer update 在我的项目中,指向我的分叉slack-laravel,它会抛出一个错误:

Problem 1
  - Installation request for maknz/slack-laravel dev-guzzle-patch -> satisfiable by maknz/slack-laravel[dev-guzzle-patch].
  - maknz/slack-laravel dev-guzzle-patch requires maknz/slack dev-guzzle-patch -> no matching package found.

我的 composer.json:

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

"require": {
    ...
    "maknz/slack-laravel": "dev-guzzle-patch"
},

【问题讨论】:

    标签: git github dependencies composer-php git-fork


    【解决方案1】:

    您不能简单地要求具有开发稳定性的依赖项,您必须在根包中允许它们。

    此外,您应该根据分支重新考虑。从长远来看,这会对您造成伤害,因为您将很难回滚到已知的工作状态 - 并且在多个包与分支一起使用时,您会添加更多的移动部件,这些部件都以某种方式相互依赖。这将是一团糟,你已被警告过。请注意,标记版本可能是有史以来最简单的方法,它可以防止事情朝南走。

    标记版本将解决您的问题。

    另外,"minimum-stability": "dev" 将允许您需要的所有软件包的开发、alpha、beta 或 RC 版本(可能不是一个非常理想的事情),因此还应该设置"prefer-stable":true

    【讨论】:

      猜你喜欢
      • 2012-11-10
      • 2016-01-30
      • 2014-10-11
      • 2014-12-11
      • 2019-12-24
      • 1970-01-01
      • 2019-02-27
      • 2021-03-03
      相关资源
      最近更新 更多