مدير الحزم
مدير حزم كنوز هو أداة قوية لإدارة مشاريعك والمكتبات التي تعتمد عليها. مشابه لـ cargo في Rust، مدير الحزم يسهل:
- إنشاء مشاريع جديدة بهيكل قياسي
- بناء وتشغيل المشاريع
- تثبيت وإدارة المكتبات من سجل الحزم
- نشر حزمك الخاصة لمشاركتها مع المجتمع
- إدارة رموز API للنشر الآمن
جميع الحزم مستضافة على سجل كنوز الرسمي على packages.knoz.dev.
ملف المشروع (knoz.toml)
Section titled “ملف المشروع (knoz.toml)”كل مشروع كنوز يحتوي على ملف knoz.toml يحدد معلومات المشروع واعتمادياته.
هيكل الملف الأساسي
Section titled “هيكل الملف الأساسي”[حزمة]اسم = "مشروعي"نسخة = "0.1.0"وصف = "وصف المشروع"رخصة = "MIT"
[اعتماديات]# الاعتماديات هناالحقول المتاحة
Section titled “الحقول المتاحة”قسم [حزمة]
Section titled “قسم [حزمة]”| الحقل | الوصف | مطلوب | مثال |
|---|---|---|---|
| اسم | اسم الحزمة | ✓ | "حاسبة" |
| نسخة | رقم النسخة | ✓ | "0.1.0" |
| وصف | وصف الحزمة | ✖ | "مكتبة رياضية" |
| مؤلفين | قائمة المؤلفين | ✖ | ["أحمد <[email protected]>"] |
| رخصة | نوع الرخصة | ✖ | "MIT" |
| كلمات_مفتاحية | كلمات للبحث | ✖ | ["رياضيات", "حساب"] |
| مستودع | رابط المستودع | ✖ | "https://github.com/user/repo" |
| موقع | رابط الموقع | ✖ | "https://example.com" |
| توثيق | رابط التوثيق | ✖ | "https://docs.example.com" |
مثال كامل
Section titled “مثال كامل”[حزمة]اسم = "رياضيات"نسخة = "0.2.0"مؤلفين = ["فريق كنوز <[email protected]>"]وصف = "مكتبة رياضية شاملة للغة كنوز"رخصة = "MIT"كلمات_مفتاحية = ["رياضيات", "حساب", "أعداد"]مستودع = "https://github.com/knoz-dev/رياضيات"موقع = "https://knoz.dev/packages/رياضيات"
[اعتماديات]نصوص = "^1.0.0"شبكة = { نسخة = "0.3.2", مميزات = ["https"] }
[اعتماديات_تطوير]اختبار = "1.0"الأوامر الأساسية
Section titled “الأوامر الأساسية”إنشاء مشروع جديد
Section titled “إنشاء مشروع جديد”# إنشاء مشروع جديدknoz جديد مشروعيهذا ينشئ مجلد مشروع جديد مع الهيكل التالي:
مشروعي/├── knoz.toml├── .gitignore├── اقرأني.md└── src/ └── رئيسي.كنزمحتوى الملف الرئيسي src/رئيسي.كنز:
// مشروعي - مشروع جديد بلغة كنوز// تم إنشاؤه بواسطة مدير الحزم
دالة رئيسية() -> صحيح { طباعة("مرحباً من مشروعي!"); أرجع 0;}بناء المشروع
Section titled “بناء المشروع”# بناء المشروع (debug)knoz بناء
# بناء للإنتاج (release)knoz بناء --releaseالملفات الناتجة تُحفظ في مجلد بناء/:
مشروعي/├── بناء/│ ├── مشروعي-debug # نسخة التطوير│ └── مشروعي # نسخة الإنتاج (مع --release)تشغيل المشروع
Section titled “تشغيل المشروع”# بناء وتشغيل المشروعknoz شغل
# تشغيل مع وسائطknoz شغل -- arg1 arg2تنظيف ملفات البناء
Section titled “تنظيف ملفات البناء”# حذف مجلد البناءknoz نظفإدارة الاعتماديات
Section titled “إدارة الاعتماديات”إضافة اعتمادية
Section titled “إضافة اعتمادية”# إضافة حزمة للاعتمادياتknoz أضف رياضيات
# إضافة بنسخة محددةknoz أضف رياضيات 0.2.0
# إضافة اعتمادية تطويرknoz أضف --dev أدوات_اختباريُضاف إلى ملف knoz.toml تلقائياً:
[اعتماديات]رياضيات = "^0.2.0"
[اعتماديات_تطوير]أدوات_اختبار = "^1.0.0"حذف اعتمادية
Section titled “حذف اعتمادية”# حذف حزمة من المشروعknoz حذف رياضياتتثبيت جميع الاعتماديات
Section titled “تثبيت جميع الاعتماديات”# تثبيت جميع الحزم المذكورة في knoz.tomlknoz تثبيتأنواع الاعتماديات
Section titled “أنواع الاعتماديات”1. اعتماديات من السجل
Section titled “1. اعتماديات من السجل”[اعتماديات]رياضيات = "0.2.0" # نسخة محددة بالضبطنصوص = "^1.0.0" # أي نسخة متوافقة (1.0.0 <= x < 2.0.0)شبكة = "~0.3.2" # نفس الإصدار الثانوي (0.3.2 <= x < 0.4.0)أدوات = "*" # أي نسخةرموز النسخ:
^(caret): تحديثات متوافقة - تسمح بتحديثات لا تغير الرقم الأول~(tilde): تحديثات رقعية - تسمح فقط بتحديثات الرقم الثالث- بدون رمز: يُعامل مثل
^(الأحدث المتوافق) *: أي نسخة
2. اعتماديات محلية (من مسار)
Section titled “2. اعتماديات محلية (من مسار)”[اعتماديات]مكتبتي = { نسخة = "*", مسار = "../مكتبتي" }3. اعتماديات من Git
Section titled “3. اعتماديات من Git”[اعتماديات]مكتبة = { جيت = "https://github.com/user/repo", فرع = "main" }4. اعتماديات اختيارية
Section titled “4. اعتماديات اختيارية”[اعتماديات]شبكة = { نسخة = "^1.0", اختياري = صحيح }5. اعتماديات مع ميزات
Section titled “5. اعتماديات مع ميزات”[اعتماديات]شبكة = { نسخة = "^1.0", ميزات = ["https", "json"] }6. اعتماديات تطوير
Section titled “6. اعتماديات تطوير”[اعتماديات_تطوير]أدوات_اختبار = "^1.0.0"البحث عن الحزم
Section titled “البحث عن الحزم”# البحث في سجل الحزمknoz بحث رياضياتمثال على النتائج:
🔍 جاري البحث عن: رياضيات...
📦 النتائج (2):──────────────────────────────────────────────────────────── 📦 رياضيات مكتبة رياضية شاملة للغة كنوز 📥 1234 تحميل
📦 رياضيات_متقدمة دوال رياضية متقدمة ومعقدة 📥 456 تحميلعرض معلومات حزمة
Section titled “عرض معلومات حزمة”# عرض معلومات حزمةknoz معلومات رياضياتمثال على النتائج:
📦 رياضيات════════════════════════════════════════📝 مكتبة رياضية شاملة للغة كنوز📥 1234 تحميل📅 تاريخ الإنشاء: 2024-01-15🔄 آخر تحديث: 2024-12-20
📋 الإصدارات: • 0.3.0 • 0.2.0 • 0.1.0نشر الحزم
Section titled “نشر الحزم”التحضير للنشر
Section titled “التحضير للنشر”تأكد من وجود الملفات المطلوبة:
مكتبتي/├── knoz.toml├── اقرأني.md└── src/ └── رئيسي.كنزوأن knoz.toml يحتوي على المعلومات الكاملة:
[حزمة]اسم = "مكتبتي"نسخة = "1.0.0"وصف = "وصف واضح للحزمة"رخصة = "MIT"مؤلفين = ["اسمك <[email protected]>"]تسجيل الدخول
Section titled “تسجيل الدخول”# تسجيل الدخول لسجل الحزمknoz دخولسيطلب منك:
🔐 تسجيل الدخول إلى مستودع كنوز https://packages.knoz.dev
اسم المستخدم: ________كلمة المرور: ________
🔄 جاري تسجيل الدخول...✅ تم تسجيل الدخول بنجاح!👤 مرحباً، اسمك!تسجيل الدخول بالتوكن
Section titled “تسجيل الدخول بالتوكن”# تسجيل الدخول باستخدام توكن APIknoz دخول --token arb_xxxxxنشر الحزمة
Section titled “نشر الحزمة”# نشر الحزمةknoz نشرخطوات النشر:
📦 جاري تجهيز الحزمة للنشر... الاسم: مكتبتي النسخة: 1.0.0
🚀 جاري النشر إلى packages.knoz.dev...
✅ تم نشر مكتبتي بنجاح! النسخة: 1.0.0 الرابط: https://packages.knoz.dev/packages/مكتبتيعرض حزمي
Section titled “عرض حزمي”# عرض جميع الحزم التي نشرتهاknoz حزميإدارة الحساب
Section titled “إدارة الحساب”عرض معلومات الحساب
Section titled “عرض معلومات الحساب”# عرض من أناknoz من_أنامثال:
👤 مسجل الدخول باسم: اسمك🔑 التوكن: موجودتسجيل الخروج
Section titled “تسجيل الخروج”# تسجيل الخروجknoz خروجإدارة رموز API
Section titled “إدارة رموز API”رموز API تمكنك من النشر بشكل آمن في CI/CD:
إنشاء رمز جديد
Section titled “إنشاء رمز جديد”# إنشاء توكن جديدknoz توكن جديد "رمز-النشر"
# إنشاء توكن مع تاريخ انتهاءknoz توكن جديد "رمز-ci" --expires-days 365عند الإنشاء:
🔐 جاري إنشاء توكن جديد...
✅ تم إنشاء التوكن بنجاح!
🔑 التوكن: arb_xxxxxxxxxxxxxxxxxxxxx
⚠️ احفظ هذا التوكن في مكان آمن! لن يتم عرضه مرة أخرى.عرض قائمة الرموز
Section titled “عرض قائمة الرموز”# عرض جميع التوكناتknoz توكناتمثال:
📋 التوكنات (2):──────────────────────────────────────────────────────────── 🔑 رمز-النشر (ID: 1) تاريخ الإنشاء: 2024-01-15 آخر استخدام: 2024-12-20
🔑 رمز-ci (ID: 2) تاريخ الإنشاء: 2024-06-01حذف رمز
Section titled “حذف رمز”# حذف توكن بالـ IDknoz توكن حذف 1استخدام الحزم المثبتة
Section titled “استخدام الحزم المثبتة”استيراد حزمة
Section titled “استيراد حزمة”// استيراد كاملاستخدم رياضيات؛
// استيراد دالة محددةاستخدم رياضيات::جذر؛
// استيراد متعدداستخدم رياضيات::{جذر, قوة, مطلق}؛
// استيراد مع اسم مستعاراستخدم رياضيات كـ ر؛مثال استخدام
Section titled “مثال استخدام”// استيراد المكتبةاستخدم رياضيات::{جذر, قوة}؛
دالة رئيسية() -> صحيح { دع نتيجة = جذر(16.0)؛ طباعة("الجذر التربيعي لـ 16 = {}", نتيجة)؛
دع قوة_نتيجة = قوة(2.0, 8.0)؛ طباعة("2 أس 8 = {}", قوة_نتيجة)؛
أرجع 0;}الأوامر الكاملة
Section titled “الأوامر الكاملة”أوامر المشروع
Section titled “أوامر المشروع”| الأمر | الوصف |
|---|---|
knoz جديد <اسم> | إنشاء مشروع جديد |
knoz بناء | بناء المشروع (debug) |
knoz بناء --release | بناء للإنتاج |
knoz شغل | بناء وتشغيل المشروع |
knoz شغل -- <args> | تشغيل مع وسائط |
knoz نظف | تنظيف ملفات البناء |
أوامر الاعتماديات
Section titled “أوامر الاعتماديات”| الأمر | الوصف |
|---|---|
knoz تثبيت | تثبيت جميع الاعتماديات |
knoz أضف <حزمة> | إضافة اعتمادية |
knoz أضف <حزمة> <نسخة> | إضافة بنسخة محددة |
knoz أضف --dev <حزمة> | إضافة اعتمادية تطوير |
knoz حذف <حزمة> | حذف اعتمادية |
knoz بحث <استعلام> | البحث عن حزم |
knoz معلومات <حزمة> | عرض معلومات حزمة |
أوامر النشر
Section titled “أوامر النشر”| الأمر | الوصف |
|---|---|
knoz نشر | نشر الحزمة |
knoz حزمي | عرض حزمي المنشورة |
أوامر الحساب
Section titled “أوامر الحساب”| الأمر | الوصف |
|---|---|
knoz دخول | تسجيل الدخول التفاعلي |
knoz دخول --token <token> | تسجيل الدخول بالتوكن |
knoz خروج | تسجيل الخروج |
knoz من_أنا | عرض معلومات الحساب |
أوامر الرموز
Section titled “أوامر الرموز”| الأمر | الوصف |
|---|---|
knoz توكنات | عرض قائمة الرموز |
knoz توكن جديد <اسم> | إنشاء رمز جديد |
knoz توكن جديد <اسم> --expires-days <أيام> | إنشاء رمز مع انتهاء صلاحية |
knoz توكن حذف <id> | حذف رمز |
أمثلة عملية
Section titled “أمثلة عملية”مثال 1: إنشاء وتشغيل مشروع
Section titled “مثال 1: إنشاء وتشغيل مشروع”# 1. إنشاء مشروع جديدknoz جديد تطبيقيcd تطبيقي
# 2. بناء وتشغيلknoz شغل
# النتيجة:# 🚀 جاري تشغيل تطبيقي...# ──────────────────────────────────────────────────# مرحباً من تطبيقي!مثال 2: إضافة واستخدام حزمة
Section titled “مثال 2: إضافة واستخدام حزمة”# 1. إضافة اعتماديةknoz أضف رياضيات
# 2. تعديل src/رئيسي.كنزاستخدم رياضيات::جذر؛
دالة رئيسية() -> صحيح { دع س = جذر(25.0)؛ طباعة("جذر 25 = {}", س)؛ أرجع 0;}# 3. تشغيلknoz شغلمثال 3: نشر حزمة
Section titled “مثال 3: نشر حزمة”# 1. تسجيل الدخولknoz دخول
# 2. التأكد من knoz.toml# [حزمة]# اسم = "مكتبتي"# نسخة = "1.0.0"# وصف = "..."
# 3. نشر الحزمةknoz نشرمثال 4: النشر التلقائي (CI/CD)
Section titled “مثال 4: النشر التلقائي (CI/CD)”name: نشر الحزمة
on: release: types: [created]
jobs: publish: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4
- name: تثبيت كنز run: | curl -fsSL https://knoz.dev/install.sh | bash
- name: نشر الحزمة env: KNOZ_TOKEN: ${{ secrets.KNOZ_TOKEN }} run: knoz دخول --token $KNOZ_TOKEN && knoz نشرحل المشاكل الشائعة
Section titled “حل المشاكل الشائعة”لم يتم العثور على ملف knoz.toml
Section titled “لم يتم العثور على ملف knoz.toml”❌ لم يتم العثور على ملف knoz.toml تأكد من أنك في مجلد مشروع كنوزالحل:
- تأكد من أنك في مجلد المشروع الصحيح
- أنشئ مشروع جديد:
knoz جديد اسم
الملف الرئيسي غير موجود
Section titled “الملف الرئيسي غير موجود”❌ الملف الرئيسي غير موجود: src/رئيسي.كنزالحل:
- أنشئ الملف
src/رئيسي.كنز - أو تأكد من صحة المسار
لم يتم تسجيل الدخول
Section titled “لم يتم تسجيل الدخول”❌ لم يتم تسجيل الدخول. استخدم: knoz دخولالحل:
knoz دخولالتوكن غير صالح
Section titled “التوكن غير صالح”❌ خطأ في المصادقة: التوكن غير صالحالحل:
- تحقق من التوكن
- أنشئ توكن جديد:
knoz توكن جديد "اسم"
خطأ في الشبكة
Section titled “خطأ في الشبكة”❌ خطأ في الشبكة: ...الحل:
- تحقق من الاتصال بالإنترنت
- تحقق من توفر
packages.knoz.dev
أفضل الممارسات
Section titled “أفضل الممارسات”✓ افعل
Section titled “✓ افعل”- استخدم أرقام نسخ واضحة (Semantic Versioning)
- اكتب وصفاً واضحاً للحزمة
- أضف ملف
اقرأني.mdيشرح الاستخدام - حدد الرخصة في
knoz.toml - استخدم رموز API بدلاً من كلمات المرور في CI/CD
- حدد تاريخ انتهاء لرموز API
✖ لا تفعل
Section titled “✖ لا تفعل”- لا تنشر حزماً بدون وصف
- لا تنسَ تحديث رقم النسخة عند التعديل
- لا تشارك رموز API الخاصة بك
- لا تضمّن ملفات حساسة في الحزمة
🔐 أمان رموز API
Section titled “🔐 أمان رموز API”- احفظ الرموز في متغيرات البيئة
- لا تلتزم برموز API في Git
- استخدم رموز منفصلة لكل بيئة
- احذف الرموز غير المستخدمة
الملخص
Section titled “الملخص”knoz جديدلإنشاء مشروع جديدknoz بناءلبناء المشروعknoz شغللتشغيل المشروعknoz أضفلإضافة اعتمادياتknoz تثبيتلتثبيت الاعتمادياتknoz دخوللتسجيل الدخولknoz نشرلنشر الحزمةknoz توكن جديدلإنشاء رمز API- جميع المعلومات في ملف
knoz.toml - سجل الحزم متاح على
https://packages.knoz.dev