如何开始给一个composer包进行版本控制?

6

我开始开发一个包,希望将其开源并在未来的项目中使用。但是我不知道该如何开始。

我刚刚在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版本的地步。是应该立即创建一个轻量级或注释型的git标签,例如“v0.1.0”,还是等到完全可用的时候再创建?

为了避免以后出现麻烦,我应该做些什么呢?

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


1
没有硬性规定。现在从0.1.0开始,并考虑您想要增加的标准。阅读流行项目如何进行版本控制,并复制适合您的模型。 - tripleee
规则基本上是版本三元组中的第三个数字在任何表面上看不见的小改变(例如修复错误)时都会增加。当您添加功能但保持向后兼容时,第二个将增加。第一个保留用于重大改变,这些改变会打破/更改公共接口。在增加数字时,请将其后面的数字归零。要点是您始终可以使用X.Y.Z替换为X.Y.(Z+1),通常还可以使用X.(Y+1).W,但无法使用(X+1).V.W。 - Ulrich Eckhardt
1个回答

5

如果你不确定(因为你可以选择任何策略),你可以参考语义化版本2.0

主版本号为零(0.y.z)表示正在进行初始开发。任何东西都可能随时更改。
公共API不应被视为稳定的

只要你的公共API可能会改变,请保持在0.x.y中。


当我打标签版本时,应该选择轻量级标签还是注释标签? - David
@David 如果你打算发布(推送)那个标签,它应该被注释。轻量级标签是纯本地标签,不会被推送到上游仓库。 - VonC
你知道在版本名称中的 @ 符号是什么意思吗?我以前见过,但从未理解过。例如:https://getcomposer.org/doc/04-schema.md#package-links。你知道哪里可以了解相关信息吗?谢谢。 - David
@David 你是指“版本约束”吗?(例如http://docs.opscode.com/essentials_cookbook_versions.html#run-lists) - VonC
@David,您是指“Peg and revision” URL 方案吗?例如 http://svnbook.red-bean.com/en/1.6/svn.advanced.pegrevs.html (svn command -r OPERATIVE-REV item@PEG-REV)。 - VonC

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