Files
core/.trellis/tasks/10-04-slim-distribution/prd.md
T

34 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Dever 精简发行与按需工具安装
## 目标与已确认范围
用户已确认五项实施方案,并于本轮确认创建任务和继续实施。默认 Linux x86_64 基础包目标约 120 MiB,功能保持完整:编译器、LLVM、四种本机运行库(base/sqlite/postgres/both)、CLI、sandbox、skill 与模板。Python/Node/Go、原生扩展构建工具和 ARM 应用交叉编译资源改为显式命令触发、自动判断的按需安装。整台机器多用户、多项目共享同版本资源。
## 事实与约束
- 当前完整发行压缩包 714.7 MiB;同一基础文件集 gzip 为 181.6 MiB,Zstandard 长窗口(128 MiB)为 118.0 MiB,解压约 624 MiB。这是压缩试算,实际正式构建与完整安装验证仍需执行。
- 源码备份:`target/distribution-before.10dsis/source.tar.gz`;独立 skill 备份 `skills.tar.gz`;发行记录备份 `release-records.tar.gz`,均已 gzip 完整性校验。工作起点主仓库 `83b78a0`、skill `9fd78fc`,工作区干净。
- 编译器、launcher、daemon 应改为正式优化构建,清理非必要符号;保持 runtime 链接需要的符号。
- 应用配置仅 `config/setting.json`;官方源属于工具链内置元数据,不能放进项目配置或新增环境变量配置。不得依赖系统 PATH 的 Python/Node/Go/Rust 来构建用户应用。
- `run/build` 保持离线,缺资源提供准确准备命令;Dever Package 保持源码发布,底层 Rust 运行库保持预编译,FFI、自举和其他宿主平台不在本任务内。
- 当前 v0.1.0 源码 tag 已推送但二进制 Release 未发布;不得覆盖已有 tag。用户已授权相关仓库 commit/push。公开发布需完整验收和可用 GitHub API 授权,不能把本地包或 tag 当作已发布。
- 不改宿主 AppArmor/sysctl/全局服务,不替换机器全局命令;验收使用隔离安装镜像和自有进程。磁盘有限,复用现有工具输入并避免重复 Cargo target。
## 需求
1. 正式基础发行包采用 Zstandard,安装器和更新器具备所需解压能力,用户无需手动安装 zstd。完整性校验、边界限制、拒绝路径逃逸与原子发布继续成立。
2. 扩展按 Dever 版本、目标平台和内容身份绑定;按需签名下载、原子安装、并发安全、缓存复用,扩展失败不破坏已有可用版本。
3. `dever lib add/update` 自动准备声明所需生态环境,只有确有必要才准备原生构建工具;`dever lib install <project-root>` 按现有锁文件恢复,不更新版本、不改 setting/lock。
4. `dever target add linux-aarch64` 为当前选定版本准备 ARM 交叉编译资源;使用第三方 Lib 的 ARM 项目仍显式准备目标依赖。既有 ARM 能力与离线构建保持。
5. `dever update` 同步核心、skill 和已安装扩展;新增版本准备失败时旧 active 版本可继续使用,不能隐式安装所有可选扩展。
6. 同步 SDK 发行工具、安装脚本、CLI 帮助、开发 skill 和文档,命令行为只有一套实现,不新增兼容别名或重复路径。
## 验收
- 实际正式构建,报告压缩包大小与安装占用;约 120 MiB 为基于已有内容的目标,超出时必须报告准确实测和原因。
- 基础安装不包含 Python/Node/Go、原生扩展构建工具或 ARM 专用资源;普通与 Markdown 项目 new/check/test/run/build 通过隔离的定向验收。
- 需要什么下载什么;已有资源复用;锁文件恢复前后字节不变;无锁、锁与声明不符、资源损坏与下载失败均明确失败。
- 全新机器式隔离环境验证首次安装、扩展安装、多项目共享、已装扩展随更新和失败恢复;资源准备后断网构建,最终程序脱离工具链可执行。
- 定向恶意/损坏元数据和压缩边界回归通过;ARM 至少验证交叉构建及既有适用的隔离证据,不能把构建成功当作物理 ARM 性能测试。
- 公开上传和线上更新单独记录为完成或具体阻塞,不混同本地验收;不运行无关全量测试/长测。