آنچه در این مقاله میخوانید
نسخهگذاری معنادار (Semantic Versioning) چیست و چرا باید از آن استفاده کنیم؟
۲۱ تیر ۱۳۹۹
نسخهگذاری (versioning) برای ابزارها، یکی از موضوعهایی است که ذهن بسیاری از برنامهنویسها را به خود مشغول میکند. هر توسعهدهنده میتواند از یک الگوی شخصی برای تعیین نسخههای محصول خود استفاده کند، اما زمانی که پای یک ابزار پرکاربرد یا عمومی در میان باشد، اهمیت پیروی از یک استاندارد بیشتر میشود. با توجه به سرعت بالای رشد فناوری و دنیای دیجیتال، کاربران انتظار دارند که توسعهدهندگان از یک مدل نسخهگذاری معنادار و قابلفهم استفاده کنند.
احتمالاً تاکنون با اعدادی مانند 20.04
در ابزارها یا سیستمعاملها مواجه شدهاید. برای مثال:
- Ubuntu 20.04
در نگاه اول، ممکن است این اعداد صرفاً یک کد تصادفی بهنظر برسند، اما در واقع حاوی اطلاعات مشخص و مهمی درباره زمان انتشار و وضعیت توسعه آن نسخه هستند. در این مقاله قصد داریم رمز و راز این اعداد را بررسی کرده و ساختار نسخهگذاری معنادار را توضیح دهیم؛ مدلی که امروزه بسیاری از شرکتهای بزرگ نرمافزاری مانند Canonical، و همچنین فریمورکهایی مانند React و Vue از آن بهره میبرند.
استفاده از چنین مدلی، نهتنها مقایسه نسخهها و عیبیابی را برای توسعهدهنده آسانتر میکند، بلکه به دیگر برنامهنویسان کمک میکند تا تغییرات اعمالشده در هر نسخه را بهتر درک کنند. در ادامه، به بررسی دقیق ساختار این نوع نسخهگذاری میپردازیم.یبرند.

ساختار کلی نسخهگذاری با معنا
در نسخهگذاری معنایی، معمولاً از سه عدد استفاده میشود که با نقطه (.) از یکدیگر جدا شدهاند. هر یک از این عددها نشاندهنده نوع خاصی از تغییرات در نسخه نرمافزار هستند. این سه بخش بهترتیب شامل نسخههای عمده (Major)، جزئی (Minor) و پچ (Patch) هستند که در ادامه هرکدام را دقیقتر بررسی میکنیم.
نسخههای پچ (Patch versions)

عدد سمت راست در ساختار نسخهگذاری (برای مثال 12 در نسخه 2.5.12) به نسخهی پچ (Patch version) اشاره دارد. این عدد زمانی افزایش مییابد که اصلاحاتی جزئی در نرمافزار انجام شده باشد؛ معمولاً این اصلاحات مربوط به برطرفکردن باگها یا اشکالات گزارششده هستند. مهم است بدانید که در این نوع بهروزرسانی، تغییری در عملکرد کلی ابزار یا اضافهشدن قابلیتهای جدید صورت نمیگیرد. تنها هدف، پایدارتر و بدون خطا کردن نسخه موجود است. هر بار که یک باگ برطرف میشود، این عدد یک واحد افزایش پیدا میکند و برخلاف نسخههای دیگر، محدودیتی در تعداد دفعات افزایش آن وجود ندارد.
سرور ابونتو خود را با بهترین کارایی و امنیت بالا، بهسرعت راهاندازی کنید.
✅ نصب و پیکربندی آسان✅ منابع اختصاصی و عملکرد بهینه✅ امنیت و پشتیبانگیری مطمئن
خرید و راهاندازی سرور ابونتو Ubuntu
نسخههای جزئی (Minor versions)

عدد میانی در ساختار نسخهگذاری، نسخهی جزئی یا Minor version نام دارد. این عدد زمانی افزایش مییابد که قابلیتها یا ویژگیهای جدیدی به ابزار اضافه شوند، بدون اینکه تغییری در ساختار کلی یا رفتار اصلی آن ایجاد شود. به بیان دیگر، افزودن امکانات جدیدی که با نسخههای قبلی سازگار هستند، باعث افزایش این عدد میشود. پس از هر بار افزایش نسخهی جزئی، عدد پچ (Patch) مجدداً به صفر بازمیگردد تا نشان دهد که مجموعهای تازه از اصلاحات و بهبودها آغاز شده است. برای مثال، اگر نسخهی فعلی ابزار شما 1.2.5 باشد و ویژگی جدیدی اضافه کنید، نسخهی بعدی 1.3.0 خواهد بود.
نسخههای عمده (Major versions)

