感谢你付出的宝贵时间。你的贡献将使这个项目变得更好!在提交贡献之前,请务必花点时间阅读下面的入门指南。
项目有一份 行为准则,希望参与项目的贡献者都能严格遵守。
所有工作都直接透明地在 GitHub 上进行。
项目版本管理遵循 SemVer 2.0.0 规范。维护者在认为需要发版时在本仓库创建 release/<版本号> 分支
禁止:
- 在本仓库中“篡改历史”
- 非线性历史记录
- 强制推送
仓库有且仅有两个分支:main 和 stable。
需要合并的更改只能合并到 main 分支,stable 分支不允许合并 PR 或人为推送 commit。
main 分支上的更改发布后,stable 分支 fast-foward 到 main 分支。
这样做的目的是为了让 main 分支有最新部署的文档站点(包含未发布的更改)。
我们使用 Github issues 进行 bug 报告和功能建议。
在报告 bug 之前,请确保已经搜索过类似的 issue,以防重复报告。
对于 bug 报告,请提供最简的复现步骤和平台信息。对于功能建议,请指出你想要的更改和期望。
- Fork 此仓库;
- Clone 上一步 fork 出的仓库到本地;
- 运行
pnpm install安装依赖; - 从
main创建分支; - 在源代码中自由发挥……
- 尽量编写单元测试,确保边缘情况可控;
- 运行
pnpm lint检查代码样式; - 运行
pnpm test进行单元测试,通过后即可提交更改,推送到 fork 出的仓库; - 提交 pull request 到本仓库,如果有对应的 issue,请进行关联;
- 等待合并……
注:仅为建议,不强制要求。
分支名格式:<类型>/<描述>。其中 <类型> 见 更改的类型。
Pull request 合并时,更改将以 squash merge 的方式合并到 main 分支。
Commit message 遵循 约定式提交标准:
<类型>[可选 范围]: <描述>
[可选 正文]
[可选 脚注]
本仓库中的提交(包括合并提交)必须遵循此规范,合并提交必须在描述的末尾添加合并的 pull request 编号,如:fix: typo (#19)。
- feat: 新功能或对已有功能的增强
- fix: 问题修复
- style: 代码风格或者样式更新
- refactor: 不影响功能的重构
- perf: 性能优化
- test: 修改测试
- revert: 回滚更改
- chore: 其他
├── es (编译后的 ES Module 产物)
├── example (使用示例)
├── lib (编译后的 CommonJS 产物)
├── scripts (开发用的脚本)
└── src (源码)
└── typings (接口类型定义)
使用 JSDoc。
@unused 用于标记未使用/未定义的属性。
@permission 用于声明需要的权限,是用空格分割的 src/typings/permission.ts~Permission 枚举键或 *(表示需要白名单)。
同个 @permission 标识符的参数中的权限必须全部满足才能调用;多个 @permission 标识符只要满足一个就能调用,如:
/**
* 本方法需要“编辑服务器资料 + 白名单”或“超级管理员”权限。
* @permission MANAGE_GUILD *
* @permission ADMINISTRATOR
*/
function f() {}在构造函数参数列表中声明的成员变量,在成员变量前注释,如:
class Channel {
constructor(
/** 频道名称。 */
public name: string,
) {}
}