Composer 只查找 Gitlab 托管包的最新版本(标签)

Composer only finds latest version (tag) of Gitlab hosted package

我创建了一个包,其中包含一些带注释的版本控制标签(1.0.0、1.0.1、1.1.0 和 2.0.0)。这个包存在于自己的主机上(所以不是通过 Packagist) 当尝试要求包时,作曲家只找到 2.0.0 版本并且在任何其他版本要求上失败。

Composer.php 使用包

的项目文件
{
    "name": "projectname",
    "description": "Description.",
    "keywords": ["keys"],
    "license": "Licence",
    "type": "project",
    "require": {
        ...
        "space/package-name": "~1.0" // Also tried 1.0.0, 1.0.*, ~1.0@dev - only 2.0.0 works
    }
    "repositories": [
        ...
        {
            "type": "git",
            "url": "git@gitlab.com:space/package-name.git" // Make sure package is found on specific hosting
        }
    ],
    "config": {
        "preferred-install": "dist",
        "sort-packages": true,
        "optimize-autoloader": true
    }

在 运行 composer show "space/package-name" 我得到 versions: * 2.0.0。因此,更新后,作曲家会产生以下错误:

The requested package space/package-name ~1.0 exists as name/package-
name[2.0.0, dev-master] but these are rejected by your constraint.

似乎 composer 找不到除最新版本之外的任何其他版本,有什么办法解决这个问题吗?

已检查的内容:

更新: 可能是 Gitlab - Composer 问题,

Git当 Composer 尝试读取 repo 时,lab 并不总是提供标签信息。

解决方法:在composer.json中也添加版本信息:

{
    "name": "package/name",
    "version": "1.0.0",
    ...
}

作曲家可读。注意:Git 标签必须匹配 composer.json 中的版本控制信息! (否则可能会导致错误)