如何更改 packagist 的标签以获得稳定版本?

Posted

技术标签:

【中文标题】如何更改 packagist 的标签以获得稳定版本?【英文标题】:How do I change the packagist sticker for stable release? 【发布时间】:2013-11-19 06:41:53 【问题描述】:

这是我写的开源代码。

https://github.com/simkimsia/UtilityBehaviors/blob/master/README.mdown

我有一个来自packagist.orgNo Stable Release

如何获得来自packagist 的稳定版贴纸?

【问题讨论】:

【参考方案1】:

您必须使用版本号标记您的代码。

git tag -a 0.0.0

这将宣布第一个稳定版本。如果您担心版本号全为零,可以根据需要从 0.0.1 之类的内容开始。如果可以的话,尽量坚持语义版本控制:http://semver.org。之后,您应该将其推送到公共存储库,例如 git push --tags

请注意,您可以在标签中使用整个稳定性标签数组。 Composer 认可了从 alpha、beta 到发布候选的所有内容。有关如何创建版本号的信息,请参阅 http://getcomposer.org/doc/04-schema.md#version。

Packagist 然后将扫描您的存储库并处理该标记,这是一个“稳定”版本,并相应地标记您的包(即使使用 0.0.0 版本号 - 0.x 软件与 24.x 软件在Composer/Packagist 的术语)。

编辑 2016-07-14

请注意,如果语义版本控制中的版本号以0.x.y 开头,则它们的处理方式会有所不同。这不会以任何方式影响标记和发布,但会影响用户选择和更新您发布的软件的方式。如果您发布下一个次要更新0.x+10.x 范围内的任何软件都将被视为不兼容。 Composer 波浪号运算符~ 不会被此干扰:~0.x(任何整数为 x)将更新到下一个次要版本。插入符运算符的行为会有所不同:^0.x^0.x.y 将保持在 0.x 范围内,不会转到任何 0.x+1.y 版本。

解决此问题的最佳方法是从1.x 版本开始,并使用稳定性标志来指示可能的更改。您可以使用1.0.0-alpha1 作为您的第一个版本而不是0.0.1,以后的版本可能是1.0.0-alpha2 用于另一个“不稳定”(阅读:API 未完成/稳定)版本,然后转到1.0.0-beta1 以获取API-stable,但内部未完成的版本,然后 1.0.0-rc1 可能是 API 稳定的,在最后的错误修复阶段完成的版本,然后是 1.0.0 的最终版本。更多错误修正将是1.0.1 及以上,新功能将是1.1.0,不兼容的API 更改将是2.0.0。请注意,第一批用户可能会使用^1.0.0@beta 作为他们的版本要求,并且随着开发的进行,将始终获得最新更新而无需更改他们的要求(除非您破坏了 API 并以这种方式强制更新)。如果你走0.x 路线然后以1.0.0 发布最终产品,这将永远不会奏效,因为你至少有明显的不兼容更新跳转到 1.0。

如果没有未来的知识,很难决定一个包是否被证明是有用的并创造了一个快乐的用户群(他们将从1.0.0@alpha 发布标签中受益),或者它是否只是一个没有人在生产中使用的有趣实验(又名0.x)。

我个人对内部私有包的偏好是从一开始就将它们设为1.0。我必须处理从0.0.1 开始的几个包,并且在更新时有点讨厌,因为它们已经成熟,但由于版本不兼容的步骤而无法转到1.0,这将涉及到二级包的大量工作。

【讨论】:

我注意到我在git push --tags 中添加的编辑不再存在。我认为这是答案的重要部分。可以加进去吗? 该编辑的五个审阅者中有四个拒绝了它。我认为标签必须在Packagist.org扫描的存储库中是很自然的,所以你必须推送它。 我接受他们的决定。老实说,作为标签概念的初学者,我不得不谷歌找出确切的推送命令是什么。我想我会省去其他初学者搜索的麻烦。 您提出了一个有效的观点。我在我的答案中添加了这个提示,尽管它现在已经在 cmets 中提到了。 :) people:packagist 缓存东西。使用标签时,请记住保持冷静,并在更新 packagist 后等待几分钟,然后再次运行 composer update

以上是关于如何更改 packagist 的标签以获得稳定版本?的主要内容,如果未能解决你的问题,请参考以下文章

sh StriderCD配置。为最新版本构建所有软件包以获得稳定和仅赢

如何在 github 和 packagist 上创建包的版本?特定于 PHP

开发 composer 包,上传 packagist并实时更新+发布稳定版

多版本OSS开发有一个好的模式吗?

怎么破解获得小米手机稳定版root权限

如何更改图例中的标签?