تخطَّ إلى المحتوى

مدير الحزم

مدير حزم كنوز هو أداة قوية لإدارة مشاريعك والمكتبات التي تعتمد عليها. مشابه لـ cargo في Rust، مدير الحزم يسهل:

  • إنشاء مشاريع جديدة بهيكل قياسي
  • بناء وتشغيل المشاريع
  • تثبيت وإدارة المكتبات من سجل الحزم
  • نشر حزمك الخاصة لمشاركتها مع المجتمع
  • إدارة رموز API للنشر الآمن

جميع الحزم مستضافة على سجل كنوز الرسمي على packages.knoz.dev.

كل مشروع كنوز يحتوي على ملف knoz.toml يحدد معلومات المشروع واعتمادياته.

[حزمة]
اسم = "مشروعي"
نسخة = "0.1.0"
وصف = "وصف المشروع"
رخصة = "MIT"
[اعتماديات]
# الاعتماديات هنا
الحقلالوصفمطلوبمثال
اسماسم الحزمة✓"حاسبة"
نسخةرقم النسخة✓"0.1.0"
وصفوصف الحزمة✖"مكتبة رياضية"
مؤلفينقائمة المؤلفين✖["أحمد <[email protected]>"]
رخصةنوع الرخصة✖"MIT"
كلمات_مفتاحيةكلمات للبحث✖["رياضيات", "حساب"]
مستودعرابط المستودع✖"https://github.com/user/repo"
موقعرابط الموقع✖"https://example.com"
توثيقرابط التوثيق✖"https://docs.example.com"
[حزمة]
اسم = "رياضيات"
نسخة = "0.2.0"
مؤلفين = ["فريق كنوز <[email protected]>"]
وصف = "مكتبة رياضية شاملة للغة كنوز"
رخصة = "MIT"
كلمات_مفتاحية = ["رياضيات", "حساب", "أعداد"]
مستودع = "https://github.com/knoz-dev/رياضيات"
موقع = "https://knoz.dev/packages/رياضيات"
[اعتماديات]
نصوص = "^1.0.0"
شبكة = { نسخة = "0.3.2", مميزات = ["https"] }
[اعتماديات_تطوير]
اختبار = "1.0"
Terminal window
# إنشاء مشروع جديد
knoz جديد مشروعي

هذا ينشئ مجلد مشروع جديد مع الهيكل التالي:

مشروعي/
├── knoz.toml
├── .gitignore
├── اقرأني.md
└── src/
└── رئيسي.كنز

محتوى الملف الرئيسي src/رئيسي.كنز:

// مشروعي - مشروع جديد بلغة كنوز
// تم إنشاؤه بواسطة مدير الحزم
دالة رئيسية() -> صحيح {
طباعة("مرحباً من مشروعي!");
أرجع 0;
}
Terminal window
# بناء المشروع (debug)
knoz بناء
# بناء للإنتاج (release)
knoz بناء --release

الملفات الناتجة تُحفظ في مجلد بناء/:

مشروعي/
├── بناء/
│ ├── مشروعي-debug # نسخة التطوير
│ └── مشروعي # نسخة الإنتاج (مع --release)
Terminal window
# بناء وتشغيل المشروع
knoz شغل
# تشغيل مع وسائط
knoz شغل -- arg1 arg2
Terminal window
# حذف مجلد البناء
knoz نظف
Terminal window
# إضافة حزمة للاعتماديات
knoz أضف رياضيات
# إضافة بنسخة محددة
knoz أضف رياضيات 0.2.0
# إضافة اعتمادية تطوير
knoz أضف --dev أدوات_اختبار

يُضاف إلى ملف knoz.toml تلقائياً:

[اعتماديات]
رياضيات = "^0.2.0"
[اعتماديات_تطوير]
أدوات_اختبار = "^1.0.0"
Terminal window
# حذف حزمة من المشروع
knoz حذف رياضيات

تثبيت جميع الاعتماديات

Section titled “تثبيت جميع الاعتماديات”
Terminal window
# تثبيت جميع الحزم المذكورة في knoz.toml
knoz تثبيت
[اعتماديات]
رياضيات = "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. اعتماديات محلية (من مسار)”
[اعتماديات]
مكتبتي = { نسخة = "*", مسار = "../مكتبتي" }
[اعتماديات]
مكتبة = { جيت = "https://github.com/user/repo", فرع = "main" }
[اعتماديات]
شبكة = { نسخة = "^1.0", اختياري = صحيح }
[اعتماديات]
شبكة = { نسخة = "^1.0", ميزات = ["https", "json"] }
[اعتماديات_تطوير]
أدوات_اختبار = "^1.0.0"
Terminal window
# البحث في سجل الحزم
knoz بحث رياضيات

