تخطٍّ إلى المحتوى
DispatchAtlas
بحث

التثبيت

يستهدف DispatchAtlas الإصدار Python 3.12 أو أحدث، ويستخدم uv من أجل تطوير محلي قابل لإعادة الإنتاج.

التثبيت بأمر واحد

تتطلب أوامر التثبيت قيمة DISPATCHATLAS_REF صريحة بحيث يبقى النص البرمجي الذي يجري تنزيله مثبّتًا على مراجعة مصدر مستقرة. إن معرّف SHA الكامل المكوّن من 40 حرفًا هو أقوى تثبيت — فهو غير قابل للتغيير، ويسمّي شجرة واحدة بعينها، ومُتحقَّق منه بحكم بنيته — لذا فضّله كلّما وجب أن تكون المراجعة المثبَّتة قابلة للتحقّق. ووسم الإصدار مقبول أيضًا، لكن بوصفه تثبيتًا للتيسير: فالوسم يمكن أن يتحرّك، والمثبّت لا يتحقّق من توقيع الوسم، لذا فإن معرّف SHA هو التثبيت الذي ينبغي استخدامه في تثبيتٍ غير مراقَب. وتغطّي توقيعات cosign ومنشأ البناء الصادرة عن سير عمل الإصدار مُنتَجات التوزيع المنشورة — وهي سطح تحقّق منفصل لمن يثبّت تلك الأصول بدلًا من هذه النسخة المحلية المستخرجة من المصدر. نزّل النص البرمجي، وراجعه، ثم شغّله. الأمر الأخير ذو الأنبوب في كل كتلة هو البديل ذو الخطوة الواحدة: فهو ينفّذ التدفّق دون خطوة المراجعة، لذا احتفظ به لمرجع سبق أن تحقّقت منه.

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

يتحقق المثبّت من وجود git وuv، ويستنسخ النسخة المحلية أو يحدّثها، ثم يشغّل uv sync --all-extras --group dev. عيّن DISPATCHATLAS_SKIP_SYNC=1 عندما تريد تجسيد النسخة المحلية فقط.

🧱 تثبيت مساحة العمل

uv sync --all-extras --group dev

تثبّت مساحة العمل مساحة الأسماء الجذرية إضافةً إلى التوزيعات المركّزة:

التوزيعمساحة أسماء الاستيراد
dispatchatlasdispatchatlas
dispatchatlas-coredispatchatlas.core
dispatchatlas-benchdispatchatlas.bench
dispatchatlas-solvedispatchatlas.solve
dispatchatlas-labdispatchatlas.lab
dispatchatlas-analyticadispatchatlas.analytica

التحقق

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

تبقى عمليات تكامل الحلّالات الثقيلة الاختيارية خلف الإضافات (extras). وتظل مساحة العمل الأساسية خفيفة عند الاستيراد عندما تكون هذه الخلفيات غائبة.

⚙️ الإعداد

المتغيّرالقيمة الافتراضيةالغرض
DISPATCHATLAS_HOME$HOME/.local/share/dispatchatlas على POSIX، و%LOCALAPPDATA%\DispatchAtlas على Windowsمسار النسخة المحلية المثبّتة.
DISPATCHATLAS_REPO_URLhttps://github.com/ahmed-g-gad/dispatchatlas.gitمستودع Git البعيد الذي يستخدمه المثبّت.
DISPATCHATLAS_REFمطلوبوسم الإصدار أو معرّف SHA الكامل المكوّن من 40 حرفًا للتثبيت أو التحديث.
DISPATCHATLAS_SKIP_SYNC0عيّنه إلى 1 لتخطّي مزامنة التبعيات بعد الاستنساخ.

🔄 التحديث

نصوص التحديث للقراءة فقط ما لم تمرّر علم التطبيق. عيّن DISPATCHATLAS_REF إلى وسم إصدار أو معرّف SHA كامل مكوّن من 40 حرفًا قبل فحص تحديث أو تطبيقه؛ فكما هو الحال عند التثبيت، يكون معرّف SHA هو التثبيت غير القابل للتغيير والمُتحقَّق منه بحكم بنيته، بينما الوسم تثبيتٌ مُيسِّر متحرّك لا يتحقّق المُحدِّث من توقيعه:

$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

🗑️ إلغاء التثبيت

تطلب نصوص إلغاء التثبيت التأكيد قبل الإزالة، وترفض الأهداف غير الآمنة، وتنقل النسخة المحلية افتراضيًا إلى نسخة احتياطية موسومة بطابع زمني:

.\scripts\installer\uninstall.ps1 -Yes
scripts/installer/uninstall.sh --yes

استخدم -Permanent أو --permanent فقط عندما لا تكون هناك حاجة إلى مسار النسخة الاحتياطية.