تزايدي هو مدير إصدار CalVer يدعم المستقبل.
يمكن العثور على وثائق API هنا. يتبع التوثيق السردي.
محتويات
نظرية التشغيل
بداية سريعة
باستخدام أدوات الإعداد
باستخدام الفقس
باستخدام setup.py
تهيئة المشروع
تكامل وقت التشغيل
إصدارات تزايدية
تحديث
إصدارات غير محددة
رقم الإصدار له النموذج YY.MM.PATCH.
إذا كان اسم مشروعك "Shrubbery"، فيمكن العثور على الكود الخاص به في shrubbery/
أو src/shrubbery/
.
يقوم برنامج Incremental بتخزين رقم إصدار مشروعك في {src/}shrubbery/_version.py
.
لتحديث الإصدار، قم بتشغيل incremental update Shrubbery
، مع تمرير --rc
و/أو --patch
بالشكل المناسب (راجع التحديث أدناه).
يؤدي تغيير الإصدار أيضًا إلى تحديث أي إصدارات غير محددة في قاعدة التعليمات البرمجية الخاصة بك، مثل "Shrubbery NEXT"، حتى تتمكن من الرجوع إلى الإصدار القادم في الوثائق. هذه هي الطريقة التي يدعم بها Incremental المستقبل.
إضافة تزايدي إلى pyproject.toml
الخاص بك :
[build-system]يتطلب = ["setuptools"، "incremental>=24.7.2"، # ← إضافة تزايدي باعتباره تبعية بناء]build-backend = "setuptools.build_meta"[project]name = ""dynamic = ["الإصدار"] # ← تحديد التبعيات الديناميكية للإصدار = ["تزايدي>=24.7.2"، # ← تعتمد على التزايدي في وقت التشغيل]# ...[tool.incremental] # ← تنشيط البرنامج المساعد لأدوات الإعداد التزايدي
لا بأس إذا كان الجدول [tool.incremental]
فارغًا، لكن يجب أن يكون موجودًا.
قم بإزالة أي [project] version =
إدخال وأي [tool.setuptools.dynamic] version =
إدخال.
بعد ذلك، قم بتهيئة المشروع.
إذا كنت تستخدم Hatchling لحزم مشروعك، فقم بتنشيط البرنامج الإضافي Incremental's Hatchling عن طريق تغيير pyproject.toml
:
[build-system]يتطلب = ["hatchling"، "incremental> = 24.7.2"، # ← إضافة تزايدي باعتباره تبعية بناء]build-backend = "hatchling.build"[project]name = ""dynamic = ["الإصدار"] # ← تحديد التبعيات الديناميكية للإصدار = ["تزايدي>=24.7.2"، # ← يعتمد على تزايدي في وقت التشغيل]# ...[tool.hatch.version]source = "incremental" # ← تنشيط البرنامج الإضافي Incremental's Hatchling
يمكن تكوين التزايدي كالمعتاد في جدول [tool.incremental]
اختياري.
سيقوم أمر hatch version
بالإبلاغ عن الإصدار المُدار بشكل تزايدي. استخدم أمر incremental update
لتغيير الإصدار (لا يتم دعم تعيينه باستخدام hatch version
).
بعد ذلك، قم بتهيئة المشروع.
setup.py
يمكن استخدام التزايدي من setup.py
بدلاً من pyproject.toml
. أضف هذا إلى استدعاء setup()
الخاص بك، مع إزالة أي وسيطات إصدار أخرى:
setup(use_incremental=True,setup_requires=['incremental'],install_requires=['incremental'], # بالإضافة إلى أي تبعيات تثبيت أخرى... }
ثم تهيئة المشروع.
قم بتثبيت تزايدي على بيئتك المحلية باستخدام pipx install incremental
. ثم قم بتشغيل incremental update
. سيتم إنشاء ملف في الحزمة الخاصة بك باسم _version.py
مثل هذا:
من الاستيراد المتزايد Version__version__ = Version("", 24, 1, 0)__all__ = ["__version__"]
ستستخدم عمليات التثبيت اللاحقة لمشروعك بعد ذلك التزايدي لتحديد الإصدارات.
يمكنك الكشف عن الإصدار incremental.Version
من _version.py
في واجهة برمجة تطبيقات الحزمة الخاصة بك. للقيام بذلك، قم بإضافة __init__.py
لحزمة الجذر الخاصة بك:
من ._version استيراد __version__
ملحوظة
أصبح توفير السمة __version__
أمرًا قديمًا بعد تقديم importlib.metadata.version() في Python 3.6، والذي يمكنه استرداد إصدار الحزمة المثبتة.
إذا لم تقم بكشف هذا الكائن علنًا، ولم تستخدمه داخل الحزمة الخاصة بك، فلن تكون هناك حاجة للاعتماد على Incremental في وقت التشغيل. يمكنك إزالته من مصفوفة dependencies
مشروعك (أو من install_requires
في setup.py
).
incremental.Version
هي فئة تمثل نسخة من مشروع معين. وتتكون من العناصر التالية (التي يتم تقديمها أثناء إنشاء مثيل):
package
(مطلوبة)، اسم الحزمة التي يمثلها هذا Version
.
major
، minor
، micro
(كل ما هو مطلوب)، XYZ Version
مشروعك.
release_candidate
(اختياري)، تم ضبطه على 0 أو أعلى لتمييز هذا Version
باعتباره إصدارًا مرشحًا (يُطلق عليه أحيانًا "الإصدار التجريبي").
post
(اختياري)، اضبطه على 0 أو أعلى لوضع علامة على هذا Version
كإصدار ما بعد الإصدار.
dev
(اختياري)، اضبطه على 0 أو أعلى لتمييز هذا Version
كإصدار تطويري.
يمكنك استخراج سلسلة إصدار متوافقة مع PEP-440 باستخدام الأسلوب .public()
، الذي يُرجع str
تحتوي على الإصدار الكامل. هذا هو الإصدار الذي يجب عليك تقديمه للمستخدمين، أو استخدامه بشكل عام. من أمثلة المخرجات "13.2.0"
أو "17.1.2dev1"
أو "18.8.0rc2"
.
سيؤدي استدعاء repr()
مع Version
إلى تمثيل كود مصدر Python له، واستدعاء str()
على Version
ينتج سلسلة مثل '[Incremental, version 16.10.1]'
.
يتضمن Incremental أداة لأتمتة تحديث إصدار مشروعك الذي يستخدم تزايدي والذي يسمى incremental
. يقوم بتحديث ملف _version.py
ويقوم تلقائيًا بتحديث بعض استخدامات الإصدارات التزايدية من إصدار غير محدد إلى الإصدار الحالي. يتطلب click
من PyPI.
سيؤدي incremental update
إلى إجراء تحديثات على تلك الحزمة. الأوامر التي يمكن إعطاؤها بعد ذلك تحدد الإصدار التالي.
--newversion=
لتعيين إصدار المشروع على إصدار محدد بالكامل (مثل 1.2.3 أو 17.1.0dev1).
--rc
، لتعيين إصدار المشروع على
إذا كان الإصدار الحالي ليس مرشحًا للإصدار، أو قم بزيادة رقم الإصدار المرشح بمقدار 1 إذا كان كذلك.
--dev
، لتعيين رقم إصدار تطوير المشروع على 0 إذا لم يكن إصدارًا تطويريًا، أو قم بزيادة رقم إصدار التطوير بمقدار 1 إذا كان كذلك.
--patch
، لزيادة رقم تصحيح الإصدار. سيؤدي هذا أيضًا إلى إعادة تعيين رقم الإصدار المرشح، وتمرير --rc
في نفس الوقت لزيادة رقم التصحيح وجعله مرشحًا للإصدار.
--post
، لتعيين رقم ما بعد الإصدار للمشروع على 0 إذا لم يكن إصدارًا ما بعد الإصدار، أو قم بزيادة رقم ما بعد الإصدار بمقدار 1 إذا كان كذلك. سيؤدي هذا أيضًا إلى إعادة تعيين رقم الإصدار المرشح وأرقام إصدار التطوير.
إذا لم تقدم أي وسيطات، فسيتم إزالة رقم الإصدار المرشح، مما يجعله "إصدارًا كاملاً".
يدعم الإصدار التزايدي الإصدارات "غير المحددة"، كبديل للإصدار "الكامل" التالي. يمكن استخدام هذا عندما يكون الإصدار الذي سيتم عرضه للمستخدم النهائي غير معروف (على سبيل المثال "مقدم في" أو "مهمل في"). يدعم التزايدي الإصدارات غير المحددة التالية:
Version("
عند تشغيل incremental update
، سيتم تحديث هذه الإصدارات إلى الإصدارات الحقيقية (بافتراض أن الإصدار النهائي المستهدف هو 17.1.0):
Version("
وبعد الانتهاء من النسخة النهائية ستصبح:
Version("