很高兴你有意愿参与 OpenTiny NEXT-SDKs 项目的贡献。参与贡献的形式有很多种,你可以根据自己的特长和兴趣选择其中的一个或多个:
- 报告新缺陷
- 为已有缺陷提供更详细的信息,比如补充截图、提供更详细的复现步骤、提供最小可复现 demo 链接等
- 提交 Pull requests 修复文档中的错别字或让文档更清晰和完善
- 添加官方小助手微信 opentiny-official,加入技术交流群参与讨论
当你亲自使用 NEXT-SDKs 并参与多次以上形式的贡献,对项目逐渐熟悉之后,可以尝试做一些更有挑战的事情,比如:
- 修复缺陷,可以先从 Good-first issue 开始
- 实现新特性
- 完善单元测试
- 翻译文档
- 参与代码检视
如果你在使用 OpenTiny NEXT-SDKs 过程中遇到问题,欢迎给我们提交 Issue。提交 Issue 之前,请先仔细阅读相关的官方文档,确认这是一个缺陷还是尚未实现的功能。
如果是一个缺陷,创建新 Issue 时选择 Bug report 模板,标题遵循 [packageName] 缺陷简述 的格式,比如:[next-sdk] WebMcpClient 连接超时后重连失败。
报告缺陷的 Issue 主要需要填写以下信息:
@opentiny/next-sdk、@opentiny/next-remoter(如涉及)及 Node.js 的版本号- 缺陷的表现,可截图辅助说明,如果有报错可贴上报错信息
- 缺陷的复现步骤,最好能提供一个最小可复现 demo 链接
如果是一个新特性,则选择 Feature request 模板,标题遵循 [packageName] 新特性简述 的格式,比如:[next-remoter] 希望支持自定义主题变量。
新特性的 Issue 主要需要填写以下信息:
- 该特性主要解决用户的什么问题
- 该特性的 API 是什么样的
提交 PR 之前,请先确保你提交的内容是符合 NEXT-SDKs 整体规划的。一般已经标记为 bug 的 Issue 是鼓励提交 PR 的。如果你不是很确定,可以创建一个 Discussion 进行讨论。
commit 信息要以 type(scope): 描述信息 的形式填写,例如:fix(next-sdk): 修复 WebMcpClient 重连逻辑。
-
type:必须是
build、chore、ci、docs、feat、fix、perf、refactor、revert、release、style、test、improvement其中的一个。 -
scope(可选):
packages目录下的包名或模块名,例如:- 包名:
next-sdk、next-remoter、next-wxt、doc-ai、vue-playground、next-sdk-playground、next-docs - next-sdk 下模块:
next-sdk/transport、next-sdk/agent等
- 包名:
-
标题的规范与 commit 信息一致,以
type(scope): 描述信息的形式填写。 -
标题示例:
- 补充 next-sdk 文档:
docs(next-docs): 添加 MCP 传输层说明 - 修复 WebMcpClient 缺陷:
fix(next-sdk): 修复 session 超时处理 - next-remoter 新特性:
feat(next-remoter): 支持自定义主题
- 补充 next-sdk 文档:
PR 描述使用了模板,需要按照模板填写 PR 相关信息,主要包括:
- PR 自检项:Commit 信息是否符合规范、是否补充了测试、是否补充了文档
- PR 类型:缺陷修复、新特性、代码格式调整、重构、构建、CI、文档等
- 关联的 Issue 编号
- 是否包含破坏性变更
- 点击 next-sdk 代码仓库右上角的 Fork 按钮,将上游仓库 Fork 到个人仓库
- Clone 个人仓库到本地
- 关联上游仓库,方便同步上游仓库最新代码
- 在项目根目录下运行
pnpm install安装依赖(请使用 pnpm,不要使用 npm 或 yarn) - 运行
pnpm dev启动 doc-ai 示例,或运行pnpm wiki启动 VitePress 文档站点
# username 为你的 GitHub 用户名,执行前请替换
git clone git@github.com:username/next-sdk.git
cd next-sdk
# 关联上游仓库
git remote add upstream git@github.com:opentiny/next-sdk.git
# 安装依赖
pnpm install
# 启动 doc-ai 示例
pnpm dev
# 启动 VitePress 文档
pnpm wiki
# 其他开发命令
# pnpm dev:remoter - next-remoter 组件开发
# pnpm dev:wxt - 浏览器扩展
# pnpm dev:vue-playground - Vue 示例
# pnpm dev:playground - Next.js 示例- 请确保你已经完成本地启动中的步骤,并能正常运行项目
- 同步上游仓库 dev 分支最新代码:
git pull upstream dev - 从上游仓库 dev 分支创建新分支:
git checkout -b username/feature1 upstream/dev,分支名字建议为username/feat-xxx/username/fix-xxx - 本地编码
- 遵循 Conventional Commits 规范进行提交,不符合提交规范的 PR 可能不会被合并
- 提交到远程仓库:
git push origin branchName - 打开 next-sdk 代码仓库的 Pull requests 链接,点击 New pull request 按钮提交 PR
- 按照 PR 模板补充相关信息,包括 PR 自检项、PR 类型、关联的 Issue 编号、是否是破坏性变更
- 项目维护者进行 Code Review,并提出意见
- PR 作者根据意见调整代码。请注意:一个分支发起了 PR 后,后续的 commit 会自动同步,无需重新提交 PR
- 项目维护者合并 PR
贡献流程结束,感谢你的贡献!
如果你对我们的开源项目感兴趣,欢迎通过以下方式加入我们的开源社区。
- 添加官方小助手微信:opentiny-official,加入我们的技术交流群
- 加入邮件列表:opentiny@googlegroups.com
如果你给 OpenTiny 提交过 Issue 或 PR,可以通过在 Issue 或 Pull Request 下评论的方式,请求 @all-contributors 将你加入贡献者列表:
@all-contributors please add @<username> for <contributions>
详细规则可以参考:allcontributors.org - bot 使用说明
我们诚挚感谢每位参与 OpenTiny NEXT-SDKs 项目的贡献者们!你的贡献会体现在仓库的 contributors 中。我们欢迎各种形式的贡献,包括代码、文档与反馈。