Superset Project Setup 的目标是让该仓库的每个新工作区(隔离的 git worktree)无需手动操作即可就绪:依赖已安装、环境变量存在、服务可访问。
用途 用于为一个已有仓库编写 Superset 生命周期配置,使工作区创建、删除和运行时自动执行相应脚本。
主要能力
- 检查仓库:确认新 worktree 需要什么,包括包管理器与安装命令(由锁文件决定:bun、pnpm、yarn、npm,以及 cargo、uv 等)、.env 文件处理(.env 通常被 gitignore,需要从主检出复制或由 .env.example 生成)、服务(docker-compose、数据库)与开发命令及端口、monorepo 布局(setup 是否需要 cwd)。
- 编写 .superset/config.json:该文件用于接入生命周期脚本;仅有 setup.sh 而没有 config.json 不会被识别。Schema 示例:{\n "setup": ["./.superset/setup.sh"],\n "teardown": ["./.superset/teardown.sh"],\n "run": ["bun dev"],\n "cwd": "optional/subdir"\n}。每个键是一个 shell 命令数组,分别在创建工作区、删除工作区和运行时于 worktree 内执行。
- 配置准则:setup 必须幂等且快速(目标一分钟内,过慢会让每次创建工作区变得痛苦);在 setup 时从主检出复制 secrets 与环境变量,绝不提交它们;.superset/config.local.json(被 gitignore)允许个人用户用 before/after 数组扩展脚本而不改动共享配置。
- 写文件前向用户展示建议文件并获得明确批准。
使用方式 先检查仓库并澄清不确定项,然后生成 .superset/config.json 与相关脚本,获得批准后写入。
验证 用 superset workspaces create --local --project <id> --name "setup-test" 创建一个临时工作区,观察 “Workspace Setup” 终端输出,修复并重复直到干净完成,然后删除测试工作区。只有真实工作区成功启动才算 setup 完成。
适用场景 需要为使用 Superset 的仓库统一工作区启动流程、减少手动配置、在 monorepo 或多服务工作流中自动准备环境的场景。
限制 资料未说明支持的 Superset 版本、平台范围、权限要求或错误处理细节;setup 脚本需自行保证幂等与速度;敏感信息不得提交到仓库。