正确控制私有作曲家存储库的版本

Properly versioning a private composer repository

我在 Git 中有一个私有存储库,我已经设法使其作为一个包与 composer 一起正常工作。但是,有一件事我不喜欢:当我指定存储库的版本时,我必须说 dev-master,才能获得主分支。我想要的是能够指定存储库版本。那么,如何配置我的存储库以允许其他存储库使用它作为具有版本标识符的依赖项?

这是我的包 composer.json,它位于我唯一的 master 分支中:

{
    "name": "username/packagename",
    "type": "mytype",
    "version": "1.0.0"
}

然后在另一个我想包含这个包的项目中我有这个 composer.json:

{
  "repositories": [
    {
      "type": "git",
      "url": "git@githost:username/packagename.git/"
    }
  ],
  "require": {
    "username/packagename": "dev-master"
  },
}

如您所见,我必须说 'dev-master' 才能从我的 master 分支获取我的包,但我希望能够说“1.0.0”或“^1.0.0”或任何其他可用的作曲家版本控制操作。我必须在我的包结构中做什么才能启用正确的版本控制行为?

提前致谢!

创建一个标签,然后:删除 composer.json 文件中的 version 条目

在master分支上创建标签的使用示例:

git checkout master
git tag -a 1.0.0
git push --follow-tags

使用带注释的标签将记录创建标签的日期和用户名。 Git会要求留言,这对大多数人来说是无关紧要的,所以你可以随意填写。我通常选择重复标签名称。

在标记版本之前删除 version 条目应该是显而易见的。 :)