Style guides

原文:https://docs.gitlab.com/ee/development/contributing/style_guides.html

Style guides

Editor/IDE styling standardization

在将文件保存到本地之前,我们使用EditorConfig自动应用某些样式标准. 默认情况下,大多数编辑器/ IDE 都会自动接受.editorconfig设置. 如果您的编辑器/ IDE 不自动支持.editorconfig ,建议您进行调查以查看是否存在插件. 例如,这里是vim插件 .

Pre-commit static analysis

强烈建议您安装Overcommit ,以便在本地提交之前自动检查静态分析违规.

在您的 GitLab 源目录中运行:

  1. make -C tooling/overcommit

Then before a commit is created, Overcommit will automatically check for RuboCop (and other checks) offenses on every modified file.

这样可以节省您的时间,因为您不必等待配置项检测到相同的错误.

过量提交依赖于预提交钩子,以防止违反其规则集的提交. 如果您想覆盖此行为,可以通过传递 ENV 变量OVERCOMMIT_DISABLE来完成. 即OVERCOMMIT_DISABLE=1 git rebase master在禁用 Git 钩子的同时进行 rebase.

Ruby, Rails, RSpec

我们的代码库样式由RuboCop定义和执行.

您可以使用bundle exec rubocop --parallel在本地检查任何违规行为. 在配置项上,这将由static-analysis作业自动检查.

对于尚未决定的 RuboCop 规则,我们遵循Ruby Style GuideRails Style GuideRSpec Style Guide作为编写惯用 Ruby / Rails / RSpec 的通用准则,但是审阅者/维护者应该宽容而不是太宽容关于风格的书呆子.

同样,当前已禁用某些 RuboCop 规则,对于这些规则,审阅者/维护者不得要求作者使用一种或另一种样式,因为这两种样式均被接受. 这不是理想的情况,因为这为骑车留下了空间,并且理想情况下,我们应该启用所有 RuboCop 规则,以避免在评论中进行与样式相关的讨论/挑剔/来回.

此外,我们还有专门的换行样式指南 ,以及专门针对测试的样式指南和最佳实践 .

Creating new RuboCop cops

通常,最好通过编程方式执行起毛规则,因为它可以减少前述的自行车脱落 .

为此,我们鼓励在代码库中创建新的 RuboCop 规则.

当创建可以应用于多个应用程序的新警察时,我们建议您将其添加到我们的GitLab Styles宝石中.

Database migrations

请参阅专用的《 数据库迁移样式指南》 .

JavaScript

请参阅专用的JS 样式指南 .

SCSS

请参阅专用的SCSS 样式指南 .

Go

请参阅专用的Go 标准和样式指南 .

Shell commands (Ruby)

请参阅GitLab 代码库中有关 shell 命令的专用准则 .

Shell scripting

请参阅专用的Shell 脚本标准和样式指南 .

Markdown

我们正在遵循Ciro Santilli 的 Markdown 样式指南 .

Documentation

请参阅专用的文档样式指南 .

Python

请参阅专用的Python 开发指南 .

Misc

代码应使用美国英语书写.


Return to Contributing documentation