تتكون هذه المشاريع من قالب CookieCutter الذي يولد بنية كاملة لإنشاء حزمة PYPI قياسية.
أثناء استخدام هذا المشروع ، سيُطلب منك تقديم بعض المدخلات مثل المؤلف ، واسم المشروع ، وما إلى ذلك. ونتيجة لذلك ، ستحصل على بنية الملف والمجلد الكامل للبدء بسرعة في ترميز الحزمة الخاصة بك.
دعونا نتظاهر بأنك تريد إنشاء مشروع يسمى "FedDit". باستخدام هذا القالب على أساس CookieCutter ، ستتمكن من إعداد حزمة PYPI قابلة للإنشاء بسرعة.
أولا ، الحصول على cookiecutter. صدقني ، إنه رائع:
$ pip تثبيت cookiecutter
أو بالشعر :
$ الشعر ذاتي إضافة cookiecutter
الآن قم بتشغيله ضد هذا الريبو:
$ cookiecutter https://github.com/zhiwei2017/pyckage-cookeiecutter
أو:
$ poetry Run cookiecutter https://github.com/zhiwei2017/pyckage-cookiecutter
ستتم مطالبتك ببعض القيم. قدم لهم ، ثم سيتم إنشاء مشروع لك.
تحذير : بعد هذه النقطة ، قم بتغيير " مشروعي الرائع " ، " جون دو " ، وما إلى ذلك لمعلوماتك الخاصة.
أجب على المطالبات بمطالباتك المطلوبة. على سبيل المثال:
استنساخ في "pyckage-cookiecounder" ... عن بُعد: تعداد الكائنات: 219 ، تم. عن بُعد: العد الكائنات: 100 ٪ (219/219) ، تم. عن بُعد: ضغط الكائنات: 100 ٪ (123/123) ، تم. جهاز التحكم عن بُعد: إجمالي 219 (دلتا 83) ، إعادة استخدام 181 (دلتا 69) ، إعادة استخدام حزمة 0 استلام الكائنات: 100 ٪ (219/219) ، 41.09 KIB | 1.71 MIB/S ، تم. حل دلتا: 100 ٪ (83/83) ، تم. [1/8] حدد اسم مشروعك (مشروعي الرائع): [2/8] عنوان URL للمشروع لاستضافة رمز المصدر. (https://repository-hosting.com/example_project): https://github.com/zhiwei2017/feddit [3/8] المؤلف الاسم الكامل. (جون دو): جون دو [4/8] عنوان البريد الإلكتروني للمؤلف. ([email protected]): [email protected] [5/8] وصف قصير. (ها مشروعي الرائع!): API Reddit مزيفة. [6/8] النسخة الدلالية لاستخدامها في الإصدار. (0.1.0): 0.1.0 [7/8] ما هو الترخيص الذي تريد استخدامه لمشروعك؟ 1 - لا شيء 2 - معهد ماساتشوستس للتكنولوجيا 3 - أباتشي 4 - 2 طبقة BSD 5 - 3 طبقة BSD 6 - GPL اختر من بين [1/2/3/4/5/6] (1): 2 [8/8] ما هي خطوط أنابيب CI/CD التي تخطط لاستخدامها؟ 1 - لا شيء 2 - جيثب 3 - جيتلاب 4 - Bitbucket اختر من بين [1/2/3/4] (1): 2 ** يرجى قراءة التعليقات من README.RST في مشروعك للتعرف على كيفية إعداد خط أنابيب CI/CD واستخدام الأوامر من Makefile. **
أدخل المشروع وألقي نظرة حولها:
$ CD FedDit/ $ ls
يجب أن يكون لدى ريبو الهيكل التالي:
FedDit ├ .github - تكوينات إجراءات github │ └ مهام سير العمل │ ├ test.yml - خطوط أنابيب لتصفية الشيكات والاختبار │ ├ regle.yml - خطوط أنابيب للإصدارات مع العلامات │ └ sphinx.yml - خطوط الأنابيب لنشر صفحات جيثب ├ مستندات - وثائق أبو الهول │ ├ Makefile - Makefile يحدد الأوامر الطرفية لوثائق sphinx │ └ المصدر - مجلد مصدر الوثائق │ ├ 01_about.rst │ ├ 02_Source.RST │ ├ 03_Authors.RST │ ├ 04_Contributing.rst │ ├ conf.py - ملف تكوين sphinx │ └ index.rst ├ FedDit │ └ __init__.py ├ الاختبارات - الاختبارات │ الموارد - الموارد المستخدمة في الاختبارات │ ├ conftest.py - التركيبات في الاختبارات │ └ test_version.py - معلومات إصدار الاختبار. ├ .gitignore ├ المساهمة. الإرشادات المساهمة ├ الترخيص ├ Makefile - أوامر طرفية محددة مسبقًا ├ Missest.in - أوامر ، واحدة لكل سطر ، توجيهات setuptools لإضافة أو إزالة مجموعة من الملفات من SDIs ├ readme.rst - معلومات الحزمة ├ setup.cfg - تكوينات Flake8 ، لأنه لا يدعم pyproject.toml. └ pyproject.toml - ملف تكوين الحزمة
إذا كنت ترغب في استخدام خط أنابيب CI/CD لتحميل الحزمة الخاصة بك إلى PYPI ، فيرجى التحقق من تكوين القسم CI/CD .
ملحوظة :
تم تصميم هذا الريبو كحزمة عجلات وتم تحميلها على PYPI. يمكنك تثبيته من خلال PIP :
$ pip تثبيت pyckage-cookiecutter
أو من خلال الشعر :
$ poetry self add pyckage-cookiecutter
والبدء في توليد مشروع جديد عن طريق الاتصال:
$ pyckage_cookieCutter
أو:
$ poetry Run Pyckage_CookieCutter
الباقي هو نفس البرنامج التعليمي الذي تم تقديمه.
يتم تعريف خطوط أنابيب CI/CD مسبقًا في المشروع الذي تم إنشاؤه. يرجى التحقق من الأقسام التالية التي يتم تضمين الخطوات وكيفية تكوينها في منصات مختلفة.
يمكنك العثور على جميع ملفات التكوين من إجراءات GitHub في مجلد .github/workflows .
| ملف التكوين | خطوات | قواعد الزناد | متغيرات CI/CD المطلوبة | متغيرات CI/CD الوصف |
|---|---|---|---|---|
| test.yml | فحص mypy |
| ||
| FLAKE8 تحقق | ||||
| فحص اللصوص | ||||
| اختبار مع Python 3.8 (Ubuntu/Mac OS/Windows) | ||||
| اختبار مع Python 3.9 (Ubuntu/Mac OS/Windows) | ||||
| اختبار مع Python 3.10 (Ubuntu/Mac OS/Windows) | ||||
| اختبار مع Python 3.11 (Ubuntu/Mac OS/Windows) | ||||
| اختبار مع Python 3.12 (Ubuntu/Mac OS/Windows) | ||||
| خيوط تحقق من الحزمة المبنية | ||||
| إطلاق | نشر إلى PYPI | يدفع إلى العلامات مطابقة vxx.xx.xx | poetry_pypi_token_pypi | رمز لتحميل الحزمة إلى PYPI الرسمية. إذا كنت تستخدم Artifactory الخاص ، فيرجى استخدام Package_index_repository_url و package_index_username و package_index_password بدلاً من ذلك. |
| package_index_repository_url | عنوان URL لمؤشر الحزمة الخاصة. | |||
| package_index_username | اسم المستخدم لمؤشر الحزمة الخاصة. | |||
| package_index_password | كلمة مرور فهرس الحزمة الخاصة. | |||
| sphinx.yml | نشر صفحات جيثب | يدفع إلى ماجستير فرع |
ملحوظة :
قبل نشر صفحات جيثب في مشروعك لأول مرة ، يرجى إنشاء صفحات GH الفرعية يدويًا عبر:
$ git checkout master $ git checkout -b gh -pages $ git push pages gh pages
يحتوي الملف .gitlab-ci.yml على جميع التكوينات لـ Gitlab CI.
| مراحل | خطوات | قواعد الزناد | متغيرات CI/CD المطلوبة | متغيرات CI/CD الوصف |
|---|---|---|---|---|
| linting | فحص mypy |
| ||
| FLAKE8 تحقق | ||||
| فحص اللصوص | ||||
| امتحان | اختبار مع بيثون 3.8 | |||
| اختبار مع بيثون 3.9 | ||||
| اختبار مع بيثون 3.10 | ||||
| اختبار مع بيثون 3.11 | ||||
| اختبار مع بيثون 3.12 | ||||
| يبني | خيوط تحقق من الحزمة المبنية | |||
| نشر | نشر إلى PYPI | يدفع إلى العلامات مطابقة vxx.xx.xx | poetry_pypi_token_pypi | رمز لتحميل الحزمة إلى PYPI الرسمية. إذا كنت تستخدم Artifactory الخاص ، فيرجى استخدام Package_index_repository_url و package_index_username و package_index_password بدلاً من ذلك. |
| package_index_repository_url | عنوان URL لمؤشر الحزمة الخاصة. | |||
| package_index_username | اسم المستخدم لمؤشر الحزمة الخاصة. | |||
| package_index_password | كلمة مرور فهرس الحزمة الخاصة. |
انتقل إلى الإعدادات .
انقر فوق قسم CI/CD .
انتقل إلى قسم المتغيرات .
انقر فوق زر إضافة متغير .
إدخال اسم وقيمة متغير CI/CD.
بشكل افتراضي ، يتم فحص العلامة المحمية ، مما يعني أنه لا يمكن استخدام المتغير المضافة إلا للفروع/العلامات المحمية. إذا كنت ترغب في الحفاظ على متغيرك محميًا ، فيرجى إضافة Bildcards V* كعلامات محمية في الإعدادات -> المستودع -> العلامات المحمية .
أو يمكنك إلغاء تحديد المربع لاستخدام المتغير لجميع الفروع والعلامات.
يحتوي الملف bitbucket-pipelines.yml على جميع تكوينات خطوط أنابيب Bitbucket.
| خطوات | قواعد الزناد | متغيرات CI/CD المطلوبة | متغيرات CI/CD الوصف |
|---|---|---|---|
| فحص mypy |
| ||
| FLAKE8 تحقق | |||
| فحص اللصوص | |||
| اختبار مع بيثون 3.8 | |||
| اختبار مع بيثون 3.9 | |||
| اختبار مع بيثون 3.10 | |||
| اختبار مع بيثون 3.11 | |||
| اختبار مع بيثون 3.12 | |||
| خيوط تحقق من الحزمة المبنية | |||
| نشر إلى PYPI | يدفع إلى العلامات مطابقة vxx.xx.xx | poetry_pypi_token_pypi | رمز لتحميل الحزمة إلى PYPI الرسمية. إذا كنت تستخدم Artifactory الخاص ، فيرجى استخدام Package_index_repository_url و package_index_username و package_index_password بدلاً من ذلك. |
| package_index_repository_url | عنوان URL لمؤشر الحزمة الخاصة. | ||
| package_index_username | اسم المستخدم لمؤشر الحزمة الخاصة. | ||
| package_index_password | كلمة مرور فهرس الحزمة الخاصة. |
انتقل إلى إعدادات المستودع .
انقر فوق متغيرات المستودع .
انقر فوق زر إضافة .
إدخال اسم وقيمة متغير CI/CD.
تحتاج إلى تمكين خطوط الأنابيب قبل إضافة متغير جديد لأول مرة.
| يأمر | وصف |
|---|---|
| ينظف | إزالة المجلدات المولدة تلقائيا والقطع الأثرية. |
| نظيفة pyc | إزالة القطع الأثرية بيثون. |
| بناء نظيف | إزالة البناء القطع الأثرية. |
| اللصوص | تشغيل التحليل الأمنية اللصوص. |
| mypy | قم بتشغيل فحص نوع mypy. |
| Flake8 | تشغيل flake8 linting. |
| ثَبَّتَ | تثبيت جميع التبعيات والحزمة نفسها. |
| امتحان | تشغيل الاختبارات وإنشاء تقرير التغطية. |
| يبني | بناء حزمة عجلة. |
| نشر | نشر حزمة العجلات المبنية. |
شكر خاص لمشروع cookiecutter-pypackage على قالب nice المساهمة .