2.0 KiB
2.0 KiB
name, description
| name | description |
|---|---|
| package-source-sha1 | 为 massive-cloud-v3 生成可复现的纯源码 ZIP 包、内容清单和 40 位 SHA-1。用户要求打包整个项目、交付源码包、排除点云/CAD/数据库/构建产物/密钥,或计算项目 ZIP 哈希时使用。 |
打包源码并计算 SHA-1
使用 scripts/package_source.py,不要临时拼装 find、tar 或 zip 命令。
工作流
- 根据项目
AGENTS.md查看开发服务器/home/lipan/massive-cloud-v3的实时工作树和git status。 - 先运行
--dry-run检查纳入、排除数量和排除原因;发现异常大文件或新的数据格式时,先更新脚本规则。 - 运行正式打包。脚本只从
git ls-files --cached --others --exclude-standard取候选文件,因此包含已跟踪文件和未忽略的新文件,也包含尚未提交的实际代码改动。 - 将 ZIP、
.sha1和.manifest.json一起交付。明确说明包是否包含未提交改动,并报告基线提交。 - 用
unzip -t验证 ZIP;再独立运行sha1sum或shasum -a 1,确认与.sha1一致且为 40 位小写十六进制。
固定规则
- 保留源码、测试、SQL、配置模板、依赖清单/锁文件、容器配置、脚本和文档。
- 排除 Git 历史、被
.gitignore忽略的内容、真实.env、密钥、日志、缓存、依赖目录和构建产物。 - 排除点云、CAD/网格、数据库、表格结果、归档包、模型权重等非源码文件。
- 不要使用
git archive:它会遗漏工作区中尚未提交的实际代码。 - ZIP 使用固定时间戳、固定顺序和规范权限;相同文件内容应生成相同哈希。
命令
python3 scripts/package_source.py \
--source /home/lipan/massive-cloud-v3 \
--output /tmp/massive-cloud-v3-source.zip \
--dry-run
python3 scripts/package_source.py \
--source /home/lipan/massive-cloud-v3 \
--output /tmp/massive-cloud-v3-source.zip
不要把产物写进被打包的源码目录;优先使用 /tmp,再复制到交付位置。