Composer/Packagist无法找到最小稳定性要求的软件包。

41

我正在尝试安装以下composer包:

composer require cr/hashcli

这是我打包的一个软件包,但在尝试安装时出现以下错误:

[InvalidArgumentException] 无法找到符合您最低稳定性(stable)要求的任何版本的cr/hashcli软件包。请检查软件包拼写或您的最低稳定性。

我的composer.json如下:

{
"name": "cr/hashcli",
"description": "HashCLI - PHP CLI Tool For hashing",
"type": "library",
"keywords": ["hash", "cli"],
"license": "MIT",
"require": {
    "php": ">=5.5"
},
"require-dev": {
    "phpunit/phpunit": "^5.7"
},
"bin":[
    "src/hashCLI"
],
"autoload": {
    "classmap": [
        "src/"
    ]
},
"autoload-dev": {
    "classmap": [
        "tests/"
    ]
}
}
任何想法为什么会发生这种情况,以及我如何解决这个问题?
4个回答

99

该软件包没有稳定的版本。请使用

composer require cr/hashcli:dev-master

编辑:现在你可以检查 dev-main 而不是 dev-master。


4
什么条件才能拥有一个稳定的版本? - Cláudio Ribeiro
5
这个软件包的作者需要发布稳定版本。 - Bizley
7
@Bizley的回答帮了我!如果要使用一个不稳定的软件包,您可以将minimum-stability设置为dev并将prefer-stable设置为true。但是,如果您正在编写一个包并希望能够下载它,只需使用Git创建一个标签,您的包将在packagist上被视为稳定版。 - AnthonyB
1
我之前创建了标签,但问题仍然存在。https://github.com/inimist/cakephp3-captcha。有任何想法吗? - Arvind K.
1
当我尝试使用一个由同事创建的库时,遇到了这个问题。在这种情况下,我必须使用“composer require myCompanyName/my-workmate-library:dev-main”。 - Andrew F.
显示剩余3条评论

27

既然您提到您是该软件包的作者,如果您认为您的版本可能被用于生产,请创建一个发布版本。

您可以在 GitHub 上执行此操作:

  1. 单击“0 releases”

    enter image description here
  2. 创建新版本

    enter image description here
  3. 创建一个发布版本,例如 v1.0,添加描述并按按钮:

    enter image description here
  4. 尝试使用 composer 重新安装。请确保首先删除缓存:composer clear-cache 然后只需尝试 composer require your/pagackge


附注:

我建议您阅读这个网页,以了解何时应命名一个版本号为 v1.0.1v1.1v.2.0-alpha 等。以下是一个小摘录:

  1. 一旦发布了版本化的软件包,就不得修改该版本的内容。任何修改都必须以新版本发布。
换句话说,如果您将某些内容推送到您的存储库,并且您没有创建新的版本。人们只能通过Composer下载最新版本。
6.仅引入向后兼容的错误修复时,补丁版本Z(x.y.Z | x> 0)必须递增。错误修复被定义为纠正不正确行为的内部更改。
对于未破坏任何内容的错误修复,您可以更新到v1.0.1。
7.如果向公共API引入了新的向后兼容的功能,则必须递增较小的版本Y(x.Y.z | x> 0)。如果标记了任何公共API功能作为弃用,则必须递增。[...]
如果添加了新功能而不破坏代码,则应将下一个发布版本称为v1.1.0。
8.如果向公共API引入了任何向后不兼容的更改,则必须递增主要版本X(X.y.z | X> 0)。
如果您做了可能会破坏其他人代码的事情,您可以将新发布版本命名为v2.0。
9.预发布版本可以通过在修补程序版本后面追加连字符和一系列点分隔符标识符来表示。标识符只能由ASCII字母数字和连字符[0-9A-Za-z-]组成。任何被称为 v1.3-alpha 或者 v1.3-christmas 的版本都将被视为预发布版本。

你救了我!我无法摆脱dev-master并发布版本。标记不足够,但是发布对我有用(等待几分钟以清除缓存)。 - n0nag0n

23

如果您想安装开发包,可以更改该项目的composer配置:

composer config minimum-stability dev
composer config prefer-stable true

1
那对我有用,谢谢! - user2567674

2

对于那些使用Packagist、Composer和GIT命令行的人,只需在将软件包推送到GitHub后标记即可:

git push origin master
git tag v1.0.0
git push --tags

如果您已经创建了Packagist的GitHub Hook,那么Packagist会在几分钟内更新,然后您可以从消费项目中运行composer require my-user/my-package


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接