访问 官方仓库。
准备好 golang 开发环境。
golang 需要用最新的版本,目前是 1.14.x。
注册 github 账号。
完成开户 github 二步认证。
fork 官方仓库。
fork 官方仓库的 master 到自己的账号下。
git clone 自己账号下的仓库到本地。
执行以下命令,进行 clone。
git clone https://github.com/your-github-name/terraform-provider-tencentcloud
完成例行检查。
执行以下命令,完成 commit 前的例行检查。
make hooks
检出分支。
检查分支格式是否为 类型/模块-关键字
。例如,feat/tke-support-addon
即 TKE 模块新增功能 addon。
修改代码。
参考 代码风格,与现有风格保持一致。
修改测试用例。
若有修改,则需确保测试用例是准确的并且全部通过。
实现文档自动生成。
执行以下命令,实现文档自动生成。您的编码需符合一定规则,详情请参见 Terraform docs generator。
make doc
提交代码。
执行以下命令,提交代码。commit 的 message 尽量写清楚并且规范。
git commit
推送代码。
执行以下命令,将代码推到自己账号下的仓库。
git push
提交 pull request。
不允许将代码直接合到官方仓库,需要通过 PR + code review。
通知其他人进行 code review。
至少需要一个 approve 代码才可以合并,自己提交的代码不允许自己合并。
定期出版本。
出版本后,插件才会更新,功能才会生效。
参考 Google Golang 代码规范 ,对代码风格做如下约束:
num := a + b
。作为输入参数或者数组下标时除外,紧凑展示。9
(代表新加坡),需要使用常量代替,如 const AP_SINGAPORE = 9
。注意可结合
make fmt
命令实现代码格式化。开发步骤中提到make hooks
包含了格式化步骤,开发前务必执行。
版本名称遵循 semver 原则且以 v
为前缀,例如 v1.2.3
。
每次有修改必须更新 CHANGELOG.md
。CHANGELOG.md
的版本规则如下:
结合上文 Semver 主/次/补丁规则:出现 FEATURES、DEPRECATED 发次版本 1.X.0 ,出现 ENHANCEMENTS、BUG FIXES 发补丁 1.0.X。
当云产品接入过程中,会遇到较多需要限制输入参数内容的要求。例如,购买 PostgreSQL 数据库时要限制选择的数据库的版本。由于数据库支持的版本列表会不定期更新,若没有及时完成更新则会引起用户无法选择最新版本,造成使用上的困难。在此场景下,代码中切勿直接指定将数据库支持的版本列表,应每次调用接口拉取,实现动态的限制。
类似的场景包含 PostgreSQL 支持的版本、内存。Redis 支持的版本、内存。SCF 支持的语言、版本等。
本页内容是否解决了您的问题?