新闻详情

新闻详情

首页 / 资讯中心 / 详情

open-slide 贡献者指南:monorepo 结构、开发环境搭建与 PR 提交流程全解析

发布时间:2026/9/29 14:23:34来源:尧图网络
open-slide 贡献者指南:monorepo 结构、开发环境搭建与 PR 提交流程全解析
【免费下载链接】open-slideA slide framework built for agents.项目地址https://gitcode.com/gh_mirrors/op/open-slide点击查看免费下载本指南面向希望参与 open-slide 框架本身open-slide/core运行时、open-slide/cli脚手架以及配套 apps开发与维护的贡献者系统讲解仓库的 monorepo 布局、环境要求、常用开发脚本、代码风格约定、测试规范与完整的 Pull Request 提交流程。读完本文你将掌握从克隆仓库、本地跑起 demo 到提交一个符合 CI 与审查标准的 PR 的完整闭环如果你只是在脚手架项目里编写幻灯片则无需阅读本文直接通过你的编码 Agent 驱动或编辑slides/id/index.tsx即可。贡献方式总览open-slide 的贡献入口分为四类分别对应不同的协作渠道报告 Bug通过 bug report 模板 提交务必附带最小可复现示例minimal reproduction帮助维护者快速定位问题。提议新功能通过 feature request 模板 提交规范要求先描述问题、再给出方案Describe the problem before the solution确保方向一致。提问或分享你的作品在项目的 GitHub Discussions 中发起讨论适合提出疑问、交流使用心得。提交 Pull Request遵循下文第 5 节的完整流程。对于非琐碎的改动non-trivial changes建议先开 issue 或 discussion 对齐方向再投入编码时间避免 PR 方向跑偏后被驳回。从仓库目录结构看.github/ISSUE_TEMPLATE/下同时存在bug_report.yml、feature_request.yml与config.yml说明 issue 模板体系完整提交前会自动加载对应表单。仓库布局pnpm Turbo 的 monorepoopen-slide 是一个基于pnpm Turbo的 monorepo各包的角色划分如下路径包名角色packages/coreopen-slide/core运行时viewer、演示模式、inspector、Vite 插件、open-slidedev/build CLIpackages/cliopen-slide/clinpx open-slide/cli init脚手架 项目模板apps/demoprivate通过workspace:*消费open-slide/core的本地示例项目即框架的自举dogfood目标apps/webprivate官网营销站点Next.js从源码可以进一步印证这套布局的工程细节pnpm-workspace.yaml 声明了全部工作区apps/*、apps/marketing/*、packages/*以及packages/core/e2e/fixturee2e 测试用的独立夹具工程说明apps/下不仅有 demo 和 web还包含营销类子应用。根 package.json 中packageManager字段固定为pnpm10.17.0并提供了dev、build、typecheck、check、check:fix、test等 turbo 代理脚本以及core、cli两个包级过滤快捷脚本详见下文常用脚本。turbo.json 为各任务定义了依赖关系与缓存策略dev任务cache: false且persistent: true长期运行的进程不缓存、不退出build输出dist/**与template/**typecheck依赖上游^build。apps/demo/package.json 中依赖为open-slide/core: workspace:*dev/build/preview脚本直接调用open-slide二进制这正是demo 消费本地 core的实现方式。环境准备Prerequisites开始开发前请确认本机满足以下条件Node.js 22与 CI 环境保持一致见.github/workflows/ci.yml中actions/setup-node的node-version: 22。同时注意 packages/core/package.json 的engines字段为^20.19.0 || 22.12.0即运行时对 Node 的最低要求是 20.19 或 22.12 以上。pnpm 10.17.0执行corepack enable后corepack 会自动采用根package.json中固定的pnpm10.17.0版本无需手动安装。类 Unix shellWindows 用户请通过 WSL 开发CI 本身也运行在 Ubuntu 容器中。搭建本地开发环境git clone https://gitcode.com/gh_mirrors/op/open-slide cd open-slide pnpm install然后针对本地open-slide/core运行 demopnpm devapps/demo 是验证框架改动最快的方式修改packages/core后demo 会热重载hot-reload无需手动重启。这是因为apps/demo通过workspace:*直接链接到本地 core 包而 turbo 的dev任务见 turbo.json会先构建依赖图的上游产物再启动持久进程。常用脚本一览根目录 package.json 中定义的脚本与 CONTRIBUTING.md 一一对应具体如下pnpm dev # turbo: 运行 demo 并链接本地 core pnpm build # 构建所有包 pnpm typecheck # 对整个依赖图执行 tsc 类型检查 pnpm check # biome格式化 lint import 整理 pnpm check:fix # 自动修复 biome 可修复的问题 pnpm test # vitest 单元测试脚本的底层映射分别是turbo run dev、turbo run build、turbo run typecheck、biome check .、biome check --write .与vitest run与 turbo.json 的任务配置一一对应。只处理单个包时使用 turbo 的 filter 语法pnpm core script # 例如 pnpm core build pnpm cli script这两个快捷方式定义于根package.json的core: pnpm --filter open-slide/core与cli: pnpm --filter open-slide/cli因此pnpm core test:e2e等价于仅对 core 包执行端到端测试。此外根目录还提供了pnpm test:e2e即pnpm --filter open-slide/core test:e2e来一次性运行 Playwright 全套 e2e 用例。Pull Request 工作流1. Fork 并创建分支从main分支切出特性分支保持分支聚焦——一个 PR 只做一件逻辑改动。2. 完成改动匹配仓库现有代码风格不要顺手重构无关代码Dont reformat unrelated code。3. 推送前运行全部检查pnpm check # 必须通过 —— CI 强制执行 pnpm typecheck pnpm testpnpm check:fix会自动修复绝大多数格式与 lint 问题。为什么必须通过是硬性要求因为 .github/workflows/ci.yml 中 CI 的lintjob 会分别运行pnpm format:check和pnpm lint任何格式偏差都会直接导致 PR 标红。4. 改动packages/core或packages/cli时添加 changesetpnpm changeset选择受影响的包并确定合适的版本级别bumppatch—— Bug 修复、内部重构、打磨类改动minor—— 新的公开 API、新增功能major—— 破坏性变更。appsapps/demo、apps/web和根目录工具链不需要 changeset。changeset 描述要求简短直接一行、现在时态、从用户视角说明改了什么语气与现有.changeset/*.md文件保持一致。不要写段落、不要写理由、不要出现this PR…。好Replace spinner with a hairline sliding bar for slide and presenter loading states.差This change introduces a new loading indicator because the previous spinner felt heavy…不要手动修改版本号或编辑CHANGELOG.md—— 这些由changeset version全权负责。从根package.json的脚本可以看到版本化的命令是version-packages: changeset version发布命令release则会先 turbo 构建 core 与 cli 再执行changeset publish。5. 打开 PR在 PR 描述中说明问题是什么、改动是什么、如何验证Describe the problem, the change, and how you tested it并链接相关 issue。UI 改动建议附截图或短视频。6. 处理审查反馈通过追加提交follow-up commits回应 review 意见合入时采用 squash。代码风格与约定Biome 必须通过格式化、lint、import 排序全部由pnpm check强制约束无需手工纠结风格细节。不随意引入依赖core运行时会随包一起分发给用户每新增一个依赖都会膨胀安装体积。优先用少量内联代码替代新依赖而不是为小功能引入新包。这一约定与 packages/core/package.json 中files白名单dist、src/app、src/locale、skills等相辅相成——发布物体积被严格管控。默认不写注释只有当为什么不显然时才写注释——隐藏约束、微妙的不变式、针对特定 bug 的 workaround。不要解释代码做了什么命名良好的标识符自会说明。不要动packages/core/src/app/components/ui该目录是 shadcn 生成的且被 biome 忽略除非你在重新生成它。从 biome.json 可以印证这一忽略策略。测试要求单元测试通过pnpm testVitest运行。修复 bug 或新增值得测试的逻辑时将测试放在代码旁边*.test.ts。仓库中 core 包的测试即遵循此约定例如 packages/core/src/lib/transition.test.ts、packages/core/src/editing/edit-ops.test.ts。运行时/UI 改动请在 apps/demo 中实际验证改动并在 PR 中说明你演练了什么内容describe what you exercised。端到端测试仓库还维护了一套 Playwright e2e 套件位于 packages/core/e2e/tests覆盖导出、presenter、inspector、主题、热更新等场景。CI 中e2ejob 使用与packages/core/package.json中playwright/test ~1.63.0匹配的mcr.microsoft.com/playwright:v1.63.0-noble容器镜像运行并将报告上传为 artifact 保留 7 天。发布流程版本发布由维护者执行pnpm release该命令会构建open-slide/core与open-slide/cli并执行changeset publish根package.json中release: turbo run build --filteropen-slide/core --filteropen-slide/cli changeset publish。贡献者无需发布任何东西——只需随代码提交 changeset 即可剩下的交给维护者。问题与讨论如果遇到文档未覆盖的问题欢迎在项目的 GitHub Discussions 中发起讨论维护者会乐于协助。对于参与框架开发的贡献者本节可与上文贡献方式总览中的 discussion 入口相互印证——提问、方向探讨与成品分享都在同一渠道完成。小结参与 open-slide 框架开发的核心要点可归纳为一句话clone 仓库 →pnpm install→pnpm dev用 demo 自举验证 → 改动后跑pnpm check pnpm typecheck pnpm test→ 涉及 core/cli 则加 changeset → 提交聚焦的 PR。这套流程由根 package.json 脚本、turbo.json 任务、.github/workflows/ci.yml 检查链与 CONTRIBUTING.md 约定共同保障任何一步都有清晰的自动化与规范兜底。赞分享【免费下载链接】open-slideA slide framework built for agents.项目地址https://gitcode.com/gh_mirrors/op/open-slide点击查看免费下载相关推荐Artillery 贡献指南Monorepo 开发环境、TypeScript 构建约定与 PR 提交流程全解析Artillery 贡献指南Monorepo 开发环境、TypeScript 构建约定与 PR 提交流程全解析 本篇指南以 Artillery 开源仓库的 C性能测试接口测试CLIBiliBiliToolProB站自动任务部署实操指南BiliBiliToolProB站自动任务部署实操指南 BiliBiliToolPro 是一个 B 站自动任务工具把每日签到、投币、点赞、分享这类每天记得后端任务调度工作流自动化Open Policy AgentOPA贡献者开发指南从环境搭建、make 构建到 PR 提交与 CI 全流程实战Open Policy AgentOPA贡献者开发指南从环境搭建、 make 构建到 PR 提交与 CI 全流程实战 本文以 OPA 官方开发者文档 do后端认证鉴权云原生上一篇CUDA Samples 之 simpleCooperativeGroups线程块内 Cooperative Groups 协同线程组入门实战下一篇Polar 服务端性能优化用 React.cache() 实现单请求内的数据请求去重创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Linux磁盘配额实战指南:从ext4到xfs的配置与避坑 2026/9/29 15:46:59

