Installation
DispatchAtlas nécessite Python 3.12 ou une version plus récente et utilise uv
pour un développement local reproductible.
⚡ Installation en une commande
Les commandes d'installation exigent un DISPATCHATLAS_REF explicite afin que le
script téléchargé soit figé sur une révision de source stable. Un SHA de commit
complet de 40 caractères est l'ancrage le plus fort — il est immuable, désigne un
unique arbre exact et est vérifié par construction — préférez-le donc chaque fois
que la révision installée doit être vérifiable. Une étiquette de version est
également acceptée, mais comme ancrage de commodité : une étiquette peut se
déplacer, et l'installateur ne vérifie pas la signature d'une étiquette, de sorte
qu'un SHA est l'ancrage à utiliser pour une installation sans surveillance. Les
signatures cosign et la provenance de build émises par le processus de
publication couvrent les artefacts de distribution publiés — une surface de
vérification distincte pour quiconque installe ces artefacts plutôt que cette
copie de travail issue des sources. Téléchargez le script, examinez-le, puis
exécutez-le. La dernière commande avec tube de chaque bloc est l'alternative en
une étape : elle exécute le flux sans l'étape d'examen, alors réservez-la à une
référence que vous avez déjà vérifiée.
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 alternativeL'installateur vérifie la présence de git et uv, clone ou met à jour la copie
de travail, puis exécute uv sync --all-extras --group dev. Définissez
DISPATCHATLAS_SKIP_SYNC=1 lorsque vous souhaitez seulement matérialiser la copie
de travail.
🧱 Installation de l'espace de travail
uv sync --all-extras --group devL'espace de travail installe l'espace de noms racine ainsi que les distributions ciblées :
| Distribution | Espace de noms d'importation |
|---|---|
dispatchatlas | dispatchatlas |
dispatchatlas-core | dispatchatlas.core |
dispatchatlas-bench | dispatchatlas.bench |
dispatchatlas-solve | dispatchatlas.solve |
dispatchatlas-lab | dispatchatlas.lab |
dispatchatlas-analytica | dispatchatlas.analytica |
✅ Vérification
uv run python -c "import dispatchatlas, dispatchatlas.core"
uv run dispatchatlas --help
uv run pytest
npm --prefix site run build
npm --prefix site run checkLes intégrations de solveurs lourds optionnelles restent derrière des extras. L'espace de travail de base demeure léger à l'importation lorsque ces moteurs sont absents.
⚙️ Configuration
| Variable | Valeur par défaut | Rôle |
|---|---|---|
DISPATCHATLAS_HOME | $HOME/.local/share/dispatchatlas sous POSIX, %LOCALAPPDATA%\DispatchAtlas sous Windows | Chemin de la copie de travail installée. |
DISPATCHATLAS_REPO_URL | https://github.com/ahmed-g-gad/dispatchatlas.git | Dépôt distant Git utilisé par l'installateur. |
DISPATCHATLAS_REF | requis | Étiquette de version ou SHA de commit complet de 40 caractères à installer ou mettre à jour. |
DISPATCHATLAS_SKIP_SYNC | 0 | Définir 1 pour ignorer la synchronisation des dépendances après la copie. |
🔄 Mise à jour
Les scripts de mise à jour sont en lecture seule sauf si vous passez l'indicateur
d'application. Définissez DISPATCHATLAS_REF avec une étiquette de version ou un
SHA de commit complet de 40 caractères avant de vérifier ou d'appliquer une mise
à jour ; comme à l'installation, un SHA est l'ancrage immuable et vérifié par
construction, tandis qu'une étiquette est un ancrage de commodité qui peut se
déplacer et que les scripts de mise à jour ne vérifient pas par signature :
$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🗑️ Désinstallation
Les scripts de désinstallation demandent confirmation avant la suppression, refusent les cibles dangereuses et déplacent la copie de travail vers une sauvegarde horodatée par défaut :
.\scripts\installer\uninstall.ps1 -Yesscripts/installer/uninstall.sh --yesN'utilisez -Permanent ou --permanent que lorsque le chemin de sauvegarde
n'est pas nécessaire.