Easy-RSA 3极客指南

本文档面向希望在现有代码库基础上进行改进的程序员

兼容性

easyrsa代码是用POSIX shell编写的(任何情况下都不被认为是有错误的)唯一的例外是关键字local和创建变量(construct) export FOO = baz。

因此,对代码的修改也应为POSIX;平台特定的代码应该放在distro/目录下,并按目标平台列出。

编码约定

虽然没有与项目相关的严格语法标准,但请 尽可能遵循现有的格式和流程;但是,特定的例外 如果有重大原因或收益,可以进行。

请尝试:

使代码,文档和示例保持同步

调整,添加或删除功能的更改应具有相关的文档,帮助 输出,并同时更新示例。

发布版本控制

前端接口时需要点释放凸点(例如:3.0到3.1) 以非向后兼容的方式进行更改。总是假设某人有一个 依赖当前官方功能的自动化流程 (非Beta,非rc)版本。可能存在的错误修正存在例外 打破向后兼容;在这种情况下要小心。

添加新命令可能需要也可能不需要点释放,具体取决于 功能的重要性;其他可选内容也是如此 命令的参数。

项目布局

该项目的文件结构如下:

简要说明一下,实际上可以只取easyrsa3 /目录并结束 完成一个功能项目;其余结构包括文档,构建准备, 特定于发行版的包装器和贡献的文件。

Git约定

从Easy-RSA 3开始,应使用以下git约定。这些主要是 对于具有回购访问权限的人很有用,以保持提交的标准含义 消息和合并操作。

###签署者:及相关的提交消息行

具有推送访问权限的提交者应确保在以下位置存在”签名人:”行 提交消息的末尾,上面有他们的名字。这表明 提交者已审查对相关提交的更改并批准 有关功能和代码。它还有助于验证代码是否来自 不会导致许可证问题的可接受来源。

这可以由git使用git commit -s自动添加。

也可以包括其他参考。如果有多个人查看了 更改后,提交者可以在其他”签名人:”中添加其名称: 线;确实在使用其姓名之前先获得该人的许可;但是)

以下参考也可能有用:

###从外部来源(forks, patches, etc)合并

贡献可以有多种形式:来自克隆的GitHub”拉请求” 回购,对外部回购的引用,ML的补丁或其他。那些不会 必要的话必须有”签名者:”行,否则提交中的信息可能较少 消息,而不是解释更改所希望的。

在这种情况下,该项目的提交作者应进行合并提交 在此提供适当的详细信息。如果要更改其他代码 必要时,可以先在本地分支上完成,然后再合并到 主线分支。

该合并提交应列出具有”Author:”或类似名称的相关贡献者 所需的行。 合并中涉及的各个提交也保留了 原始提交者; 无论如何,合并提交消息应给出清晰的 指示整个提交集合总体上是做什么的。

###标记

标签应遵循以下约定:

 vM.m.p

其中”M”是主要版本,”m”是次要的”point-release”版本,并且 p是补丁程序级别。 可以为-rc#,-beta#等后缀添加 所需的预发行版本。

当前,标签来自相关的主线开发分支。 的 因此,ChangeLog应该在标记之前进行更新。 标签也应该是 带有适当的提交消息并已签名。 可以做到 如下所示(除非您打算将GPG与git一起使用,否则不要使用-s。)

 git tag -a v1.2.3

可以将相应的发行下载上载到发行分发点 按要求。