Установка
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 | $HOME/.local/share/dispatchatlas в POSIX, %LOCALAPPDATA%\DispatchAtlas в Windows | Путь установленной рабочей копии. |
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 только тогда, когда путь резервной
копии не нужен.