PROJECT_REPORT.md:论文式项目报告(摘要 / 目录 / 7 章 / 参考文献 / 致谢 / 附录 A),
4 张 Mermaid 图同样经真实浏览器渲染验证。所有数字都与证据文件逐个核对过。
.scratch/ci-cd/:本次流水线的全部证据与可重跑脚本
* 阶段报告:依赖安全扫描 / 许可证合规 / 阶段 0 静态分析 / 阶段 3 测试与性能
* 证据:分析器原始输出(修复前 84 条、修复后 80 条)、Pester 详细输出、
性能基线 JSON、黑盒用例结果(阶段 1 的 11 例与阶段 2 回归的 12 例)
* 可重跑:blackbox-tests.ps1 / blackbox-regression.ps1 / perf-baseline.ps1
两条边界必须写在明处,不能含糊:
* **VM 内验证只取到修复前的快照**(Pester 183 项全绿)。随后会话审批策略改为 never,
gsudo 提权被自动拒绝(退出码 999),而 Hyper-V 与 PowerShell Direct 都需要管理员,
于是修复后的三套件在 VM 内**没有跑成**。报告里明确标注了范围,没有把"宿主跑绿了"
说成"VM 也跑绿了"。
* **性能基线是首次建立**,无历史可比,故无退化可判;指标只在同机同宿主下对比,
跨机比数字没有意义。
另外记一笔:静态分析的口径是"仓库自己的门禁"。剩余 80 条全是风格类(0 Error),且逐条
有依据 —— 行长 160 是配置里写明的有意偏离,PSPlaceCloseBrace 等集中在测试夹具字符串内
(改了会改变断言语义)。严格模式的"零容忍"在这里与仓库自身约定相抵,选择尊重仓库约定
并在报告里登记,而不是制造一个横跨 12 个文件的纯排版大 diff。
3.9 KiB
3.9 KiB
许可证合规检查报告(license-compliance-checker)
Warning
免责声明:本报告由自动化工具基于仓库内的文件生成,仅为工程参考,不构成法律建议。 涉及对外分发、商业使用或二次许可时,请咨询法务。
- 项目:BakNRet
- 检查时间:2026-09-28
- 主许可证:未声明 —— 仓库根目录不存在
LICENSE/LICENSE.md/LICENSE.txt
1. 依赖与组件许可证清单
license-checker / pip-licenses / go-licenses 等工具不适用(本项目无包管理器依赖)。
下列清单通过读取 .tools/modules 下的模块清单与许可证文件、以及七项外部组件的官方许可条款得出。
| 组件 | 版本 | 许可证 | 来源依据 | 与主许可证关系 |
|---|---|---|---|---|
| BakNRet(本项目) | 1.0.0(模块清单) | 未声明 | 无 LICENSE 文件 |
— |
| Pester | 5.9.1 | Apache-2.0 | Pester.psd1 的 Copyright + LicenseUri |
测试期工具,未声明主许可证时无冲突可判 |
| PSScriptAnalyzer | 1.25.0 | MIT | .tools/modules/PSScriptAnalyzer/1.25.0/LICENSE |
同上 |
| Newtonsoft.Json(PSScriptAnalyzer 内置依赖) | 随包 | MIT | 同目录 ThirdPartyNotices.txt |
同上 |
| 7-Zip | 26.03 | LGPL-2.1-or-later + BSD-3-Clause + unRAR 限制 | 上游许可(用户自备,不随本仓库分发) | 未分发,仅本地调用 |
| PowerShell | 5.1 / 7.7 | MIT(宿主环境) | — | 未分发 |
| .NET 运行时 | — | MIT(宿主环境) | — | 未分发 |
2. 许可证分布
MIT ████████████████████ 3 项(PSScriptAnalyzer、Newtonsoft.Json、PowerShell/.NET)
Apache-2.0 ███████ 1 项(Pester)
LGPL + BSD + unRAR ███████ 1 项(7-Zip)
未声明 ███████ 1 项(本项目自身) <-- 需要处理
全部第三方许可证均为宽松型(MIT / Apache-2.0 / BSD),无 copyleft 传染风险。
3. 冲突与注意事项
| ID | 级别 | 对象 | 说明 | 建议 |
|---|---|---|---|---|
| L-1 | ❌ 需处理 | 本项目自身 | 没有 LICENSE 文件 = 默认「保留所有权利」。他人无权复制、修改、分发;GitHub 上也会显示为无许可证项目 |
明确选一个:想宽松就 MIT,想带专利授权就 Apache-2.0 |
| L-2 | ⚠️ 需注意 | 7-Zip 的 unRAR 限制 | 7-Zip 许可证禁止用其 unRAR 代码还原 RAR 压缩算法。本项目只用 7z 解压 / 压缩,不实现 RAR 压缩 | 无需动作;当前用法不触发该限制 |
| L-3 | ⚠️ 需注意 | Pester 5.9.1 的版权年份 | 模块清单里 Copyright 写的是 (c) 2026 by Pester Team(上游清单原文) |
无需动作;仅记录,勿在文档中改写上游声明 |
| L-4 | ✅ 兼容 | PSScriptAnalyzer(MIT)+ Newtonsoft.Json(MIT) | MIT 与 MIT/Apache 混合无冲突 | 仅在本仓库内作为测试工具使用,未再分发 |
4. 合规建议
- 先补主许可证(L-1)。这是本仓库唯一的合规缺口,且成本最低。
.tools/下的模块不要提交进版本库(已 gitignore)——它们是第三方代码, 提交会牵出「再分发」与版权声明保留义务。- 若将来把 BakNRet 公开发布,请在 README / 发布产物里保留 7-Zip 的许可与免责声明引用; 当前仓库并未捆绑 7-Zip 二进制,所以现在无需附带其许可证全文。
- 若决定以 MIT 发布,注意 MIT 要求保留版权与许可声明:README「致谢」一节已引用上游项目,
可再补一份
THIRD-PARTY-NOTICES.md收纳 Pester / PSScriptAnalyzer 的声明(可选)。
免责声明(重申):以上判断基于文件名、模块清单字段与上游公开条款的自动比对, 存在识别错误的可能;不构成法律建议。