مثال على النتائج:

🔍 جاري البحث عن: رياضيات...
📦 النتائج (2):
────────────────────────────────────────────────────────────
📦 رياضيات
مكتبة رياضية شاملة للغة كنوز
📥 1234 تحميل
📦 رياضيات_متقدمة
دوال رياضية متقدمة ومعقدة
📥 456 تحميل
Terminal window
# عرض معلومات حزمة
knoz معلومات رياضيات

مثال على النتائج:

📦 رياضيات
════════════════════════════════════════
📝 مكتبة رياضية شاملة للغة كنوز
📥 1234 تحميل
📅 تاريخ الإنشاء: 2024-01-15
🔄 آخر تحديث: 2024-12-20
📋 الإصدارات:
• 0.3.0
• 0.2.0
• 0.1.0

تأكد من وجود الملفات المطلوبة:

مكتبتي/
├── knoz.toml
├── اقرأني.md
└── src/
└── رئيسي.كنز

وأن knoz.toml يحتوي على المعلومات الكاملة:

[حزمة]
اسم = "مكتبتي"
نسخة = "1.0.0"
وصف = "وصف واضح للحزمة"
رخصة = "MIT"
مؤلفين = ["اسمك <[email protected]>"]
Terminal window
# تسجيل الدخول لسجل الحزم
knoz دخول

سيطلب منك:

🔐 تسجيل الدخول إلى مستودع كنوز
https://packages.knoz.dev
اسم المستخدم: ________
كلمة المرور: ________
🔄 جاري تسجيل الدخول...
✅ تم تسجيل الدخول بنجاح!
👤 مرحباً، اسمك!
Terminal window
# تسجيل الدخول باستخدام توكن API
knoz دخول --token arb_xxxxx
Terminal window
# نشر الحزمة
knoz نشر

خطوات النشر:

📦 جاري تجهيز الحزمة للنشر...
الاسم: مكتبتي
النسخة: 1.0.0
🚀 جاري النشر إلى packages.knoz.dev...
✅ تم نشر مكتبتي بنجاح!
النسخة: 1.0.0
الرابط: https://packages.knoz.dev/packages/مكتبتي
Terminal window
# عرض جميع الحزم التي نشرتها
knoz حزمي
Terminal window
# عرض من أنا
knoz من_أنا

مثال:

👤 مسجل الدخول باسم: اسمك
🔑 التوكن: موجود
Terminal window
# تسجيل الخروج
knoz خروج

رموز API تمكنك من النشر بشكل آمن في CI/CD:

Terminal window
# إنشاء توكن جديد
knoz توكن جديد "رمز-النشر"
# إنشاء توكن مع تاريخ انتهاء
knoz توكن جديد "رمز-ci" --expires-days 365

عند الإنشاء:

🔐 جاري إنشاء توكن جديد...
✅ تم إنشاء التوكن بنجاح!
🔑 التوكن:
arb_xxxxxxxxxxxxxxxxxxxxx
⚠️ احفظ هذا التوكن في مكان آمن!
لن يتم عرضه مرة أخرى.
Terminal window
# عرض جميع التوكنات
knoz توكنات

مثال:

📋 التوكنات (2):
────────────────────────────────────────────────────────────
🔑 رمز-النشر (ID: 1)
تاريخ الإنشاء: 2024-01-15
آخر استخدام: 2024-12-20
🔑 رمز-ci (ID: 2)
تاريخ الإنشاء: 2024-06-01
Terminal window
# حذف توكن بالـ ID
knoz توكن حذف 1
// استيراد كامل
استخدم رياضيات؛
// استيراد دالة محددة
استخدم رياضيات::جذر؛
// استيراد متعدد
استخدم رياضيات::{جذر, قوة, مطلق}؛
// استيراد مع اسم مستعار
استخدم رياضيات كـ ر؛
// استيراد المكتبة
استخدم رياضيات::{جذر, قوة}؛
دالة رئيسية() -> صحيح {
دع نتيجة = جذر(16.0)؛
طباعة("الجذر التربيعي لـ 16 = {}", نتيجة)؛
دع قوة_نتيجة = قوة(2.0, 8.0)؛
طباعة("2 أس 8 = {}", قوة_نتيجة)؛
أرجع 0;
}
الأمرالوصف
knoz جديد <اسم>إنشاء مشروع جديد
knoz بناءبناء المشروع (debug)
knoz بناء --releaseبناء للإنتاج
knoz شغلبناء وتشغيل المشروع
knoz شغل -- <args>تشغيل مع وسائط
knoz نظفتنظيف ملفات البناء
الأمرالوصف
knoz تثبيتتثبيت جميع الاعتماديات
knoz أضف <حزمة>إضافة اعتمادية
knoz أضف <حزمة> <نسخة>إضافة بنسخة محددة
knoz أضف --dev <حزمة>إضافة اعتمادية تطوير
knoz حذف <حزمة>حذف اعتمادية
knoz بحث <استعلام>البحث عن حزم
knoz معلومات <حزمة>عرض معلومات حزمة
الأمرالوصف
knoz نشرنشر الحزمة
knoz حزميعرض حزمي المنشورة
الأمرالوصف
knoz دخولتسجيل الدخول التفاعلي
knoz دخول --token <token>تسجيل الدخول بالتوكن
knoz خروجتسجيل الخروج
knoz من_أناعرض معلومات الحساب
الأمرالوصف
knoz توكناتعرض قائمة الرموز
knoz توكن جديد <اسم>إنشاء رمز جديد
knoz توكن جديد <اسم> --expires-days <أيام>إنشاء رمز مع انتهاء صلاحية
knoz توكن حذف <id>حذف رمز

