Instalasi
DispatchAtlas menargetkan Python 3.12 atau lebih baru dan menggunakan uv untuk
pengembangan lokal yang dapat direproduksi.
⚡ Instalasi Sekali Jalan
Perintah pemasang memerlukan DISPATCHATLAS_REF eksplisit agar skrip yang diunduh
terikat pada revisi sumber yang stabil. SHA commit lengkap 40 karakter adalah
pengikatan terkuat — bersifat tetap, menunjuk tepat satu pohon, dan terverifikasi
secara konstruksi — jadi utamakan SHA setiap kali revisi terpasang harus dapat
diverifikasi. Tag rilis juga diterima, tetapi sebagai pengikatan kemudahan: tag
dapat berpindah, dan pemasang tidak memverifikasi tanda tangan sebuah tag, jadi
SHA adalah pengikatan yang harus digunakan untuk instalasi tanpa pengawasan. Tanda
tangan cosign dan provenans build yang dihasilkan alur kerja rilis mencakup
artefak distribusi yang diterbitkan — permukaan verifikasi terpisah bagi siapa pun
yang memasang aset tersebut alih-alih checkout dari sumber ini. Unduh skripnya,
tinjau, lalu jalankan. Perintah terakhir dengan pipa pada setiap blok adalah
alternatif sekali jalan: perintah itu menjalankan aliran tanpa langkah peninjauan,
jadi gunakan hanya untuk referensi yang sudah Anda verifikasi.
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 alternativePemasang memeriksa keberadaan git dan uv, mengkloning atau memperbarui
checkout, lalu menjalankan uv sync --all-extras --group dev. Setel
DISPATCHATLAS_SKIP_SYNC=1 bila Anda hanya ingin memwujudkan checkout.
🧱 Instalasi Workspace
uv sync --all-extras --group devWorkspace memasang namespace akar beserta distribusi yang terfokus:
| Distribusi | Namespace impor |
|---|---|
dispatchatlas | dispatchatlas |
dispatchatlas-core | dispatchatlas.core |
dispatchatlas-bench | dispatchatlas.bench |
dispatchatlas-solve | dispatchatlas.solve |
dispatchatlas-lab | dispatchatlas.lab |
dispatchatlas-analytica | dispatchatlas.analytica |
✅ Verifikasi
uv run python -c "import dispatchatlas, dispatchatlas.core"
uv run dispatchatlas --help
uv run pytest
npm --prefix site run build
npm --prefix site run checkIntegrasi solver berat opsional tetap berada di balik extras. Workspace dasar tetap ringan dalam impor ketika backend tersebut tidak ada.
⚙️ Konfigurasi
| Variabel | Nilai bawaan | Tujuan |
|---|---|---|
DISPATCHATLAS_HOME | $HOME/.local/share/dispatchatlas pada POSIX, %LOCALAPPDATA%\DispatchAtlas pada Windows | Jalur checkout yang terpasang. |
DISPATCHATLAS_REPO_URL | https://github.com/ahmed-g-gad/dispatchatlas.git | Remote Git yang digunakan pemasang. |
DISPATCHATLAS_REF | wajib | Tag rilis atau SHA commit lengkap 40 karakter untuk dipasang atau diperbarui. |
DISPATCHATLAS_SKIP_SYNC | 0 | Setel 1 untuk melewati sinkronisasi dependensi setelah checkout. |
🔄 Pembaruan
Skrip pembaruan bersifat baca-saja kecuali Anda memberikan flag penerapan. Setel
DISPATCHATLAS_REF ke tag rilis atau SHA commit lengkap 40 karakter sebelum
memeriksa atau menerapkan pembaruan; seperti saat pemasangan, SHA adalah pengikatan
yang tetap dan terverifikasi secara konstruksi, sedangkan tag adalah pengikatan
kemudahan yang berpindah dan tidak diverifikasi oleh pembaru melalui tanda tangan:
$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🗑️ Pencopotan
Skrip pencopotan meminta konfirmasi sebelum menghapus, menolak target yang tidak aman, dan secara bawaan memindahkan checkout ke cadangan bertanda waktu:
.\scripts\installer\uninstall.ps1 -Yesscripts/installer/uninstall.sh --yesGunakan -Permanent atau --permanent hanya bila jalur cadangan tidak
diperlukan.