安装
DispatchAtlas 需要 Python 3.12 或更高版本,并使用 uv 实现可复现的本地开发。
⚡ 一键安装
安装命令需要显式的 DISPATCHATLAS_REF,以便下载的脚本固定到稳定的源代码修订版本。
完整的 40 个字符提交 SHA 是最强的固定方式——它不可变,指向唯一确切的代码树,并且
在构造上即经过验证——因此当已安装的修订版本必须可验证时,应优先使用它。发布标签也
同样被接受,但只是作为便利性的固定方式:标签可能会移动,且安装程序不会验证标签的
签名,因此对于无人值守的安装,应使用 SHA 作为固定方式。发布工作流发出的 cosign
签名和构建来源覆盖已发布的分发工件——对于安装这些资产(而非此源代码检出)的人而言,
这是一个独立的验证面。请先下载脚本,审阅它,然后再运行它。每个代码块中最后一条带管道
的命令是一键式替代方案:它在不经审阅步骤的情况下执行该数据流,因此仅应将其用于你已经
审核过的引用。
export DISPATCHATLAS_REF="<full-40-character-commit-sha>" # a release tag also works
curl -fsSL -o install.sh "https://raw.githubusercontent.com/ahmed-g-gad/dispatchatlas/${DISPATCHATLAS_REF}/scripts/installer/install.sh"
sh install.sh # run after reviewing install.sh
curl -fsSL "https://raw.githubusercontent.com/ahmed-g-gad/dispatchatlas/${DISPATCHATLAS_REF}/scripts/installer/install.sh" | sh # one-shot alternative$env:DISPATCHATLAS_REF = "<full-40-character-commit-sha>" # a release tag also works
iwr -OutFile install.ps1 "https://raw.githubusercontent.com/ahmed-g-gad/dispatchatlas/$($env:DISPATCHATLAS_REF)/scripts/installer/install.ps1"
.\install.ps1 # run after reviewing install.ps1
irm "https://raw.githubusercontent.com/ahmed-g-gad/dispatchatlas/$($env:DISPATCHATLAS_REF)/scripts/installer/install.ps1" | iex # one-shot alternative安装程序会检查 git 与 uv 是否存在,克隆或更新检出,并运行
uv sync --all-extras --group dev。当你只想物化检出时,设置
DISPATCHATLAS_SKIP_SYNC=1。
🧱 工作区安装
uv sync --all-extras --group dev工作区会安装根命名空间以及各个聚焦的分发包:
| 分发包 | 导入命名空间 |
|---|---|
dispatchatlas | dispatchatlas |
dispatchatlas-core | dispatchatlas.core |
dispatchatlas-bench | dispatchatlas.bench |
dispatchatlas-solve | dispatchatlas.solve |
dispatchatlas-lab | dispatchatlas.lab |
dispatchatlas-analytica | dispatchatlas.analytica |
✅ 验证
uv run python -c "import dispatchatlas, dispatchatlas.core"
uv run dispatchatlas --help
uv run pytest
npm --prefix site run build
npm --prefix site run check可选的重型求解器集成保留在 extras 之后。当这些后端缺失时,基础工作区在导入上保持 轻量。
⚙️ 配置
| 变量 | 默认值 | 用途 |
|---|---|---|
DISPATCHATLAS_HOME | POSIX 上为 $HOME/.local/share/dispatchatlas,Windows 上为 %LOCALAPPDATA%\DispatchAtlas | 已安装检出的路径。 |
DISPATCHATLAS_REPO_URL | https://github.com/ahmed-g-gad/dispatchatlas.git | 安装程序使用的 Git 远程仓库。 |
DISPATCHATLAS_REF | 必填 | 要安装或更新的发布标签或完整的 40 个字符提交 SHA。 |
DISPATCHATLAS_SKIP_SYNC | 0 | 设为 1 可在检出后跳过依赖同步。 |
🔄 更新
除非传入应用标志,否则更新脚本均为只读。在检查或应用更新之前,请将
DISPATCHATLAS_REF 设为发布标签或完整的 40 个字符提交 SHA;与安装时一样,
SHA 是不可变、在构造上即经过验证的固定方式,而标签只是可移动的便利性固定方式,
更新程序不会验证其签名:
$env:DISPATCHATLAS_REF = "<release-tag>"
.\scripts\installer\update.ps1
.\scripts\installer\update.ps1 -Applyexport DISPATCHATLAS_REF="<release-tag>"
scripts/installer/update.sh
scripts/installer/update.sh --apply🗑️ 卸载
卸载脚本会在移除前确认,拒绝不安全的目标,并默认将检出移动到带时间戳的备份:
.\scripts\installer\uninstall.ps1 -Yesscripts/installer/uninstall.sh --yes仅在不需要备份路径时才使用 -Permanent 或 --permanent。