Linux磁盘配额实战指南:从ext4到xfs的配置与避坑

1. 磁盘配额到底解决了什么问题磁盘配额这个功能,说复杂不复杂,说简单也不简单。简单理解就是:给用户或组设置一块磁盘空间的"消费上限",超过这个上限就禁止继续写入。这在多用户服务器、共享存储、虚拟主机生产环境里几…

阅读更多 →
系统架构设计师安全架构设计:六大属性、模型与实战全解 2026/9/29 15:46:52

系统架构设计师安全架构设计:六大属性、模型与实战全解

系统架构设计师这门考试里,安全架构设计是个很有意思的板块。它不是哪一本教材里的独立章节,也不会只出现在某一科的固定位置上——上午选择题里有它,下午案例分析题里经常和分布式、高可用混在一起考,到了论文阶段它还时不时作为…

阅读更多 →
SharpPcap网络抓包实战:C#从驱动原理到BPF过滤器避坑指南 2026/9/29 15:46:52

SharpPcap网络抓包实战:C#从驱动原理到BPF过滤器避坑指南

简介:这是一份基于C#语言与SharpPcap开源库开发的网络抓包程序及完整源码,面向C#开发者、网络维护人员和安全分析者,用于捕获、解析和监控局域网数据通信,辅助网络延迟检测、丢包分析和异常流量识别,可服务于网络诊断、…

