提问人:einpoklum 提问时间:10/21/2023 最后编辑:bad_codereinpoklum 更新时间:10/21/2023 访问量:47
在柯南包名称中使用连字符有多糟糕?
How bad is it to use hyphens in a conan package name?
问:
假设我有一个名为 的库拉里,我已经为它写了一个。当它运行时,我收到警告:foo-bar
conanfile.py
conan create
WARN: Name containing special chars is discouraged 'foo-bar'
马上。
我的问题是:这有多强烈?如果真的有的话,柯南包名称带有连字符/减号字符有多糟糕?
PS - 如果重要的话,我正在使用 Conan 2.0.13,并希望将我的包裹送到 Conan Center。
答:
2赞
Brian61354270
10/21/2023
#1
TL;DR:导出名称仅在特殊字符 // 中有所不同的包时存在冲突风险。例如,、 和 。+
-
_
foo+bar
foo-bar
foo_bar
查看发出该警告的来源,有一条注释提供了一些上下文:
# Warn if they use .+- in the name/user/channel, as it can be problematic for generators
pattern = re.compile(r'[.+-]')
if pattern.search(self.name):
ConanOutput().warning(f"Name containing special chars is discouraged '{self.name}'")
此检查已添加到 PR #12053(问题 #11857)中,这是对 PR #11826(问题 #11822)的响应。根本问题是,在某些上下文中,软件包名称中的 s 和 s 都会被规范化,如果两个软件包名称仅在使用 // 方面有所不同,则可能会产生歧义。+
-
_
+
-
_
使用 a 有多糟糕取决于你是否认为导出两个仅在 // 中不同的包存在冲突风险。-
+
-
_
我没有看到任何关于使用 s 被正式弃用的参考资料。文档中的教程仍然指出 s 在包名称中有效:-
-
name
:一个字符串,最少 2 个,最多 100 个小写字符,用于定义包名称。它应以字母数字或下划线开头,可以包含字母数字、下划线、、、 -
字符。+
.
评论
0赞
einpoklum
10/21/2023
所以,“tldr:唯一可能的危险是与......”发生冲突。foo_bar
0赞
Brian61354270
10/21/2023
@einpoklum 或者使用 .但是,是的,这就是我对这个问题的解读foo+bar
评论