ارفع الإصدار الدلالي حسب major أو minor أو patch
احصل على رقم الإصدار التالي دون أخطاء: يحوّل رفع minor الإصدار 2.7.4 إلى 2.8.0 مع تصفير patch، وتُحذف أي لاحقة لما قبل الإصدار أو للبناء لأن سلسلة إصدارات جديدة تبدأ. مجاناً في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- الإصدار
- 2.7.4
- نوع الزيادة
- Minor
- الإصدار الأصلي
- 2.7.4
- الإصدار بعد الزيادة
- 2.8.0
تحسب أداة رفع الإصدار الدلالي رقم الإصدار التالي انطلاقاً من سلسلة صالحة وفق Semantic Versioning 2.0.0 ونوع الرفع المختار. اختاروا major أو minor أو patch، فتزيد الأداة الجزء المطلوب وتعيد جميع الأجزاء الأدنى إلى الصفر. وتزيل معرّفات ما قبل الإصدار وبيانات البناء لأن النتيجة تمثل خط إصدار عادي جديد. يكشف التحقق الصارم الإصدارات المشوهة وأنواع الرفع غير المعروفة قبل دخولها في نصوص الإصدار أو نشر الحزم أو سجلات التغييرات أو مسارات التسليم المستمر.
اختاروا تغيير الإصدار الذي تريدون التعبير عنه
يمنح Semantic Versioning كل رقم من أرقام النواة الثلاثة معنى مختلفاً، ولذلك يبدأ الرفع الصحيح من طبيعة التغيير المنشور. تزيد الحاسبة major وتعيد minor وpatch إلى الصفر، فتحول 4.8.6 إلى 5.0.0. واختاروا minor عند إضافة وظائف مع الحفاظ على التوافق مع الإصدارات السابقة.
عندئذ تزيد minor ويعود patch إلى الصفر، فيصبح 4.8.6 هو 4.9.0. أما إصلاحات الأخطاء المتوافقة فتستخدم patch، وتنتج 4.8.7 من المدخل نفسه. العملية آلية عن قصد؛ فهي لا تفحص الشفرة المصدرية أو سجلات commits أو سجل التغييرات، ولا تستطيع تقرير ما إذا كان التغيير كاسراً للتوافق.
يبقى هذا التصنيف جزءاً من سياسة الإصدار لديكم. وبعد تحديد النوع يصبح الحساب ثابتاً وقابلاً للتكرار، وهو مفيد حين يحدد شخص أو وسم pull request أو محلل commits فئة الإصدار ثم يحتاج إلى حساب نهائي موثوق.
افهموا التحقق الصارم وإزالة اللواحق
يجب أن يطابق الإصدار Semantic Versioning 2.0.0 بدقة وأن يحتوي أجزاء major وminor وpatch كاملة. من الأمثلة الصالحة 1.2.3 و2.0.0-rc.1 و3.4.5+linux.x64. وترفض الصيغ المتساهلة مثل v1.2.3 أو 1.2 أو أرقام النواة ذات الأصفار البادئة بدلاً من إصلاحها بصمت.
يجري التحقق من معرّفات ما قبل الإصدار وبيانات البناء ضمن المدخل، لكن لا تبقى أي لاحقة في النتيجة المرفوعة. يفتح الرفع رقم نواة جديداً؛ فتطبيق patch على 2.1.0-beta.3 ينتج 2.1.1، بينما ينتج minor الرقم 2.2.0. يمنع ذلك حمل وسم إصدار مرشح قديم إلى خط جديد.
ونوع الرفع أيضاً اختيار محدود وصارم: major أو minor أو patch بأحرف صغيرة. تفيد هذه الصرامة في الأتمتة لأنها توقف الأخطاء الإملائية واختصارات مديري الحزم والإصدارات الناقصة بوضوح قبل إنشاء وسم خاطئ قد يصعب سحبه بعد النشر.
استخدموا حساباً حتمياً في أتمتة الإصدارات
صُممت الحاسبة لتكون خطوة حتمية صغيرة داخل مسار إصدار أكبر. لا تستخدم المعالجة شبكة أو ساعة أو قيماً عشوائية أو نموذجاً خارجياً أو حالة مخزنة، ولذلك تعطي المدخلات المتطابقة مخرجات متطابقة دائماً. تزيد المكونات الرقمية بوصفها سلاسل من الأرقام العشرية بدلاً من تحويلها إلى أرقام JavaScript.
يحافظ ذلك على الدقة حتى للمكونات الصالحة التي تتجاوز نطاق الأعداد الصحيحة الآمنة، ويتجنب مفاجآت التقريب. استخدموا مشغّل المتصفح للتخطيط أو الفحص العرضي.
حالات الاستخدام
جهزوا إصدار حزمة
احسبوا نسخة البيان التالية بعد اعتماد إصدار من نوع major أو minor أو patch.
شغّلوا مسار تسليم مستمر
حوّلوا تصنيفاً مستمداً من الوسوم أو commits إلى إصدار حتمي تستخدمه الخطوات اللاحقة.
تحققوا من إصدار مقترح
قارنوا الرفع المحسوب بالقيمة المقترحة قبل إنشاء الوسوم أو نشر المنتجات.
الأسئلة الشائعة
ماذا يفعل كل نوع من أنواع الرفع؟
يزيد major الجزء major ويصفر minor وpatch. ويزيد minor الجزء minor ويصفر patch. أما patch فيزيد patch وحده.
هل تبقى معرّفات ما قبل الإصدار؟
لا. تقبل اللاحقة الصالحة في المدخل، لكنها تزال من إصدار النواة الجديد.
هل تؤثر بيانات البناء في النتيجة؟
لا. تقبل البيانات الصالحة ثم تزال عند حساب الإصدار الجديد.
هل يمكن إضافة v في البداية أو حذف patch؟
لا. يجب أن يكون المدخل سلسلة Semantic Versioning 2.0.0 صارمة تحتوي أجزاء النواة الثلاثة.
هل تقرر الأداة نوع الرفع الذي يحتاجه تغييري؟
لا. فهي لا تقرأ الكود ولا الالتزامات ولا نص سجل التغييرات، ولا تستطيع معرفة ما إذا كان التغيير يكسر التوافق. أنت أو قواعد الإصدار لديك تختارون major أو minor أو patch، ثم يجري الحساب بالطريقة نفسها دائماً.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev2/semver-bump \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"version":"2.7.4","bump_type":"minor"}'const res = await fetch("https://api.kit.forhosting.com/dev2/semver-bump", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"version": "2.7.4",
"bump_type": "minor"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/semver-bump",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"version": "2.7.4",
"bump_type": "minor"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/semver-bump", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"version":"2.7.4","bump_type":"minor"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"version":"2.7.4","bump_type":"minor"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/semver-bump", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"version": "2.7.4",
"bump_type": "minor"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.semver_bump",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
اختاروا تغيير الإصدار الذي تريدون التعبير عنه
اختاروا major عندما يتضمن الإصدار الجديد تغييرات غير متوافقة في API العامة.
افهموا التحقق الصارم وإزالة اللواحق
يعيد أي اسم آخر خطأ invalid_input.
استخدموا حساباً حتمياً في أتمتة الإصدارات
أرسلوا الإصدار الحالي والنوع المعتمد، ثم استخدموا bumped_version لتحديث بيان حزمة أو إنشاء فرع إصدار أو تسمية منتج أو اقتراح وسم للمستودع. تكرر الاستجابة أيضاً original_version وbump_type، مما يسهل تدقيق السجلات وشاشات الموافقة دون إعادة بناء الطلب. وعندما تحتاج خدمة بناء أو CLI أو منظومة تكامل مستمر إلى الحساب آلياً، استدعوا API بسعر $0.002 لكل عنصر، وتعاملوا مع invalid_input بوصفه مشكلة في بيانات الإصدار يجب تصحيحها قبل النشر.
أسئلة تقنية
ماذا يحدث عند إدخال نوع غير معروف؟
يعيد الطلب invalid_input. لا تقبل إلا الأنواع major وminor وpatch.
ما تكلفة API؟
سعر API هو $0.002 لكل عنصر، ويتوفر مشغّل المتصفح للفحوص التفاعلية.