مثال 1: إنشاء وتشغيل مشروع

Section titled “مثال 1: إنشاء وتشغيل مشروع”
Terminal window
# 1. إنشاء مشروع جديد
knoz جديد تطبيقي
cd تطبيقي
# 2. بناء وتشغيل
knoz شغل
# النتيجة:
# 🚀 جاري تشغيل تطبيقي...
# ──────────────────────────────────────────────────
# مرحباً من تطبيقي!

مثال 2: إضافة واستخدام حزمة

Section titled “مثال 2: إضافة واستخدام حزمة”
Terminal window
# 1. إضافة اعتمادية
knoz أضف رياضيات
# 2. تعديل src/رئيسي.كنز
استخدم رياضيات::جذر؛
دالة رئيسية() -> صحيح {
دع س = جذر(25.0)؛
طباعة("جذر 25 = {}", س)؛
أرجع 0;
}
Terminal window
# 3. تشغيل
knoz شغل
Terminal window
# 1. تسجيل الدخول
knoz دخول
# 2. التأكد من knoz.toml
# [حزمة]
# اسم = "مكتبتي"
# نسخة = "1.0.0"
# وصف = "..."
# 3. نشر الحزمة
knoz نشر

مثال 4: النشر التلقائي (CI/CD)

Section titled “مثال 4: النشر التلقائي (CI/CD)”
.github/workflows/publish.yml
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 نشر

لم يتم العثور على ملف knoz.toml

Section titled “لم يتم العثور على ملف knoz.toml”
❌ لم يتم العثور على ملف knoz.toml
تأكد من أنك في مجلد مشروع كنوز

الحل:

  1. تأكد من أنك في مجلد المشروع الصحيح
  2. أنشئ مشروع جديد: knoz جديد اسم

الملف الرئيسي غير موجود

Section titled “الملف الرئيسي غير موجود”
❌ الملف الرئيسي غير موجود: src/رئيسي.كنز

الحل:

  1. أنشئ الملف src/رئيسي.كنز
  2. أو تأكد من صحة المسار
❌ لم يتم تسجيل الدخول. استخدم: knoz دخول

الحل:

Terminal window
knoz دخول
❌ خطأ في المصادقة: التوكن غير صالح

الحل:

  1. تحقق من التوكن
  2. أنشئ توكن جديد: knoz توكن جديد "اسم"
❌ خطأ في الشبكة: ...

الحل:

  1. تحقق من الاتصال بالإنترنت
  2. تحقق من توفر packages.knoz.dev
  • استخدم أرقام نسخ واضحة (Semantic Versioning)
  • اكتب وصفاً واضحاً للحزمة
  • أضف ملف اقرأني.md يشرح الاستخدام
  • حدد الرخصة في knoz.toml
  • استخدم رموز API بدلاً من كلمات المرور في CI/CD
  • حدد تاريخ انتهاء لرموز API
  • لا تنشر حزماً بدون وصف
  • لا تنسَ تحديث رقم النسخة عند التعديل
  • لا تشارك رموز API الخاصة بك
  • لا تضمّن ملفات حساسة في الحزمة
  • احفظ الرموز في متغيرات البيئة
  • لا تلتزم برموز API في Git
  • استخدم رموز منفصلة لكل بيئة
  • احذف الرموز غير المستخدمة
  • knoz جديد لإنشاء مشروع جديد
  • knoz بناء لبناء المشروع
  • knoz شغل لتشغيل المشروع
  • knoz أضف لإضافة اعتماديات
  • knoz تثبيت لتثبيت الاعتماديات
  • knoz دخول لتسجيل الدخول
  • knoz نشر لنشر الحزمة
  • knoz توكن جديد لإنشاء رمز API
  • جميع المعلومات في ملف knoz.toml
  • سجل الحزم متاح على https://packages.knoz.dev