跳到内容
DispatchAtlas
搜索

安装

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

安装程序会检查 gituv 是否存在,克隆或更新检出,并运行 uv sync --all-extras --group dev。当你只想物化检出时,设置 DISPATCHATLAS_SKIP_SYNC=1

🧱 工作区安装

uv sync --all-extras --group dev

工作区会安装根命名空间以及各个聚焦的分发包:

分发包导入命名空间
dispatchatlasdispatchatlas
dispatchatlas-coredispatchatlas.core
dispatchatlas-benchdispatchatlas.bench
dispatchatlas-solvedispatchatlas.solve
dispatchatlas-labdispatchatlas.lab
dispatchatlas-analyticadispatchatlas.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_HOMEPOSIX 上为 $HOME/.local/share/dispatchatlas,Windows 上为 %LOCALAPPDATA%\DispatchAtlas已安装检出的路径。
DISPATCHATLAS_REPO_URLhttps://github.com/ahmed-g-gad/dispatchatlas.git安装程序使用的 Git 远程仓库。
DISPATCHATLAS_REF必填要安装或更新的发布标签或完整的 40 个字符提交 SHA。
DISPATCHATLAS_SKIP_SYNC0设为 1 可在检出后跳过依赖同步。

🔄 更新

除非传入应用标志,否则更新脚本均为只读。在检查或应用更新之前,请将 DISPATCHATLAS_REF 设为发布标签或完整的 40 个字符提交 SHA;与安装时一样, SHA 是不可变、在构造上即经过验证的固定方式,而标签只是可移动的便利性固定方式, 更新程序不会验证其签名:

$env:DISPATCHATLAS_REF = "<release-tag>"
.\scripts\installer\update.ps1
.\scripts\installer\update.ps1 -Apply
export DISPATCHATLAS_REF="<release-tag>"
scripts/installer/update.sh
scripts/installer/update.sh --apply

🗑️ 卸载

卸载脚本会在移除前确认,拒绝不安全的目标,并默认将检出移动到带时间戳的备份:

.\scripts\installer\uninstall.ps1 -Yes
scripts/installer/uninstall.sh --yes

仅在不需要备份路径时才使用 -Permanent--permanent