convex-backend 开源贡献指南:从代码规范、本地构建到提交 PR 的完整流程
发布时间:2026/9/23 7:22:38 作者:尧图编辑部 阅读量:1,286

数据库后端【免费下载链接】convex-backendThe open-source reactive database for app developers项目地址https://gitcode.com/gh_mirrors/co/convex-backend点击查看免费下载本篇指南基于 convex-backend 仓库的 CONTRIBUTING.md 编写面向希望参与该开源项目The open-source reactive database for app developers的开发者覆盖社区沟通渠道、代码格式化规范、贡献规模预期、从源码构建与运行后端/Dashboard 的完整链路以及提交 Pull Request 时的许可约定。读完本文你将掌握一套可直接落地的本地开发环境搭建步骤并能按项目维护者的预期提交高质量的小型补丁。与维护团队沟通Discord 是首选渠道Convex 团队在贡献文档中明确表示非常期待看到社区基于 Convex 构建的作品。任何通用问题、功能请求或产品反馈都应发送到 Convex Discord Community。这一沟通前置要求并非形式主义仓库的 README 强调Convex 后端由 Convex 团队主导开发仓库与内部开发保持数天内的同步We keep this repository synced with any internal development work within a handful of days。因此在投入大量精力之前先与维护者对齐能显著避免返工。代码格式规范Rust 用 cargo fmtMarkdown 用 PrettierCONTRIBUTING.md 对代码格式提出了两条硬性要求Rust 代码必须使用cargo fmt格式化Markdown 文件必须使用 Prettier 格式化。仓库内的格式化配置实证这两条规范在仓库中都有对应的配置文件作为支撑根目录的 rustfmt.toml 与 rust-toolchain指定 nightly 工具链nightly-2026-06-28及wasm32-wasip1target共同决定了cargo fmt的实际行为因此格式化前请确保本机 Rust 工具链版本与仓库要求一致。根目录的 dprint.json 是仓库的格式化编排层它通过prettier插件prettier-0.72.0统一处理 Markdown 等文件的格式并配置了proseWrap: always、trailingComma: all等选项同时维护了一份详细的excludes列表用于跳过自动生成的代码、锁文件、第三方 vendored 代码和构建产物如target/、dist/、.next/、pnpm-lock.yaml等。根目录的 .prettierrc.js 与 dprint.json 保持同步文件头注释明确写着 Be sure to change these settings in dprint.json as well方便仅使用 Prettier 的工具链获得一致的输出。也就是说在提交前你应该同时运行cargo fmt # 格式化 Rust 代码需 nightly 工具链 npx prettier --write **/*.md # 格式化 Markdown 文档仓库还提供了 scripts/check_prettier_matches_dprint.py 这样的辅助脚本用于校验两个格式化配置的一致性说明维护者对格式问题相当重视。贡献规模预期小而精的 PR 优先CONTRIBUTING.md 用较大篇幅明确了项目对社区贡献的预期管理这部分对新手至关重要Convex 是一个由专职团队快速迭代的项目开源发布是为了回馈社区但维护者希望管理好社区预期团队重视为所有语言和平台上的开发者提供一致的开发体验以及运营方式的透明性小规模 PR涉及文档、注释或小型 bug 修复易于审查和合入欢迎直接提交对于较大或根本性的改动请先在 Discord 上沟通确认其与产品规划一致后再动手维护者通常不太可能接受大型或根本性的社区贡献因为 API 设计必须服务于整体产品路线图的连贯性无法保证大型 PR 获得同等关注。结合 README.md 中 We welcome small bug fixes 的表述可以看出从文档修订、注释修正、小型 bugfix 入手是社区开发者最顺畅的贡献路径动架构、动 API 之前务必先对齐需求。从源码构建与本地运行完整工具链清单CONTRIBUTING.md 指向了两份关键文档BUILD.md从源码构建后端与 CLI和 dashboard-self-hosted README运行 Dashboard。下面结合仓库实际配置给出完整的环境准备步骤。1. 安装基础依赖按照 BUILD.md 的说明你需要Just用于执行仓库根目录 Justfile 中定义的脚本配方。安装方式如cargo install just或brew install justNode.js版本需与根目录 .nvmrc 指定的22.22.2一致推荐通过 nvm 安装并在仓库根目录执行nvm useCargo / Rust后端由 Rust 编写推荐通过 rustup 安装rust-toolchain 指定的 nightly 版本nightly-2026-06-28会在 rustup 下自动安装pnpm Turborepo先执行npm clean-install --prefix scripts安装 scripts/package.json 中锁定的工具再执行just install-js安装整个 pnpm workspace 的 JS 依赖。2. 构建并运行本地后端BUILD.md 给出的核心命令是just run-local-backend这条命令在 Justfile 中展开为cargo run -p local_backend --bin convex-local-backend -- --instance-name open-source-convex-backend --instance-secret $(just init-instance-secret) ...即以--instance-name open-source-convex-backend启动后端通过init-instance-secret配方生成或复用一份随机的 32 字节 hex 实例密钥存储在convex_local_storage/oss_instance_secret文件中默认监听3210 端口。后端二进制对应 crates/local_backend crate它是基于Runtime构建的本地应用服务器也是 Convex Cloud 的 serving edge见 README.md 的 Repository layout 说明。如果启动时报错 persisted db metadata ...说明本地 SQLite 数据库需要清理可执行just reset-local-backend等价于删除convex_local_storage/目录与convex_local_backend.sqlite3文件然后重新启动。3. 用 CLI 对接本地后端运行 demo 项目BUILD.md 提供了完整的 demo 运行流程just install-js cd npm-packages/demos/tutorial just convex devJustfile 中的convex配方会自动为 CLI 附加--admin-key $(just generate-admin-key) --url http://127.0.0.1:3210参数其中generate-admin-key配方会基于实例名与实例密钥调用cargo run --bin generate_key派生并缓存管理密钥。也就是说本地开发时无需手动传 URL 和 admin keyjust convex dev会完成全部接线并负责把CONVEX_URL写回应用的.env.local。常用的本地调试命令还包括均来自 BUILD.mdjust convex data列出部署中的表just convex env查看/设置/更新/删除环境变量just convex logs流式输出日志传--success可包含成功执行just convex import/just convex export导入/导出表。4. 运行 Dashboard如果要本地运行自托管 Dashboard 以便调试界面改动按照 dashboard-self-hosted READMEjust install-js just turbo run build --filterdashboard-self-hosted^... just run-dashboard YOUR_DEPLOYMENT_URL其中YOUR_DEPLOYMENT_URL可以指向本地、远程或 Convex Cloud 的任意部署若不给参数Justfile 的run-dashboard配方默认使用http://127.0.0.1:3210并自动注入本地 admin key。5. 修改 NPM 包时的构建方式如果改动涉及convex、convex-dev/eslint-plugin、docs、dashboard 等 npm 包monorepo 位于 npm-packages按 BUILD.md 的说明npm clean-install --prefix scripts just install-js just turbo run build # 构建整个 monorepo just turbo run build --filterdocs... # 或只构建某个包及其依赖改动依赖时先修改对应package.json再运行just update-js更新锁文件。需要留意 Justfile 中turbo配方对并发构建竞态的说明它使用flock .turbo/turbo.lock串行化并发 turbo 任务避免与 cargo 并行构建时共享输出被写坏。只想自托管而不改代码直接用预构建产物CONTRIBUTING.md 特别提醒如果只是想自托管 Convex 而不是修改代码库请优先使用预构建的 Docker 镜像或二进制而不是从源码构建。相关说明见 self-hosted README其中覆盖了 Docker Composeself-hosted/docker/docker-compose.yml、进阶部署Fly.io、Railway、自建基础设施、Postgres/MySQL、S3 存储等见 self-hosted/advanced以及升级指南。README 还建议自托管用户务必修改仓库中默认的 instance secret 与 admin key。提交 Pull Request 的许可约定CONTRIBUTING.md 结尾有一条重要的法律约定通过提交 Pull Request你即确认 Convex 可以在其选择的条款下使用、修改、复制和再分发该贡献By submitting pull requests, you confirm that Convex can use, modify, copy, and redistribute the contribution, under the terms of its choice.。这与 README.md 中的表述完全一致是开源贡献者需要知悉的默认条款无需额外签署文件。快速自查清单在向 convex-backend 提交 PR 之前建议对照以下清单综合 CONTRIBUTING.md 与仓库配置整理已用cargo fmtnightly 工具链格式化 Rust 代码Markdown 文档已通过 Prettier与 dprint.json 配置一致格式化改动属于文档、注释或小型 bugfix 等易审查的范畴若是大型/根本性改动已在 Discord 与维护团队提前对齐产品方向已按照 BUILD.md 在本机完成构建与本地验证含just run-local-backend与just convex dev已了解提交 PR 即同意贡献条款的约定。赞分享数据库后端【免费下载链接】convex-backendThe open-source reactive database for app developers项目地址https://gitcode.com/gh_mirrors/co/convex-backend点击查看免费下载相关推荐RESTClient高级技巧OAuth认证与请求头管理实战RESTClient高级技巧OAuth认证与请求头管理实战 RESTClient作为一款强大的RESTful Web服务调试工具提供了全面的OAuth认证支GPT2-Chinese项目开源贡献指南代码规范与PR提交流程GPT2 Chinese项目开源贡献指南代码规范与PR提交流程 项目概述 GPT2 Chinese是基于HuggingFace Transformers库开发人工智能大模型预训练NLP为 OpenCodeReview 贡献代码从本地构建到提交 PR 的完整指南为 OpenCodeReview 贡献代码从本地构建到提交 PR 的完整指南 OpenCodeReviewOCR是一款以确定性流水线 LLM Age人工智能AI 应用代码评审开发工具代码质量创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考