我通过www.example.com releases向www.example.com发布了一个包版本packagist.orggithub.com,其中包含www.example.com不喜欢的版本标记packagist.org(后缀为-dev)。我已经更正了版本错误并重新发布,更正后的版本现在显示在packagist.org上。
然而,仍然有一条警告消息(我假设只有我作为维护者看到):
由于composer.json中的版本不匹配,某些标记被忽略。
没什么大不了的,但是删除那个警告信息就好了。我怎么做呢?
请注意,composer.json文件中没有version属性,正如前面提到的,最新版本显示得很好。
1条答案
按热度按时间yduiuuwa1#
[...]删除那个警告消息会很好。2我该怎么做呢?
假设Composer检查包中的版本(发行版),并且它是一个Git仓库,Composer要做的一件事就是获取所有标记(例如
git-ls-remote(1)
),然后检查composer.json
项目配置文件中的这些修订版本。当
<tag-ref>:composer.json#/version
与<tag-ref>
不匹配时(在您的特定情况下,这更像是一个虚拟的东西,因为它是关于验证<tag-reg>
是否为composer.json#/version
的,但这个约束在这里完全适用),那么标记(作为包版本)将被删除,并显示警告,以便您注意到这一点,因为它可能导致无法找到特定版本的后果。由于Packagist这样做是为了对www.example.com的服务进行簿记packagist.org(索引所有公共包),您可以在管理面板中看到它。
在你的情况下,这是一个较小的问题,因为你不错过的版本(你已经解决了,通过添加一个新的版本“在上面”),它仍然轻推你,你想摆脱它。
实现这一点的唯一方法是删除罪魁祸首,即存储库中的实际标记(上面的
<tag-ref>
),特别是Git存储库Composer连接到的标记。现在,删除已发布的标签会有后果,是的,这是一个警告,所以检查一下你的行动基线。
git-tag(1)
文档中有一节我推荐作为这方面的阅读:它并不完全符合所询问的情况,但在更改甚至删除已推送的标记之前值得了解。YMMV。
实际标记名的问题可能会让人感到惊讶,因为你通常可以在Git中相当自由地标记(只有一些对标记名的约束)。
但如果使用相同的Git仓库和Composer的包源(Composer sprak中的 package repository),则需要更多的要求,特别是我建议阅读Composer官方文档中的以下内容,以便将来在没有警告的情况下处理标记:
*附加说明:*此警告可能有其他原因,仅删除标记不会删除此警告。通过在 * 发布之前使用
composer-validate
* 来防止此类原因(无论如何,您都应该这样做),并了解其所有警告,应提供超文本引用。