私有 pypi 存储库中的开发版本管理

Development versions management in private pypi repository

我们正在做一个基于微服务的产品,在组件之间共享的自研python包的开发版本管理上遇到了一些困难。

我们希望能够开发微服务的不同功能及其依赖项,从我们的私有 pypi 存储库中提取单独的开发版本,而不会干扰稳定版本。

例子

场景

两个开发人员都需要更改 XYZ 以添加将来可以被其他服务重用的核心功能。两位开发人员都从当前稳定的 1.2.5 版本分支并开始研究他们的功能。在冲刺结束时,他们的两个分支将被合并,版本 1.3.0 将被发布。

同时,在开发过程中,开发人员希望能够测试他们正在处理的微服务与包之间的集成。

问题

我们使用 poetry 来管理我们的依赖项,我们希望使用私有 pypi 存储库来指定版本间隔,而不是直接从私有 git 存储库中拉取时硬编码标签或分支名称。

我们最初认为我们可以像下面的示例一样命名我们的版本,并使正在开发的微服务依赖于这个特定的版本

1.3.0-foo
1.3.0-bar

但是我们发现版本命名的PEP标准不允许我们给版本添加自定义标签。

是否有最佳实践或解决方法来继续使用我们的私有 pypi 存储库?

正如我从文档中看到的那样,您应该能够像此处解释的那样指定开发后缀 https://www.python.org/dev/peps/pep-0440/#examples-of-compliant-version-schemes

我正在查看部分:

"major.minor" versioning with developmental releases, release candidates and post-releases for minor corrections:

0.9
1.0.dev1
1.0.dev2
1.0.dev3
1.0.dev4

如果开发者 1 将他的版本命名为 1.3.dev1,开发者 2 命名为 1.3.dev2 等等?