عدد سمت چپ در ساختار نسخهگذاری، نسخهی عمده (Major version) نام دارد. این عدد زمانی افزایش مییابد که در ابزار یا نرمافزار، تغییرات اساسی یا ناسازگار با نسخههای قبلی ایجاد شود. معمولاً این تغییرات باعث میشوند کاربران نتوانند بهراحتی از نسخه قبلی به نسخه جدید مهاجرت کنند، یا کدها و افزونههای قدیمی دیگر کار نکنند. هنگام افزایش نسخهی عمده، دو عدد دیگر یعنی نسخهی جزئی (Minor) و پچ (Patch) به صفر بازمیگردند تا نشان دهند که یک مسیر تازه در توسعه ابزار آغاز شده است. برای مثال، گذار از نسخهی 1.9.7 به نسخهی 2.0.0 به معنای یک تغییر مهم در ساختار یا رفتار ابزار است که آن را به شکل محسوسی از نسخههای قبلی متمایز میکند.
اوبونتو Ubuntu چیست؟ (معرفی کامل کاربردها + ویژگیها)
اوبونتو Ubuntu چیست؟
پیشنسخهها (Pre-releases)
در برخی موارد، توسعهدهندگان مایلاند نسخهای از محصول را پیش از انتشار نهایی منتشر کنند تا کاربران آن را آزمایش کرده و بازخورد دهند. به این نسخهها پیشنسخه (Pre-release) گفته میشود. برای مشخصکردن یک پیشنسخه، میتوان پس از شماره نسخه اصلی، یک خط تیره (-
) و سپس نام پیشنسخه را اضافه کرد. بهعنوان مثال: 1.0.0-alpha
یا 2.3.1-beta
. هیچ محدودیت خاصی برای انتخاب نام این برچسب وجود ندارد، اما معمولاً از نامهایی مانند alpha
، beta
، یا rc
(مخفف Release Candidate) استفاده میشود. این برچسبها به کاربران نشان میدهند که نسخهی منتشرشده نهایی نیست و ممکن است شامل باگها یا تغییرات ناپایدار باشد.
شروع پروژه
معمولاً توسعهدهندگان، نسخهگذاری پروژههای خود را با ۰.۱.۰ (0.1.0) آغاز میکنند. این نسخه نشان میدهد که پروژه هنوز در مراحل اولیه توسعه قرار دارد و برای استفاده عمومی مناسب نیست. در این مرحله ممکن است تغییرات زیادی در ساختار، عملکرد یا API ابزار صورت بگیرد. پس از آنکه پروژه به پایداری نسبی رسید و برای استفاده عمومی آماده شد، نسخه آن به ۱.۰.۰ (1.0.0) افزایش پیدا میکند. این عدد بیانگر آن است که ابزار به یک نقطه قابل اطمینان رسیده و میتوان آن را بهعنوان یک نسخه رسمی معرفی کرد.
نصب و راهاندازی دیتابیس PostgreSQL روی کلاستر Kubernetes
نصب PostgreSQL روی کلاستر
جمع بندی
نسخهگذاری معنادار، فراتر از یک قرارداد عددی ساده است. این روش به توسعهدهندگان و کاربران کمک میکند تا مسیر تغییرات یک ابزار را بهتر درک کرده، پایداری نسخهها را بسنجند و در صورت نیاز، به نسخههای قبلی بازگردند. با رعایت ساختار سهگانه نسخههای عمده (Major)، جزئی (Minor) و پچ (Patch)، میتوان توسعه پروژه را ساختیافتهتر و قابلاعتمادتر پیش برد.
همچنین استفاده از پیشنسخهها، راهی مناسب برای آزمایش تغییرات و دریافت بازخورد پیش از انتشار نهایی است. در نهایت، انتخاب یک الگوی مناسب نسخهگذاری، نهتنها باعث حرفهایتر شدن فرآیند توسعه میشود، بلکه تجربه کاربری بهتری برای مخاطبان ابزار فراهم میآورد.
منبع: https://www.freecodecamp.org/news/semantic-versioning-1fd6f57749f7