Aller au contenu
DispatchAtlas
Rechercher

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 alternative

L'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 dev

L'espace de travail installe l'espace de noms racine ainsi que les distributions ciblées :

DistributionEspace de noms d'importation
dispatchatlasdispatchatlas
dispatchatlas-coredispatchatlas.core
dispatchatlas-benchdispatchatlas.bench
dispatchatlas-solvedispatchatlas.solve
dispatchatlas-labdispatchatlas.lab
dispatchatlas-analyticadispatchatlas.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 check

Les 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

VariableValeur par défautRôle
DISPATCHATLAS_HOME$HOME/.local/share/dispatchatlas sous POSIX, %LOCALAPPDATA%\DispatchAtlas sous WindowsChemin de la copie de travail installée.
DISPATCHATLAS_REPO_URLhttps://github.com/ahmed-g-gad/dispatchatlas.gitDépôt distant Git utilisé par l'installateur.
DISPATCHATLAS_REFrequisÉtiquette de version ou SHA de commit complet de 40 caractères à installer ou mettre à jour.
DISPATCHATLAS_SKIP_SYNC0Dé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 -Apply
export 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 -Yes
scripts/installer/uninstall.sh --yes

N'utilisez -Permanent ou --permanent que lorsque le chemin de sauvegarde n'est pas nécessaire.