ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

如何参与番茄小说下载器开发:构建模式、测试与 maintain 脚本完整指南

如何参与番茄小说下载器开发:构建模式、测试与 maintain 脚本完整指南 如何参与番茄小说下载器开发构建模式、测试与 maintain 脚本完整指南【免费下载链接】Tomato-Novel-Downloader番茄小说下载器不精简版项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader本文是面向新手的番茄小说下载器Tomato-Novel-Downloader开发贡献指南。项目已用 Rust 完整重写提供 EPUB 下载、断点续传、Web UI、TTS 有声小说等功能支持官方 API 与 No-Official-API 两种互斥构建模式。下面带你从克隆仓库、本地构建到运行 maintain 测试脚本、提交前检查一步步完成你的第一次开发贡献。获取代码并了解项目结构在项目页面点击克隆按钮在终端执行git clone https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader建议先通读根目录的 README 与维护文档 MAINTAINING.mdMAINTAINING.md再进入src/了解核心模块划分目录职责src/base_system/配置、日志、书籍路径、断点续传等基础设施src/download/下载计划、分段池、进度与第三方接口src/book_parser/EPUB/PDF 生成、TTS 有声书、段评处理src/network_parser/网页解析No-Official-API 模式的目录来源src/ui/TUI、无界面 CLI 与 Web UI 三种入口维护文档还记录了已知的依赖体积问题如 PDF 依赖链、TTS 依赖较重贡献前建议先读一遍避免重复踩坑。理解两种互斥的构建模式番茄小说下载器的核心机制是Cargo.toml中两个互斥featureofficial-api与no-official-api两者不能同时启用也禁止使用--all-features。默认模式official-apicargo build --release启用搜索、段评等功能正文可在官方/第三方之间切换依赖路径依赖tomato-novel-official-api指向仓库外的同级目录Cargo.toml第 63 行若你本地没有该依赖仓库请改用下面的模式无官方 API 模式no-official-api仓库根目录提供了Cargo_no_official.toml完全不引用官方 API crate# Linux/macOS cp Cargo_no_official.toml Cargo.toml cargo build --release # Windows copy /Y Cargo_no_official.toml Cargo.toml cargo build --release此模式下目录走网页解析src/network_parser/正文强制使用第三方地址池搜索与段评不可用。修改共享代码时务必保证两种模式都能编译通过。一键本地验证maintain 脚本这是贡献者最重要的工具。两个脚本封装了正确的 feature 组合避免误用--all-featuresLinux/macOSscripts/maintain.shWindowsscripts/maintain.ps1bash ./scripts/maintain.shpowershell -ExecutionPolicy Bypass -File .\scripts\maintain.ps1脚本会依次执行 6 项检查格式检查cargo fmt --all -- --check默认 feature 测试cargo test默认 feature 静态检查cargo clippy --all-targets -- -D warnings无官方 API 模式测试cargo test --no-default-features --features no-official-api无官方 API 模式 clippy重复依赖检查cargo tree -d只想快速验证默认路径时可加跳过参数--skip-no-official --skip-tree或-SkipNoOfficial -SkipTree。脚本支持--help查看用法其头部注释也明确写明了互斥 feature 的设计约定。CI 质量门禁你的 PR 会被自动检查质量工作流定义在.github/workflows/quality.yml当 PR 触碰src/、Cargo.toml、Cargo.lock、scripts/等路径并指向main/dev分支时自动触发跑两套 jobDefault featurescheckout 主仓库 官方 API 依赖仓库、建立路径链接执行 fmt、test、clippyno-official-api仅官方 API 无关环境执行对应 feature 的 test 与 clippy因此本地跑通 maintain 脚本基本等价于 CI 通过。发布构建则由.github/workflows/build-rust.yml覆盖 linux-amd64/musl/arm64、Android、Windows、macOS 等平台其中 musl 与 Android 目标使用--no-default-features --features official-api,tts-native,clipboard关闭较重的tts依赖。涉及 feature 变更时请同步确认发布工作流的目标平台仍被覆盖。在哪里添加测试项目的单元测试直接内嵌在各源码文件底部例如src/base_system/book_id.rs、src/download/downloader.rs、src/book_parser/segment_utils.rs等均已有#[cfg(test)]测试模块。贡献时遵循业务行为变更优先补充对应模块的单元测试依赖变更运行cargo tree -d检查是否引入重复或过重的包feature 变更同步更新 MAINTAINING.md、Cargo.toml的 feature 注释与 CIUI 相关改动Web UI 与 TUI 都是用户入口建议同时验证两边行为提交前检查清单bash ./scripts/maintain.sh或 PowerShell 版全部通过两种 feature 模式均编译、测试通过单元测试已补充依赖树无异常重复feature 或发布配置变更已同步文档与 CI提交信息清晰说明动机与影响范围遵循以上流程你的第一份番茄小说下载器贡献就能顺利跑通本地验证与 CI 检查快速合入项目。【免费下载链接】Tomato-Novel-Downloader番茄小说下载器不精简版项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表