尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

OpenNOW开发者指南:从零构建、跑通验收测试与贡献你的第一个Pull Request

OpenNOW开发者指南:从零构建、跑通验收测试与贡献你的第一个Pull Request OpenNOW开发者指南从零构建、跑通验收测试与贡献你的第一个Pull Request【免费下载链接】OpenNOWCustom GeForce Now Client Named OpenNOW项目地址: https://gitcode.com/gh_mirrors/op/OpenNOWOpenNOW 是一个开源的 GeForce NOW 桌面客户端使用 Qt Quick 构建界面、Rust 负责账号服务与串流。本文是面向新手的OpenNOW 开发者指南带你完成从零构建、跑通本地与验收测试并一步步提交你的第一个 Pull Request帮助你快速上手这个项目的贡献流程。一、先认清仓库结构OpenNOW 由哪些部分组成动手前先花 2 分钟了解代码在哪里。OpenNOW 仓库分为几大块各司其职目录技术栈职责opennow-qt/Qt 6 C20 QML桌面应用界面、输入、串流渲染集成与 Qt 测试native/opennow-core/Rust账号、设置、目录、会话编排等应用核心服务native/opennow-streamer/RustNVST 串流传输、解码、音频、输入与 Qt FFIlocales/JSON英文源文案 Crowdin 管理的多语言翻译docs/Markdown协议、验收、发布等架构文档架构上Qt 只负责绘制窗口与交互Rust 核心在独立进程中运行两者通过带版本的 JSON 协议通信协议细节见 docs/core-protocol.md。串流部分则以版本化 C ABI 的方式嵌入 Qt 进程视频全程留在 GPU 上。二、从零构建安装依赖并完成第一次编译️ 构建 OpenNOW 需要以下工具链构建和运行桌面端不需要Node.js 或 npmQt 6.8含 Quick、Multimedia、ShaderToolsCMake 3.24 与 C20 工具链SDL3、CargoRust及平台媒体依赖Linux 还需pkg-config、libwayland-dev、wayland-protocolsX11 构建也要求安装一键克隆与配置在终端中依次执行git clone https://gitcode.com/gh_mirrors/op/OpenNOW cd OpenNOW cmake -S opennow-qt -B build/opennow-qt -DCMAKE_BUILD_TYPEDebug cmake --build build/opennow-qt配置时使用main分支获取发布源码dev分支则是持续开发中的版本。macOS 用户的完整构建步骤含CMAKE_OSX_ARCHITECTURES与打包命令参考 opennow-qt/README.md 的 Build 章节。没有 GFN 账号也能验证构建登录和实际游戏需要自己的 GeForce NOW 账号但即使没有账号你依然可以运行冒烟测试、截图夹具和性能检查——这正是项目测试体系对新手最友好的地方。三、跑通验收测试像 CI 一样验证你的构建✅ OpenNOW 的测试分为几层你只需要按顺序执行就能在本地复刻大部分 CI 检查第 1 步运行完整 Qt 测试套件ctest --test-dir build/opennow-qt --output-on-failure第 2 步运行 Rust 核心与串流器测试cargo test --manifest-path native/opennow-core/Cargo.toml cargo test --manifest-path native/opennow-streamer/Cargo.toml --workspace第 3 步可选——无账号冒烟测试使用 offscreen 平台插件做启动冒烟测试无需登录即可截图验证QT_QPA_PLATFORMoffscreen ./build/opennow-qt/opennow-qt \ --smoke-test --allow-multiple-instances --route home几个实用技巧均来自 opennow-qt/README.md开发开关--route name打开指定页面、--overlay name打开浮层、--screenshot png保存截图主题检查ctest --test-dir build/opennow-qt -R theme-tests|qml-theme-settingsCI 的 headless 测试只跑ci-unit标签的用例需要真实桌面交互的用例在interactive-desktop标签下二者互不替代关于发布前必须验证什么项目的完整验收矩阵写在 docs/qt-acceptance.md它是理解 OpenNOW 质量门槛的最佳入口。四、了解 CI 检查你的提交会经历什么提交 PR 后qt-ci工作流会在 Linux x64、Windows x64、macOS ARM64 上并行运行工作流 lint、打包契约测试、本地化校验随后是 Rust 格式化/静态检查/测试 QML 语法检查 ci-unitQt 测试。三个平台的状态检查linux-x64、windows-x64、macos-arm64都是合入dev/main的必需条件。⚠️ 注意完整应用构建、ARM64 交叉编译和打包只在手动派发时执行——如果你的改动涉及这些路径合入前请先手动跑一次构建。CI 的缓存与性能策略可参考 docs/ci-performance.md。五、贡献你的第一个 Pull Request OpenNOW 的贡献规范集中在 .github/CONTRIBUTING.md 与 AGENTS.md 两份文档中建议通读后再动手。核心要点建特性分支保持每次提交聚焦单一改动先跑最小相关测试改动 Qt 就跑对应ctest -R用例改动 Rust 就跑对应 crate 测试有条件时再跑完整套件本地化特殊规则只编辑 locales/en.json其他语言文件由 Crowdin 生成禁止手改改完后运行npm run locales:check校验这是仓库中少数需要 Node.js 的场景提交 PR时使用简洁的变更摘要模板见 .github/PULL_REQUEST_TEMPLATE.md把一次性的验证截图作为附件上传而不是提交进仓库报 Bug 时附上构建版本、系统、GPU 与复现步骤串流类问题请先在 设置 → 关于 → 复制诊断 导出诊断报告并注意检查其中的隐私信息新手友好切入点清单QML 界面调整改 opennow-qt/qml/ 下的组件配合冒烟测试截图自测文案修复仅改 locales/en.json门槛最低文档完善docs/ 下的架构与验收文档测试补充opennow-qt/tests/ 下有大量 QML 验收用例可参考写法六、常用参考文档速查文档内容opennow-qt/README.md构建、冒烟测试、诊断与功能说明总入口docs/qt-acceptance.md验收手册每个功能需要哪些证据docs/core-protocol.mdQt 壳层与 Rust 核心的 JSON 协议native/opennow-streamer/README.md原生串流器的图形后端与 FFI 说明docs/qt-migration.md从 Electron 迁移到 Qt 的历史与遗留清单从零构建、跑通测试、发出第一个 PR——你现在已经掌握了 OpenNOW 贡献所需的完整路径。记住 AGENTS.md 里的核心优先级性能优先、可靠优先、行为可预测。祝你的第一个 Pull Request 顺利合入【免费下载链接】OpenNOWCustom GeForce Now Client Named OpenNOW项目地址: https://gitcode.com/gh_mirrors/op/OpenNOW创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表