3.7 KiB
贡献指南
非常感谢你抽出时间来帮助改进 Certimate!以下是向 Certimate 提交 Pull Request 时的操作指南。
我们需要保持敏捷和快速迭代,同时也希望确保贡献者能获得尽可能流畅的参与体验。这份贡献指南旨在帮助你熟悉代码库和我们的工作方式,让你可以尽快进入有趣的开发环节。
索引:
开发
要求
- Go 1.24+(用于修改后端代码)
- Node.js 22.0+(用于修改前端代码)
后端代码
Certimate 的后端代码是使用 Golang 开发的,是一个基于 Pocketbase 构建的单体应用。
假设你已经对 Certimate 的后端代码做出了一些修改,现在你想要运行它,请遵循以下步骤:
- 进入根目录;
- 安装依赖:
go mod vendor
- 启动本地开发服务:
go run main.go serve
这将启动一个 Web 服务器,默认运行在 http://localhost:8090
,并使用来自 /ui/dist
的预构建管理页面。
如果你遇到报错
ui/embed.go: pattern all:dist: no matching files found
,请参考“前端代码”这一小节构建 WebUI。
在向主仓库提交 PR 之前,你应该:
- 使用 gofumpt 格式化你的代码。推荐使用 VSCode,并安装 gofumpt 插件,以便在保存时自动格式化。
- 为你的改动添加单元测试或集成测试(使用 Go 标准库中的
testing
包)。
前端代码
Certimate 的前端代码是使用 TypeScript 开发的,是一个基于 React 和 Vite 构建的单页应用。
假设你已经对 Certimate 的前端代码做出了一些修改,现在你想要运行它,请遵循以下步骤:
- 进入
/ui
目录; - 安装依赖:
npm install
- 启动 Vite 开发服务器:
npm run dev
这将启动一个 Web 服务器,默认运行在 http://localhost:5173
,你可以通过浏览器访问来查看运行中的 WebUI。
完成修改后,运行以下命令来构建 WebUI,以便它能被嵌入到 Go 包中:
npm run build
在向主仓库提交 PR 之前,你应该:
- 使用 ESLint 格式化你的代码。推荐使用 VSCode,并安装 ESLint+Prettier 插件,以便在保存时自动格式化。
提交 PR
在提交 PR 之前,请先创建一个 Issue 来讨论你的修改方案,并等待来自项目维护者的反馈。这样做有助于:
- 让我们充分理解你的修改内容;
- 评估修改是否符合项目路线图;
- 避免重复工作;
- 防止你投入时间到可能无法被合并的修改中。
提交流程
- Fork 本仓库;
- 在提交 PR 之前,请先发起 Issue 讨论你想要做的修改;
- 为你的修改创建一个新的分支;
- 请为你的修改添加相应的测试;
- 确保你的代码能通过现有的测试;
- 请在 PR 描述中关联相关 Issue;
- 等待合并!
Important
建议为每个新功能或 Bug 修复创建一个从
main
分支派生的新分支。如果你计划提交多个 PR,请保持不同的改动在独立分支中,以便更容易进行代码审查并最终合并。保持一个 PR 只实现一个功能或修复。
获取帮助
如果你在贡献过程中遇到困难或问题,可以通过 GitHub Issues 向我们提问。