:構(gòu)建模式、測試與 maintain 腳本完整指南)
如何參與番茄小說下載器開發(fā)構(gòu)建模式、測試與 maintain 腳本完整指南【免費下載鏈接】Tomato-Novel-Downloader番茄小說下載器不精簡版項目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader本文是面向新手的番茄小說下載器Tomato-Novel-Downloader開發(fā)貢獻指南。項目已用 Rust 完整重寫提供 EPUB 下載、斷點續(xù)傳、Web UI、TTS 有聲小說等功能支持官方 API 與 No-Official-API 兩種互斥構(gòu)建模式。下面帶你從克隆倉庫、本地構(gòu)建到運行 maintain 測試腳本、提交前檢查一步步完成你的第一次開發(fā)貢獻。獲取代碼并了解項目結(jié)構(gòu)在項目頁面點擊克隆按鈕在終端執(zhí)行g(shù)it clone https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader建議先通讀根目錄的 README 與維護文檔 MAINTAINING.mdMAINTAINING.md再進入src/了解核心模塊劃分目錄職責src/base_system/配置、日志、書籍路徑、斷點續(xù)傳等基礎(chǔ)設(shè)施src/download/下載計劃、分段池、進度與第三方接口src/book_parser/EPUB/PDF 生成、TTS 有聲書、段評處理src/network_parser/網(wǎng)頁解析No-Official-API 模式的目錄來源src/ui/TUI、無界面 CLI 與 Web UI 三種入口維護文檔還記錄了已知的依賴體積問題如 PDF 依賴鏈、TTS 依賴較重貢獻前建議先讀一遍避免重復(fù)踩坑。理解兩種互斥的構(gòu)建模式番茄小說下載器的核心機制是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此模式下目錄走網(wǎng)頁解析src/network_parser/正文強制使用第三方地址池搜索與段評不可用。修改共享代碼時務(wù)必保證兩種模式都能編譯通過。一鍵本地驗證maintain 腳本這是貢獻者最重要的工具。兩個腳本封裝了正確的 feature 組合避免誤用--all-featuresLinux/macOSscripts/maintain.shWindowsscripts/maintain.ps1bash ./scripts/maintain.shpowershell -ExecutionPolicy Bypass -File .\scripts\maintain.ps1腳本會依次執(zhí)行 6 項檢查格式檢查cargo fmt --all -- --check默認 feature 測試cargo test默認 feature 靜態(tài)檢查cargo clippy --all-targets -- -D warnings無官方 API 模式測試cargo test --no-default-features --features no-official-api無官方 API 模式 clippy重復(fù)依賴檢查cargo tree -d只想快速驗證默認路徑時可加跳過參數(shù)--skip-no-official --skip-tree或-SkipNoOfficial -SkipTree。腳本支持--help查看用法其頭部注釋也明確寫明了互斥 feature 的設(shè)計約定。CI 質(zhì)量門禁你的 PR 會被自動檢查質(zhì)量工作流定義在.github/workflows/quality.yml當 PR 觸碰src/、Cargo.toml、Cargo.lock、scripts/等路徑并指向main/dev分支時自動觸發(fā)跑兩套 jobDefault featurescheckout 主倉庫 官方 API 依賴倉庫、建立路徑鏈接執(zhí)行 fmt、test、clippyno-official-api僅官方 API 無關(guān)環(huán)境執(zhí)行對應(yīng) feature 的 test 與 clippy因此本地跑通 maintain 腳本基本等價于 CI 通過。發(fā)布構(gòu)建則由.github/workflows/build-rust.yml覆蓋 linux-amd64/musl/arm64、Android、Windows、macOS 等平臺其中 musl 與 Android 目標使用--no-default-features --features official-api,tts-native,clipboard關(guān)閉較重的tts依賴。涉及 feature 變更時請同步確認發(fā)布工作流的目標平臺仍被覆蓋。在哪里添加測試項目的單元測試直接內(nèi)嵌在各源碼文件底部例如src/base_system/book_id.rs、src/download/downloader.rs、src/book_parser/segment_utils.rs等均已有#[cfg(test)]測試模塊。貢獻時遵循業(yè)務(wù)行為變更優(yōu)先補充對應(yīng)模塊的單元測試依賴變更運行cargo tree -d檢查是否引入重復(fù)或過重的包feature 變更同步更新 MAINTAINING.md、Cargo.toml的 feature 注釋與 CIUI 相關(guān)改動Web UI 與 TUI 都是用戶入口建議同時驗證兩邊行為提交前檢查清單bash ./scripts/maintain.sh或 PowerShell 版全部通過兩種 feature 模式均編譯、測試通過單元測試已補充依賴樹無異常重復(fù)feature 或發(fā)布配置變更已同步文檔與 CI提交信息清晰說明動機與影響范圍遵循以上流程你的第一份番茄小說下載器貢獻就能順利跑通本地驗證與 CI 檢查快速合入項目。【免費下載鏈接】Tomato-Novel-Downloader番茄小說下載器不精簡版項目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考