certimate/CONTRIBUTING.md
2025-06-17 20:22:53 +08:00

3.7 KiB
Raw Permalink Blame History

贡献指南

非常感谢你抽出时间来帮助改进 Certimate以下是向 Certimate 提交 Pull Request 时的操作指南。

我们需要保持敏捷和快速迭代,同时也希望确保贡献者能获得尽可能流畅的参与体验。这份贡献指南旨在帮助你熟悉代码库和我们的工作方式,让你可以尽快进入有趣的开发环节。

索引:


开发

要求

  • Go 1.24+(用于修改后端代码)
  • Node.js 22.0+(用于修改前端代码)

后端代码

Certimate 的后端代码是使用 Golang 开发的,是一个基于 Pocketbase 构建的单体应用。

假设你已经对 Certimate 的后端代码做出了一些修改,现在你想要运行它,请遵循以下步骤:

  1. 进入根目录;
  2. 安装依赖:
    go mod vendor
    
  3. 启动本地开发服务:
    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 开发的,是一个基于 ReactVite 构建的单页应用。

假设你已经对 Certimate 的前端代码做出了一些修改,现在你想要运行它,请遵循以下步骤:

  1. 进入 /ui 目录;
  2. 安装依赖:
    npm install
    
  3. 启动 Vite 开发服务器:
    npm run dev
    

这将启动一个 Web 服务器,默认运行在 http://localhost:5173,你可以通过浏览器访问来查看运行中的 WebUI。

完成修改后,运行以下命令来构建 WebUI以便它能被嵌入到 Go 包中:

npm run build

在向主仓库提交 PR 之前,你应该:

  • 使用 ESLint 格式化你的代码。推荐使用 VSCode并安装 ESLint+Prettier 插件,以便在保存时自动格式化。

提交 PR

在提交 PR 之前,请先创建一个 Issue 来讨论你的修改方案,并等待来自项目维护者的反馈。这样做有助于:

  • 让我们充分理解你的修改内容;
  • 评估修改是否符合项目路线图;
  • 避免重复工作;
  • 防止你投入时间到可能无法被合并的修改中。

提交流程

  1. Fork 本仓库;
  2. 在提交 PR 之前,请先发起 Issue 讨论你想要做的修改;
  3. 为你的修改创建一个新的分支;
  4. 请为你的修改添加相应的测试;
  5. 确保你的代码能通过现有的测试;
  6. 请在 PR 描述中关联相关 Issue
  7. 等待合并!

Important

建议为每个新功能或 Bug 修复创建一个从 main 分支派生的新分支。如果你计划提交多个 PR请保持不同的改动在独立分支中以便更容易进行代码审查并最终合并。

保持一个 PR 只实现一个功能或修复。

获取帮助

如果你在贡献过程中遇到困难或问题,可以通过 GitHub Issues 向我们提问。