الإصدار الدلالي ووسم الإصدارات
طبّق Semantic Versioning (MAJOR.MINOR.PATCH)، وأنشئ git tags مشروحة، وأشر بوضوح إلى الإصدارات في تبعيات SwiftPM.
الإصدار الدلالي ووسم الإصدارات درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 2 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 3 دروس في المجموع.
ما هو SemVer؟
SemVer = MAJOR.MINOR.PATCH.
- MAJOR: تغييرات غير متوافقة
- MINOR: ميزات جديدة متوافقة مع الإصدارات السابقة
- PATCH: إصلاحات أخطاء وتوثيق وتحسينات صغيرة
متى ترفع رقم الإصدار
اختر الرقم الذي سترفعه:
- إزالة واجهة برمجة عامة أو إعادة تسميتها → MAJOR
- إضافة واجهة برمجة جديدة دون إحداث تغييرات غير متوافقة → MINOR
- إعادة هيكلة داخلية أو إصلاحات أخطاء → PATCH
آلية وسم Git
أنشئ وسمًا مشروحًا (مثل v1.2.0) وادفعه إلى المستودع. يحل SwiftPM الحزم بالاعتماد على وسوم Git.
// Create an annotated tag and push it so SwiftPM can resolve it.
// Prereqs: tests pass; CHANGELOG updated.
//
// git add -A
// git commit -m "Release 1.2.0: new JSON helpers"
// git tag -a v1.2.0 -m "v1.2.0"
// git push --follow-tags
//
// Note: use the "v" prefix consistently (e.g., v1.2.0).
print("Tagged v1.2.0 and pushed with --follow-tags")متطلبات إصدارات SwiftPM
في Package.swift، اختر أسلوب تحديد المتطلبات: from: أو exact: أو .upToNextMajor أو .upToNextMinor.
// Package.swift (illustrative dependency specs)
// dependencies: [
// // Compatible with 1.x (>=1.2.0, <2.0.0)
// .package(url: "https://example.com/Lib.git", from: "1.2.0"),
//
// // Exact pin:
// // .package(url: "https://example.com/Lib.git", exact: "1.2.3"),
//
// // Up to next major (same as "from:"):
// // .package(url: "https://example.com/Lib.git", .upToNextMajor(from: "1.2.0")),
//
// // Up to next minor (>=1.2.0, <1.3.0):
// // .package(url: "https://example.com/Lib.git", .upToNextMinor(from: "1.2.0"))
// ]
print("Declare dependency ranges clearly: from/exact/upToNextMajor/upToNextMinor")عادات CHANGELOG
لخّص التغييرات لكل إصدار. أبرز العناصر BREAKING بوضوح حتى يتمكن المستخدمون من الترقية بأمان.
// Keep a concise CHANGELOG with headings per version.
//
// # Changelog
// ## [1.2.0] - 2025-09-19
// - Add JSON.encodePretty(_:) (non-breaking)
// - Fix crash in Parser.parse() on empty input
//
// ## [2.0.0] - 2026-01-10
// - BREAKING: Renamed Parser.parse(_:) -> Parser.run(_:)
print("Write a short, helpful CHANGELOG for each release")نصائح الإصدارات التجريبية
تشير الإصدارات التجريبية السابقة (مثل 2.0.0-beta.1) إلى عدم الاستقرار. تجنّب إنشاء الوسوم إذا كنت لا تريد أن يختارها المستخدمون افتراضيًا. وحافظ على اتساق تسمية الوسوم.
قاعدة رفع رقم SemVer
مراجعة سريعة: متى ترفع MAJOR؟
مراجعة
مراجعة: استخدم SemVer (MAJOR.MINOR.PATCH)، وأنشئ وسوم git مشروحة مثل v1.2.0، وحدّد نطاقات إصدارات التبعيات في Package.swift، وحافظ على CHANGELOG واضح.
الأسئلة الشائعة
هل درس «الإصدار الدلالي ووسم الإصدارات» مجاني؟
نعم — نص درس «الإصدار الدلالي ووسم الإصدارات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 3 دروس في المجموع.
ماذا ستتعلم في «الإصدار الدلالي ووسم الإصدارات»؟
طبّق Semantic Versioning (MAJOR.MINOR.PATCH)، وأنشئ git tags مشروحة، وأشر بوضوح إلى الإصدارات في تبعيات SwiftPM. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟
لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 3.
كم من الوقت يستغرق درس «الإصدار الدلالي ووسم الإصدارات»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟
نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- حزم المكتبات مقابل الحزم التنفيذية
- الإصدار الدلالي ووسم الإصدارات
- أساسيات CI باستخدام swift test والمخرجات