阅读更多 →
PolarCTF 2025夏季赛实战复盘:从报名到拿旗的完整攻略 2026/9/29 15:46:52

PolarCTF 2025夏季赛实战复盘:从报名到拿旗的完整攻略

PolarCTF 2025夏季赛全记录:从报名到拿旗的完整实战复盘 又到了夏日CTF旺季,PolarCTF 2025夏季赛一放出报名消息,群里就炸开了锅。作为国内高校圈子里口碑一直很稳的CTF赛事,PolarCTF每年夏季和冬季两次固定赛程,已经成…

阅读更多 →
用HTML+CSS+JavaScript从零搭建相宜本草购物商城 2026/9/29 15:46:46

用HTML+CSS+JavaScript从零搭建相宜本草购物商城

刚敲完期末作业的最后一版页面,大概率不少同学正对着浏览器里那个“能打开但没眼看”的商城发愁:图片歪了、导航不动、购物车按钮点了没反应。这正是每年网页设计课交作业前最常见的状态。这篇东西也不绕弯子,直接围绕“大学生HTML期末大作业…

阅读更多 →
大模型智能体在风控数据分析中的实践:从规则引擎到复杂研判 2026/9/29 15:46:46

大模型智能体在风控数据分析中的实践:从规则引擎到复杂研判

简介:一份以 Grab 风控场景为背景的实践分享 PPT,面向风控算法、数据分析和 AI 应用从业者,探讨如何用大模型与智能体破解复杂场景数据分析中的效率瓶颈、数据孤岛和知识依赖难题。包体为单个 PPT 文件,容量 7.81MB,目…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