ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Search 开发者贡献指南:如何构建、修改并向这个 3MB WebKit 浏览器提交第一个 PR

Search 开发者贡献指南:如何构建、修改并向这个 3MB WebKit 浏览器提交第一个 PR Search 开发者贡献指南如何构建、修改并向这个 3MB WebKit 浏览器提交第一个 PR【免费下载链接】SearchA small, fast WebKit browser for macOS, by Office Commun.项目地址: https://gitcode.com/gh_mirrors/search59/SearchSearch 浏览器贡献指南来了——这个项目是一个约 3MB 的 macOS WebKit 浏览器全源码仅约 1.2 万行 Swift没有一行第三方依赖小到你真的能从头读完。对想练手开源 PR 的新手来说它是罕见的低门槛 高质量标准组合。一、为什么适合新手贡献 三个理由代码量真的读得完约 12,700 行 Swift除 Apple 自带的 Foundation 和 WebKit 外零依赖一个文件管一件事的清晰结构不需要先学什么自研框架构建零门槛只需 macOS 14 和 Xcode 16 / Swift 6 工具链一条swift build就能把浏览器跑起来标准明确可查CONTRIBUTING.md 用很短的篇幅写清了什么改动会被合并、什么不会ROADMAP.md 里列着每个想法的来源和状态你可以直接认领一件正在等待的小事。二、环境准备三步本地构建 Search1. 克隆仓库git clone https://gitcode.com/gh_mirrors/search59/Search cd Search2. 编译并直接运行swift build # 用 SwiftPM 直接运行应用构建逻辑很简单Package.swift 声明了一个可执行 target源码全在 Sources/Search/ 下最低支持 macOS 14。3. 打包成可双击的 App./build.sh # 在 build/ 下生成 ad-hoc 签名的 Search.appbuild.sh 会去掉二进制里的符号表体积能小一半以上再拼出标准的 macOS app bundle。注意自己构建的版本没有官方公证签名首次启动需要右键 → 打开属正常现象且 keychain 会按签名区分你自建的版本保存的密码和官方版互不相通。三、代码结构速览一个文件一个功能项目刻意做到打开源码就能找到你想改的东西你关心的功能对应文件入口与菜单命令App.swift标签页每个 Tab 一个 WebKit 进程Tab.swift浏览器总控Browser.swift密码钥匙串Vault.swift广告拦截WKContentRuleListShield.swift隐藏元素Curtain.swift启动恢复会话Session.swift静默自动更新Updater.swift脚本驱动测试 socketBench.swift全部颜色的明暗双份Design.swift上手建议改代码前先读两个现有文件。这里的注释解释的是为什么而不是下一行在干什么这是项目明确要求的风格。四、用命令行测试浏览器不关窗口也能验证改动Search 自带一个测试驱动在设置 › 常规 › 允许脚本驱动 Search打开开关后运行中的应用会在自己的数据目录监听 Unix socket仓库根目录的 bench 脚本就能驱动它./bench open https://example.com # 开一个测试标签 ./bench wait 2e7e7e89 # 等它加载完 ./bench text 2e7e7e89 # 读取页面文字 ./bench shot 2e7e7e89 out.png # 截图 ./bench click 2e7e7e89 button.go # 像真人一样点击 ./bench close all # 清理这些 bench 标签不会进入你的会话和历史随脚本创建、随脚本销毁。测试命令的完整语法见 skill/search-bench/SKILL.md。想完全隔离地体验全新安装可用 fresh.sh——它会在独立的测试世界里打开应用绝不碰你真实使用的浏览器数据。五、提交第一个 PR 的完整清单✅ 按顺序走一遍命中率最高先开 issue 再动手小修补除外。方向不合项目理念时先讨论能省掉一次返工改动小而聚焦一个 PR 只做一件事从头到尾能一口气读完不引入新依赖项目保持小巧是立身之本Foundation 和 WebKit 已有的能力不要加包重造新功能是默认关闭的任何改变外观或行为的特性必须——最小实现、可选且默认关、在设置里有开关构建干净swift build零新增警告同步文档在 CHANGELOG.md 的Unreleased小节加一行说明并从 ROADMAP.md 移除对应条目——更新日志就是这么自动写成的提 PR耐心等审PR 由维护者 Drice 审阅Claude Code 先过一遍 diff不是全职盯仓库的工作两周没动静时友好地 ping 一下完全没问题。这些改动通常不会被合并仅为风格重写已能正常工作的代码任何联网上报、添加统计、改变出网行为的内容换用 Chromium 或其他引擎——它刻意是 WebKit 浏览器。报 Bug 也有讲究Issue 写清四样东西做了什么、期望什么、实际发生什么、macOS 版本。有崩溃日志的话它在~/Library/Application Support/Search/crash.log只在本地、除非你贴出来。⚠️ 安全问题请私下报告流程见 SECURITY.md确认修复前不要公开细节。六、写在最后这个项目的贡献哲学很朴素Small, focused, quiet.小而聚焦、安静克制。你不需要懂整个浏览器引擎从某个颜色在暗色模式下不对Design.swift到某个快捷键在特定键盘布局失效App.swift任何一个小修复都是合格的第一个 PR。项目采用 MIT 许可LICENSE代码尽管拿去折腾——动手之前先读两个现有文件剩下的交给swift build和.github目录里那张安静的截图同款窗口。【免费下载链接】SearchA small, fast WebKit browser for macOS, by Office Commun.项目地址: https://gitcode.com/gh_mirrors/search59/Search创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表