PyPI¶
لنشر package بلغة Python بصيغة PyPI على ليڤانت غيت (LevantGit)، أضف الـ
registry إلى ملف ~/.pypirc، وصادِق بـ access token بصلاحية package، ثم ارفع الملفات بـ
twine upload. وللتثبيت، وجّه pip إلى عنوان الـ registry نفسه. تشرح هذه الصفحة الخطوتين، مع
طريقة عرض الحزم وحذفها.
ملاحظة
الـ package registry متاح إن كان مفعّلاً على levantgit.com؛ تظهر تبويبة Packages في ملفك الشخصي أو في الـ repository عندها.
ما تحتاج إليه¶
- pip لتثبيت الـ packages.
- twine لنشرها.
- اسم المستخدم وكلمة المرور، أو access token من إعدادات الحساب: Settings ←
Applications، بصلاحية
package. إن كنت تستخدم 2FA أو تسجيل الدخول عبر OAuth فلا بد من الـ access token بدل كلمة المرور.
ضبط الـ registry¶
عدّل ملف ~/.pypirc في مجلد المنزل لديك (أنشئه إن لم يكن موجودًا) وأضف:
[distutils]
index-servers = LevantGit
[LevantGit]
repository = https://levantgit.com/api/packages/{owner}/pypi
username = {username}
password = {password}
| العنصر | الوصف |
|---|---|
owner |
الـ owner: اسم المستخدم أو الـ organization. |
username |
اسم المستخدم في ليڤانت غيت. |
password |
كلمة المرور، أو الـ access token إن كنت تستخدم 2FA أو OAuth. |
تنبيه
هذا الملف يحوي بيانات دخولك نصًّا صريحًا. لا تضعه في repository، وفضّل access token محدود الصلاحية على كلمة المرور.
نشر package¶
بعد بناء الـ package (مثلًا بـ python3 -m build) نفّذ:
ملفات الـ package تنتهي بـ .tar.gz و.whl.
لا يمكن نشر package إن كانت أخرى بالاسم نفسه والإصدار نفسه موجودة؛ احذف القديمة أولًا من تبويبة Packages، أو ارفع رقم الإصدار.
تثبيت package¶
pip install --index-url https://{username}:{password}@levantgit.com/api/packages/{owner}/pypi/simple --no-deps {package_name}
| المعامل | الوصف |
|---|---|
username |
اسم المستخدم في ليڤانت غيت. |
password |
كلمة المرور أو الـ access token. |
owner |
الـ owner. |
package_name |
اسم الـ package. |
مثال:
pip install --index-url https://testuser:[email protected]/api/packages/testuser/pypi/simple --no-deps test_package
لاحظ --no-deps: الـ registry في ليڤانت غيت يحوي package مشروعك وحدها، لا تبعياتها. ثبّت
التبعيات من PyPI الرسمي بأمر منفصل، أو أسقط --no-deps إن كانت كل التبعيات منشورة في الـ
registry نفسه.
تنبيه
يمكنك استخدام --extra-index-url بدل --index-url، لكن ذلك يعرّضك لهجمات خلط التبعيات
(dependency confusion): pip يبحث في PyPI الرسمي أولًا قبل الـ registry الخاص بك، فإن نشر
أحدهم package بالاسم نفسه هناك ثُبّتت بدل package مشروعك. راجع وثائق pip قبل استخدامه.
الأوامر المدعومة¶
ماذا بعد؟¶
هذه الصفحة مبنية على وثائق Gitea (رخصة MIT) بعد ترجمتها وتبسيطها.