chore(游戏共创): 删掉打包器的 dead_code 豁免,并只保留真正被用到的范围分支
上传链路已在 `5dd9d1c5d` 接好,`#![allow(dead_code)]` 的豁免期结束: - 删掉模块级 `#![allow(dead_code)]`,注释改成写明调用方(发布链路的 `upload_project_bundle_for_version`,取件侧摘要校验共用 `sha256_hex`)。 - 移除豁免后只剩一条 dead code:`ProjectBundleScope::GameDirectory` 从未被生产代码构造 (发布链路一律上传整个项目——收到方要能直接打开并重新构建,只带 `game/` 会丢掉根 `assets/`)。 该变体承载的是独立能力(不同的遍历根 + 剪枝 + 「没有 game/ 目录」失败关闭),且已被两条用例 覆盖,因此按仓库做法标 `#[cfg(test)]`(连带的 match 分支同步 cfg),并在注释里写清「真有生产 调用方时去掉 cfg」;没有连带删除其它代码——模块里其余函数与常量都已被生产路径引用。
This commit is contained in:
@@ -40,10 +40,8 @@
|
||||
//! 单文件 ≤ 64 MiB、条目 ≤ 10 000、单文件 ≤ 包体 × 100。超限**失败关闭**并点名违规条目,
|
||||
//! 不静默截断——客户端先拦,就不会出现「传到一半被服务端 422 拒掉」。
|
||||
//!
|
||||
//! **本轮不接上传**:上行路由族落地后由发布链路在「授权非禁止」时调用本模块。在接线之前非 test
|
||||
//! 构建没有调用方,因此整模块带 `#![allow(dead_code)]`;接线时删除该属性。
|
||||
#![allow(dead_code)]
|
||||
|
||||
//! 调用方:发布链路的 `game_distribution_publish::upload_project_bundle_for_version`(授权非
|
||||
//! 「禁止共创」且作者未取消时,随版本上传工程源包);取件侧的摘要校验与它共用 `sha256_hex`。
|
||||
use super::*;
|
||||
use std::io::Write;
|
||||
|
||||
@@ -85,9 +83,15 @@ const PROJECT_BUNDLE_FILE_MODE: u32 = 0o644;
|
||||
/// 打包范围:只决定**收集哪些内容**,不改变条目命名(条目始终相对项目根)。
|
||||
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
|
||||
pub(crate) enum ProjectBundleScope {
|
||||
/// 整个项目(源码 + 配置 + 素材);M2b 上传用这一档。
|
||||
/// 整个项目(源码 + 配置 + 素材);发布链路的工程源包上传用这一档。
|
||||
WholeProject,
|
||||
/// 只收集 `game/` 下的内容(`game/index.html` 这类源码入口及其同级文件)。
|
||||
///
|
||||
/// **目前只有测试在用**:发布链路一律上传整个项目——收到方要能直接打开并重新构建,
|
||||
/// 只带 `game/` 会丢掉根 `assets/`。保留这一档是因为「打包范围」仍是打包器的对外入参,
|
||||
/// 且这一档的剪枝与「没有 game/ 目录」失败关闭已被两条用例覆盖;真有生产调用方时去掉
|
||||
/// `#[cfg(test)]`。
|
||||
#[cfg(test)]
|
||||
GameDirectory,
|
||||
}
|
||||
|
||||
@@ -154,6 +158,8 @@ pub(crate) fn build_project_bundle_with_limits(
|
||||
}
|
||||
let walk_root = match scope {
|
||||
ProjectBundleScope::WholeProject => root.to_path_buf(),
|
||||
// 见 `ProjectBundleScope::GameDirectory` 的注释:这一档目前只有测试覆盖。
|
||||
#[cfg(test)]
|
||||
ProjectBundleScope::GameDirectory => {
|
||||
let game_root = root.join("game");
|
||||
if !game_root.is_dir() {
|
||||
|
||||
Reference in New Issue
Block a user