Installation
DispatchAtlas setzt Python 3.12 oder neuer voraus und verwendet uv für eine
reproduzierbare lokale Entwicklung.
⚡ Installation mit einem Befehl
Die Installationsbefehle erfordern ein explizites DISPATCHATLAS_REF, damit das
heruntergeladene Skript an eine stabile Quellrevision gebunden ist. Ein
vollständiger 40-stelliger Commit-SHA ist die stärkste Bindung – er ist
unveränderlich, benennt genau einen Baum und ist konstruktionsbedingt
verifiziert –, daher bevorzuge ihn, wann immer die installierte Revision
überprüfbar sein muss. Ein Versions-Tag wird ebenfalls akzeptiert, jedoch als
Komfort-Bindung: Ein Tag kann sich verschieben, und der Installer verifiziert
die Signatur eines Tags nicht, sodass für eine unbeaufsichtigte Installation
der SHA die zu verwendende Bindung ist. Die vom Release-Workflow ausgegebenen
cosign-Signaturen und die Build-Provenienz decken die veröffentlichten
Distributionsartefakte ab – eine separate Verifizierungsfläche für alle, die
diese Artefakte installieren statt dieses Quell-Checkouts. Lade das Skript
herunter, prüfe es und führe es dann aus. Der letzte mit Pipe verbundene Befehl
in jedem Block ist die Ein-Schritt-Alternative: Er führt den Stream ohne den
Prüfschritt aus, also reserviere ihn für eine Referenz, die du bereits geprüft
hast.
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 alternativeDer Installer prüft, ob git und uv vorhanden sind, klont oder aktualisiert
das Checkout und führt uv sync --all-extras --group dev aus. Setze
DISPATCHATLAS_SKIP_SYNC=1, wenn du nur das Checkout materialisieren möchtest.
🧱 Workspace-Installation
uv sync --all-extras --group devDer Workspace installiert den Wurzel-Namensraum sowie die fokussierten Distributionen:
| Distribution | Import-Namensraum |
|---|---|
dispatchatlas | dispatchatlas |
dispatchatlas-core | dispatchatlas.core |
dispatchatlas-bench | dispatchatlas.bench |
dispatchatlas-solve | dispatchatlas.solve |
dispatchatlas-lab | dispatchatlas.lab |
dispatchatlas-analytica | dispatchatlas.analytica |
✅ Verifizierung
uv run python -c "import dispatchatlas, dispatchatlas.core"
uv run dispatchatlas --help
uv run pytest
npm --prefix site run build
npm --prefix site run checkOptionale, schwergewichtige Solver-Integrationen bleiben hinter Extras. Der Basis-Workspace bleibt importleicht, wenn diese Backends fehlen.
⚙️ Konfiguration
| Variable | Standardwert | Zweck |
|---|---|---|
DISPATCHATLAS_HOME | $HOME/.local/share/dispatchatlas unter POSIX, %LOCALAPPDATA%\DispatchAtlas unter Windows | Pfad des installierten Checkouts. |
DISPATCHATLAS_REPO_URL | https://github.com/ahmed-g-gad/dispatchatlas.git | Vom Installer verwendetes Git-Remote. |
DISPATCHATLAS_REF | erforderlich | Versions-Tag oder vollständiger 40-stelliger Commit-SHA zum Installieren oder Aktualisieren. |
DISPATCHATLAS_SKIP_SYNC | 0 | Auf 1 setzen, um die Abhängigkeitssynchronisierung nach dem Checkout zu überspringen. |
🔄 Aktualisierung
Die Aktualisierungsskripte sind schreibgeschützt, sofern du nicht das
Anwenden-Flag übergibst. Setze DISPATCHATLAS_REF auf ein Versions-Tag oder
einen vollständigen 40-stelligen Commit-SHA, bevor du eine Aktualisierung prüfst
oder anwendest; wie schon bei der Installation ist ein SHA die unveränderliche,
konstruktionsbedingt verifizierte Bindung, während ein Tag eine bewegliche
Komfort-Bindung ist, deren Signatur die Aktualisierungsskripte nicht
verifizieren:
$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🗑️ Deinstallation
Die Deinstallationsskripte fragen vor dem Entfernen nach, verweigern unsichere Ziele und verschieben das Checkout standardmäßig in eine mit Zeitstempel versehene Sicherung:
.\scripts\installer\uninstall.ps1 -Yesscripts/installer/uninstall.sh --yesVerwende -Permanent oder --permanent nur, wenn der Sicherungspfad nicht
benötigt wird.