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

ساختار کلی نسخهگذاری با معنا
در نسخهگذاری معنایی، معمولاً از سه عدد استفاده میشود که با نقطه (.) از یکدیگر جدا شدهاند. هر یک از این عددها نشاندهنده نوع خاصی از تغییرات در نسخه نرمافزار هستند. این سه بخش بهترتیب شامل نسخههای عمده (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