问题标签 [setuptools-scm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
93 浏览

git - 如何在 setuptools-scm 中包含 git 分支名称?

默认情况下,setuptools_scm(使用 git 时)会生成版本号,例如:

mytool-1.2.3.dev42+ba98765.d19700101

我想包括分支名称。我没有设置确切的形式,但可能是这样的:

mytool-1.2.3.dev42+ba98765.branchname.d19700101

我发现了一个名为add support for branch name based testing的拉取请求,但它没有描述或文档。我不是 100% 确定它是否符合我的要求。我应该在我的部分中添加哪些选项以在生成的版本中包含分支信息?[tool.setuptools_scm]pyproject.tomlsetuptools_scm

0 投票
0 回答
47 浏览

python - setuptools-scm - 获取最新的标记版本

如果我有一个项目:

然后,试图从中获取版本setuptools_scm,我得到:

有没有办法从 Pythonsetuptools-scm中获取最新的标记版本,即0.1.0

0 投票
0 回答
18 浏览

python - 从已安装的包中访问由 setuptools-scm 设置的包版本

setuptools-scm用来管理我的包版本,它非常适合发布到 PyPI。

现在我正在尝试使包版本可用于安装的包,例如my_package.__version__。我找到了该write_to方法setuptools-scm并创建了一个version.py文件。但是,当我安装包时,我无法导入my_package.version并且无法访问存储在该文件中的版本。

我想它是在 setuptools 构建包之后添加的。如何使版本可用setuptools-scm

我的当前setup.py

当我用这个安装时,setup.py我可以正确导入包但不能from my_package import version

0 投票
0 回答
91 浏览

python - AttributeError:模块“setuptools_scm.git”没有属性“list_files_in_archive”

我目前正在尝试下载联合国 ComTrade 数据库并使用以下 GitHub 脚本:https ://github.com/ejokeeffe/tradedownloader.git 。

当我尝试在终端中安装 setup.py 文件时:

它返回以下错误:

Setup.py 有以下代码:

如果有人可以提供帮助,我将不胜感激!提前致谢

0 投票
1 回答
109 浏览

python - 将 setuptools_scm 从 6.0.1 升级到 6.3.1 后检查清单失败

我一直在为我的python 项目setuptools-scm使用版本。该项目还使用预提交挂钩。自从我升级到 6.3.1 以来,check-manifest 挂钩一直失败,并出现以下错误,看起来它无法从 sdist 打包中确定正确的版本字符串。6.0.1check-manifestsetuptools-scm

有趣的是,报告的版本字符串完全错误(extras-0.3.0.dev3+g4d323bc.d20210909)。部分库名称似乎与版本字符串一起添加。

但是,它仍然可以正常运行6.0.1,因此可以选择降级。但我想知道如何让它们一起工作。我查看了其他一些建议使用弱标志或设置的线程SETUPTOOLS_SCM_PRETEND_VERSION=0.0,但没有一种方法有效。我不确定为什么它会extras成为版本字符串的一部分。这是我的pyproject.toml文件:

更新:我在项目中添加了一个setuptools-scm关于此的问题。

更新:这确实是检查清单库中的一个错误。转到 报告的问题可能的修复

0 投票
0 回答
41 浏览

python - 带有 SemVer 的 CI 中的功能分支工件工作流

我有一个库(我们称它为my_lib)和一个应用程序() ,它们my_app由两个 Python 包构成,我的工具在. 在实践中,我经常开发一个功能,将底层添加的功能添加到然后在其中使用(以在另一个设置中重用库)。my_appmy_librequirements.txtmy_appmy_libmy_appmy_lib

我使用Gitflow开发原理进行开发,并在两个包的分支中为这两个包设置了 CI 阶段feature(让我们称之为它们feature/my_feature_in_lib,并feature/my_feature_in_app在此处为参数起见)。在 CI 中,例如,单元测试和包上传到(私有)PyPI 已经完成。

当然,我不想在未正确测试之前合并feature/my_feature_in_lib到集成分支中my_lib,这通常与feature/my_feature_in_appCI 结合使用。

理想情况下,我想feature/my_feature_in_lib创建一个工件/包,然后my_app在它的requirements.txt. 我目前使用setuptools_scm进行类似 SemVer 的版本号自动递增(例如0.10.1.post1)。但是,如果并行使用多个功能分支,此方案可能会导致版本重复(这就是我目前仅在集成分支上创建工件的原因)。

C# 世界中的GitVersion等工具允许版本标识符包含功能分支特定标识符,例如1.2.3-alpha.feature-a682956d. 但是,PEP-440禁止使用此类版本控制方案,并且 twine 甚至拒绝此类上传。

在保持类似于 SemVer 的自动版本增量的同时解决这些包边界上的依赖问题的最佳方法是什么?

提前致谢!

0 投票
0 回答
113 浏览

python - 如何使用 setuptools_scm 使用发布分支来增加版本?

我在看https://github.com/pypa/setuptools_scm

我读了这部分https://github.com/pypa/setuptools_scm#version-number-construction

我引用

具有发布分支的项目的语义版本控制。如果在发布分支上,则与guess-next-dev(增加预发布或微段)相同:其名称(忽略命名空间)解析为与最近标记匹配到次要段的版本的分支。否则,如果在非发布分支上,则增加次要段并将微段设置为零,然后附加 .devN。

这是如何运作的?

假设我的设置是在这个提交https://github.com/simkimsia/test-setup-py/commit/5ebab14b16b63090ad0554ad8f9a77a28b047323

和同一个仓库,我如何通过分支来增加版本?