
如何给Muxy开源项目贡献代码SPM Swift 6本地开发、测试与Lint完整指南【免费下载链接】muxyLightweight and Memory efficient terminal for Mac built with SwiftUI and libghostty项目地址: https://gitcode.com/gh_mirrors/muxy1/muxyMuxy 是一款用 SwiftUI 和 libghostty 构建的轻量级 macOS 终端本文带你完整走通 Muxy 开源项目的代码贡献全流程从 SPMSwift Package Manager工程初始化、Swift 6 本地开发到自动化测试与 SwiftLint 静态检查零基础也能快速上手。一、贡献前准备环境要求清单Muxy 是一个纯 SPM 工程无需 Xcode 工程文件也不依赖外部依赖管理器。开始前请确认工具版本要求安装方式macOS14 及以上—Swift6.0 及以上随 Xcode Command Line ToolsSwiftLint0.57.1brew install swiftlintSwiftFormat0.62.1brew install swiftformat⚠️ 工具版本已被锁定在 .tool-versions 文件中检查脚本启动时会校验版本版本不符会明确提示你期望的版本号。官方贡献指南见 CONTRIBUTING.md完整的项目约定可参考 AGENTS.md。二、一键克隆与初始化开发环境克隆仓库后只需三条命令即可完成初始化git clone https://gitcode.com/gh_mirrors/muxy1/muxy cd muxy scripts/setup.sh # 自动下载 GhosttyKit.xcframework 及运行时资源 swift build # 验证全部代码可编译初始化脚本 scripts/setup.sh 会从上游 fork 的 Ghostty 仓库拉取最新发布的GhosttyKit.xcframework并把 shell 集成资源、terminfo 文件同步到Muxy/Resources/下已存在时会自动跳过重复执行安全无副作用。三、读懂 SPM 工程结构Package.swift 声明了swift-tools-version: 6.0整个工程由多个 Target 组成Muxy主应用依赖 GhosttyKit、MuxyServer、Sparkle、Yams、SentryMuxyShared跨进程共享的协议与 DTOmuxy-hook / muxy-session两个独立可执行目标用于 AI 代理 Hook 桥接与持久会话守护MuxyTests测试 Target源码位于 Tests/MuxyTests覆盖 Git 解析、远程服务、模型、视图等 200 个测试文件理解 Target 依赖关系后你在改代码时就能快速定位改动会波及哪些模块。四、本地构建与运行swift build --product Muxy # Debug 构建 swift run Muxy # 直接启动应用日常开发推荐用 scripts/run-dev.sh它会自动检测源码是否比上次构建更新按需增量编译Muxy、muxy-hook、muxy-session三个产物后再启动省去手动判断重建的步骤scripts/run-dev.sh --hooks # 启用 AI hooks 调试模式五、本地测试与覆盖率门槛测试通过 scripts/run-tests-isolated.sh 以隔离的 Application Support 存储运行避免污染真实用户数据swift test --quiet # 标准测试 scripts/checks.sh --coverage # 额外运行覆盖率门槛覆盖率脚本 scripts/coverage.sh 要求核心模块行覆盖率不低于90%低于门槛会直接失败这是 PR 合入的硬性标准之一。六、Lint 与格式化一条命令全搞定提交前必须通过完整检查链一条命令即可scripts/checks.sh # 格式检查 → 严格 Lint → 构建测试 → 运行测试 scripts/checks.sh --fix # 自动修复格式和 Lint 问题后再构建测试检查链 scripts/checks.sh 按顺序执行、首个失败即停止并输出每步耗时Formatting—swiftformat --lint .规则见 .swiftformatLinting—swiftlint lint --strict --quiet规则见 .swiftlint.ymlBuild tests—swift build --build-testsTest— 隔离存储下运行swift test七、代码规范与 PR 提交清单代码规范项目明确要求代码库不允许任何注释代码必须自解释、结构清晰用提前返回代替深层嵌套条件判断修复根因而非打补丁遵循现有模式保持低内存、低 CPU 占用的设计取向PR 提交清单基于main创建分支PR 聚焦单一改动标题和描述说清楚为什么关联相关 Issue提交前本地跑通scripts/checks.sh --fix若使用 AI 辅助编码必须在 PR 中注明所用 LLM 名称遵循 PR 模板 填写⚠️ 特别注意Muxy 实行仅人类沟通政策——Issue、PR 描述与评审评论中禁止 AI 生成的文本可用 AI 辅助写代码但发布文本必须是你自己写的违反的 Issue/PR 会直接被关闭。八、遇到 bug 怎么提 Issue提 Issue 前先搜索是否已有相同问题然后使用对应模板Bug.github/ISSUE_TEMPLATE/bug_report.yml功能建议.github/ISSUE_TEMPLATE/feature_request.yml结语从git clone到 PR 合入Muxy 的贡献路径非常顺滑SPM 免配置初始化、一条scripts/checks.sh --fix搞定格式化/Lint/构建/测试规范清晰且可预期。熟悉本指南后你就可以开始为这个轻量高效的 macOS 终端提交自己的第一个贡献了 【免费下载链接】muxyLightweight and Memory efficient terminal for Mac built with SwiftUI and libghostty项目地址: https://gitcode.com/gh_mirrors/muxy1/muxy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考