Zum Inhalt springen
DispatchAtlas
Suchen

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 alternative

Der 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 dev

Der Workspace installiert den Wurzel-Namensraum sowie die fokussierten Distributionen:

DistributionImport-Namensraum
dispatchatlasdispatchatlas
dispatchatlas-coredispatchatlas.core
dispatchatlas-benchdispatchatlas.bench
dispatchatlas-solvedispatchatlas.solve
dispatchatlas-labdispatchatlas.lab
dispatchatlas-analyticadispatchatlas.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 check

Optionale, schwergewichtige Solver-Integrationen bleiben hinter Extras. Der Basis-Workspace bleibt importleicht, wenn diese Backends fehlen.

⚙️ Konfiguration

VariableStandardwertZweck
DISPATCHATLAS_HOME$HOME/.local/share/dispatchatlas unter POSIX, %LOCALAPPDATA%\DispatchAtlas unter WindowsPfad des installierten Checkouts.
DISPATCHATLAS_REPO_URLhttps://github.com/ahmed-g-gad/dispatchatlas.gitVom Installer verwendetes Git-Remote.
DISPATCHATLAS_REFerforderlichVersions-Tag oder vollständiger 40-stelliger Commit-SHA zum Installieren oder Aktualisieren.
DISPATCHATLAS_SKIP_SYNC0Auf 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 -Apply
export 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 -Yes
scripts/installer/uninstall.sh --yes

Verwende -Permanent oder --permanent nur, wenn der Sicherungspfad nicht benötigt wird.