在柯南包名称中使用连字符有多糟糕?

How bad is it to use hyphens in a conan package name?

提问人:einpoklum 提问时间:10/21/2023 最后编辑:bad_codereinpoklum 更新时间:10/21/2023 访问量:47

问:

假设我有一个名为 的库拉里,我已经为它写了一个。当它运行时,我收到警告:foo-barconanfile.pyconan create

WARN: Name containing special chars is discouraged 'foo-bar'

马上。

我的问题是:这有多强烈?如果真的有的话,柯南包名称带有连字符/减号字符有多糟糕?


PS - 如果重要的话,我正在使用 Conan 2.0.13,并希望将我的包裹送到 Conan Center。

命名约定 连字 包管理 conan-2

评论


答:

2赞 Brian61354270 10/21/2023 #1

TL;DR:导出名称仅在特殊字符 // 中有所不同的包时存在冲突风险。例如,、 和 。+-_foo+barfoo-barfoo_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