3. 良好的项目和归档命名实践

随着像 Metalab、PSA 站点和 CPAN 这样的归档维护者的负担增加,提交的内容越来越多地部分或全部由程序处理(而不是完全由人工处理)。

这使得项目和归档文件名称更需要符合计算机程序可以解析和理解的规则模式。

3.1. 使用带有词干和主版本号.次版本号.补丁号的 GNU 风格名称。

如果你的归档文件都具有类似 GNU 的名称,这对所有人都有帮助——全小写字母数字词干前缀,后跟一个破折号,后跟版本号、扩展名和其他后缀。

假设你有一个名为 `foobar' 的项目,版本为 1,发布版本为 2,级别为 3。如果它只有一个归档部分(可能是源代码),那么它的名称应该如下所示

foobar-1.2.3.tar.gz

源代码归档

foobar.lsm

LSM 文件(假设你提交到 Metalab)。

不要使用这些

foobar123.tar.gz

这在许多程序看来,就像是一个名为 `foobar123' 的项目,但没有版本号的归档文件。

foobar1.2.3.tar.gz

这在许多程序看来,就像是一个名为 `foobar1' 的项目,版本为 2.3 的归档文件。

foobar-v1.2.3.tar.gz

许多程序认为这与名为 `foobar-v1' 的项目相关。

foo_bar-1.2.3.tar.gz

下划线对于人们来说很难说、打字和记住。

FooBar-1.2.3.tar.gz

除非你喜欢看起来像个营销傻瓜。 这也让人们很难说、打字和记住。

如果你必须区分源代码和二进制归档文件,或者不同类型的二进制文件,或者在文件名中表达某种构建选项,请将其视为版本号之后的文件扩展名。 也就是说,请这样做

foobar-1.2.3.src.tar.gz

源代码

foobar-1.2.3.bin.tar.gz

二进制文件,类型未指定

foobar-1.2.3.bin.ELF.tar.gz

ELF 二进制文件

foobar-1.2.3.bin.ELF.static.tar.gz

静态链接的 ELF 二进制文件

foobar-1.2.3.bin.SPARC.tar.gz

SPARC 二进制文件

不要使用像 `foobar-ELF-1.2.3.tar.gz' 这样的名称,因为程序很难区分类型中缀(如 `-ELF')和词干。

一个好的通用名称形式按顺序包含以下部分

  1. 项目前缀

  2. 破折号

  3. 版本号

  4. "src" 或 "bin"(可选)

  5. 点或破折号(首选点)

  6. 二进制类型和选项(可选)

  7. 归档和压缩扩展名

3.2. 但在适当的地方尊重本地约定

一些项目和社区对于名称和版本号有明确定义的约定,这些约定不一定与上述建议兼容。 例如,Apache 模块通常命名为 mod_foo,并且既有自己的版本号,又有与之配合使用的 Apache 版本。 同样,Perl 模块的版本号可以被视为浮点数(例如,你可能会看到 1.303 而不是 1.3.3),并且模块 Foo::Bar 的 1.303 版本的发行版通常被命名为 Foo-Bar-1.303.tar.gz。(另一方面,Perl 本身在 1999 年底切换到使用本文档中描述的约定。)

寻找并尊重专业社区和开发人员的约定; 对于一般用途,请遵循上述指南。

3.3. 努力选择一个唯一且易于键入的名称前缀

词干前缀应该易于阅读、键入和记住。 所以请不要使用下划线。 没有非常好的理由,请不要大写或混合大小写——它会搞乱自然的眼睛搜索顺序,以及其他事情。

当两个不同的项目具有相同的词干名称时,会让人感到困惑。 因此,请在首次发布之前尝试检查是否冲突。 谷歌是你的朋友——如果你正在考虑的词干获得大量的 Google 搜索结果,那么这本身可能就是考虑另一个词干的充分理由。 另一个好的检查地方是 FreecodeSourceForge 的应用程序索引; 在那里进行名称搜索。