【发布时间】:2020-08-21 20:58:09
【问题描述】:
我的 requirements.txt 中有一个来自另一个 git repo 的依赖项(不是我的,但我可以访问它)。
昨天我合并了一个 PR,并在对其应用标签 v0.1.5 之后。我按顺序将我的项目要求更新为:
git+https://HASH@github.com/repowner/dependency_name.git@v0.1.5
安装的依赖没有问题。但是我发现了一个错误并决定修复它。我创建了一个新分支,更改了setup.py 中的版本,分配了标签v0.1.5b,并使用了git push 和git push --tags,都在合并之前。 (我认为这是正确的做法,而不是稍后应用)
现在我将要求更新为
git+https://HASH@github.com/repowner/dependency_name.git@v0.1.5b
但是,当我执行pip install -r requirements.txt 时,会安装 v.0.1.5 版本。它不会引发任何错误,它最终会简单地忽略 b 。我尝试使用 git tag -a v0.1.5b <commit_hash> 将标签分配给 master 但我得到了回报:
fatal: tag 'v0.1.5b' already exists
如果我尝试只推送标签:
Everything up-to-date
我不确定我是否不应该在版本中使用“b”,或者我可能遗漏了什么?有人可以帮我解决吗?如果我能在不推动另一个提交的情况下解决它会很好,(如 v.0.1.6)但我采取任何解决方案。
【问题讨论】:
-
以前从未使用过 pip 和需求,但这听起来像是一英里外的错误或不受支持的命名约定。根据PEP 440:
Local version labels MUST start and end with an ASCII letter or digit.,所以我猜你最终可以使用字母,即使我很少看到它。但是[N!]N(.N)*[{a|b|rc}N][.postN][.devN]表示应该命名为v0.1.5b1或者类似的名字? -
@Torxed 您引用的第一部分用于“本地版本标签”,您引用的版本标签方案用于公共版本标签。看我的回答。
标签: python git setuptools setup.py distutils