docs: codify free PyArmor Trial packaging guidance
All checks were successful
技能自动化发布 / release (push) Successful in 14s

This commit is contained in:
2026-10-13 15:55:44 +08:00
parent 1e2f94dd10
commit de127d7e71
8 changed files with 45 additions and 9 deletions

View File

@@ -213,6 +213,14 @@ release workflow 会对 `scripts/` 下的 Python 源码做加密/打包。当前
- 不要把完整 RPA 主流程、DOM 选择器、数据库、CLI、日志全部堆进一个大文件。
- 正确做法是拆分到 `scripts/cli/`、`scripts/service/`、`scripts/db/`、`scripts/util/`。
以上行数是预防性硬门槛,**不是 Trial 加密成功的充分条件**。PyArmor Trial 对具体源码模块的限制不能用一个未经验证的字节数阈值代替;即使文件低于 1000 行,实际加密仍可能因单个模块过大或过于复杂而失败。免费模式下的处理约定:
1. 以 Gitea release workflow 使用的 Trial 加密步骤和目标平台为准做实际验证;查看日志确认失败发生在哪个 `.py` 文件,不以本地行数检查通过推断加密一定成功。
2. 若日志指出某个模块加密失败(例如 Trial license / big script 一类限制),按职责把该模块拆成更小的实现模块;原文件保留为兼容门面,重导出原有公开函数、类或常量,避免改坏已有 import 路径。
3. 拆分后先跑完整测试,再升补丁版本并 release;检查 Gitea job 中所有 Python 模块均已加密、加密包成功生成/上传且 job 最终成功。失败时继续针对日志定位的模块拆分并重新验证,不放宽免费模式、不猜统一字节上限。
模板案例:得一智慧审单的 `field_locator.py` 在免费 Trial 加密阶段失败;按职责拆分为多个实现模块并保留原文件兼容门面后,同一免费 Trial 发布链路成功。这个案例用于说明应对**具体失败模块做职责拆分并复验**,不作为其他技能的固定文件字节数阈值。
`examples/` 里的 Python 示例也建议保持模块化,但**行数限制不作为 examples 的发布硬约束**;不要对 README、HTML、测试数据等文档/资源套用 PyArmor 行数规则。
**文本编码(UTF-8 without BOM)**