【发布时间】:2013-11-19 06:41:53
【问题描述】:
这是我写的开源代码。
https://github.com/simkimsia/UtilityBehaviors/blob/master/README.mdown
我有一个来自packagist.org 的No Stable Release
如何获得来自packagist 的稳定版贴纸?
【问题讨论】:
标签: github composer-php packagist
这是我写的开源代码。
https://github.com/simkimsia/UtilityBehaviors/blob/master/README.mdown
我有一个来自packagist.org 的No Stable Release
如何获得来自packagist 的稳定版贴纸?
【问题讨论】:
标签: github composer-php packagist
您必须使用版本号标记您的代码。
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+1,0.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 中添加的编辑不再存在。我认为这是答案的重要部分。可以加进去吗?
composer update。