如何开始对作曲家包进行版本控制?

Posted

技术标签:

【中文标题】如何开始对作曲家包进行版本控制?【英文标题】:How to start versioning a composer package? 【发布时间】:2014-06-14 19:59:03 【问题描述】:

我开始开发一个我想开源并在未来项目中使用的包。我不明白开始这个的正确步骤。

我刚刚在 github 上创建了存储库,这是我的 composer.json


    "name": "ProgrammingAreHard/Arbiter",
    "license": "MIT",
    "type": "library",
    "description": "Convenience library to manipulate Symfony ACL's",
    "authors": [
        
            "name": "David Adams",
            "email": "adams.david.10@gmail.com"
        
    ],
    "autoload": 
        "psr-0": 
            "ProgrammingAreHard\\Arbiter": "src/"
        
    ,
    "require": 
        "php": ">=5.3.3"
    ,
    "require-dev": 
        "symfony/security": "2.4.*",
        "phpunit/phpunit": "~4.0"
    ,
    "minimum-stability": "dev",
    "target-dir": "ProgrammingAreHard/Arbiter",
    "extra": 
        "branch-alias": 
            "dev-master": "1.0.x-dev"
        
    

不过,我对版本控制感到头疼。我还没有制作任何 git 标签。我之所以使用branch-alias,只是因为我听说这是一个很好的做法。我不确定1.0.x-dev 现在应该是什么。

此时我应该怎么做?我对 1.0 版本还不是很满意。我应该立即在“v0.1.0”之类的地方创建一个轻量级或带注释的 git 标记,还是等到它完全发挥作用?

我应该怎么做才能不让以后头疼?

我假设作曲家使用 git 标签进行版本控制(?)

【问题讨论】:

没有规则。现在从 0.1.0 开始,想想你想要增加它的标准。阅读流行项目如何进行版本控制并复制适合您的模型。 规则基本上是版本三元组中的第三个数字在表面上不可见的任何微小变化上递增,例如修复一个错误。当您添加功能但保持向后兼容时,第二个会增加。第一个保留用于破坏/更改公共接口的大修。增加数字时,将其后面的数字归零。关键是你总是可以用 X.Y.(Z+1) 替换 X.Y.Z,通常也可以用 X.(Y+1).W,但不能用 (X+1).V.W. 【参考方案1】:

有疑问(因为你可以选择任何你想要的策略),你可以参考semantic versioning 2.0

主要版本零 (0.y.z) 用于初始开发。任何事情都可能随时发生变化。不应将公共 API 视为稳定的

只要您的公共 API 可以更改,请留在0.x.y

【讨论】:

当我标记一个版本时,它应该是轻量级的还是带注释的? @David 如果您打算发布(推送)该标签,它应该是注释。轻量级是纯粹的本地标签,不会被推送到上游仓库。 甜蜜。谢谢。你知道我在哪里可以读到关于@ 登录版本名称的信息吗?我以前见过,但一直不明白。例如:getcomposer.org/doc/04-schema.md#package-links @David 你的意思是“版本限制”吗? (如docs.opscode.com/essentials_cookbook_versions.html#run-lists) @David 或者您的意思是“挂钩和修订”网址方案?如svnbook.red-bean.com/en/1.6/svn.advanced.pegrevs.html (svn command -r OPERATIVE-REV item@PEG-REV)

以上是关于如何开始对作曲家包进行版本控制?的主要内容,如果未能解决你的问题,请参考以下文章

Dart 包版本如何工作以及我应该如何对我的 Flutter 插件进行版本控制?

如何对 swift 包进行版本控制

应该如何对相互关联的软件包进行版本控制?

dotnet 核心包版本控制

从基于日期的版本控制切换到语义版本控制后,如何防止 NuGet 升级包?

追溯性地对应用程序进行版本控制