Instalación
DispatchAtlas requiere Python 3.12 o más reciente y utiliza uv para un
desarrollo local reproducible.
⚡ Instalación en un solo comando
Los comandos del instalador requieren un DISPATCHATLAS_REF explícito para que
el script descargado quede fijado a una revisión de fuente estable. Un SHA de
commit completo de 40 caracteres es el anclaje más fuerte —es inmutable,
nombra un único árbol exacto y se verifica por construcción—, así que
prefiérelo siempre que la revisión instalada deba ser verificable. También se
acepta una etiqueta de versión, pero como anclaje de conveniencia: una
etiqueta puede moverse y el instalador no verifica la firma de una etiqueta,
así que el SHA es el anclaje que conviene usar para una instalación
desatendida. Las firmas cosign y la procedencia de compilación que emite el
flujo de trabajo de publicación cubren los artefactos de distribución
publicados —una superficie de verificación aparte para quienes instalen esos
activos en lugar de este checkout desde la fuente. Descarga el script,
revísalo y luego ejecútalo. El comando final con tubería de cada bloque es la
alternativa en un solo paso: ejecuta el flujo sin el paso de revisión, así que
resérvalo para una referencia que ya hayas verificado.
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 alternativeEl instalador comprueba que git y uv estén presentes, clona o actualiza el
checkout y ejecuta uv sync --all-extras --group dev. Define
DISPATCHATLAS_SKIP_SYNC=1 cuando solo quieras materializar el checkout.
🧱 Instalación del espacio de trabajo
uv sync --all-extras --group devEl espacio de trabajo instala el espacio de nombres raíz más las distribuciones específicas:
| Distribución | Espacio de nombres de importación |
|---|---|
dispatchatlas | dispatchatlas |
dispatchatlas-core | dispatchatlas.core |
dispatchatlas-bench | dispatchatlas.bench |
dispatchatlas-solve | dispatchatlas.solve |
dispatchatlas-lab | dispatchatlas.lab |
dispatchatlas-analytica | dispatchatlas.analytica |
✅ Verificación
uv run python -c "import dispatchatlas, dispatchatlas.core"
uv run dispatchatlas --help
uv run pytest
npm --prefix site run build
npm --prefix site run checkLas integraciones de solvers pesados opcionales permanecen detrás de extras. El espacio de trabajo base se mantiene ligero en importaciones cuando esos backends están ausentes.
⚙️ Configuración
| Variable | Valor por defecto | Propósito |
|---|---|---|
DISPATCHATLAS_HOME | $HOME/.local/share/dispatchatlas en POSIX, %LOCALAPPDATA%\DispatchAtlas en Windows | Ruta del checkout instalado. |
DISPATCHATLAS_REPO_URL | https://github.com/ahmed-g-gad/dispatchatlas.git | Remoto de Git que usa el instalador. |
DISPATCHATLAS_REF | requerido | Etiqueta de versión o SHA de commit completo de 40 caracteres a instalar o actualizar. |
DISPATCHATLAS_SKIP_SYNC | 0 | Define 1 para omitir la sincronización de dependencias tras el checkout. |
🔄 Actualización
Los scripts de actualización son de solo lectura salvo que pases el indicador de
aplicación. Define DISPATCHATLAS_REF con una etiqueta de versión o un SHA de
commit completo de 40 caracteres antes de comprobar o aplicar una actualización;
como en la instalación, un SHA es el anclaje inmutable y verificado por
construcción, mientras que una etiqueta es un anclaje de conveniencia móvil
que el actualizador no verifica por firma:
$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🗑️ Desinstalación
Los scripts de desinstalación piden confirmación antes de eliminar, rechazan objetivos inseguros y mueven el checkout a una copia de seguridad con marca de tiempo por defecto:
.\scripts\installer\uninstall.ps1 -Yesscripts/installer/uninstall.sh --yesUsa -Permanent o --permanent solo cuando no necesites la ruta de copia de
seguridad.