نسخه‌گذاری معنادار (Semantic Versioning) چیست و چرا باید از آن استفاده کنیم؟

نسخه‌گذاری معنادار (semantic versioning)

نسخه‌گذاری (versioning) برای ابزارها، یکی از موضوع‌هایی است که ذهن برنامه‌نویس را به‌خود مشغول می‌کند. برنامه‌نویس می‌تواند، از یک الگوی شخصی برای ایجاد نسخه‌ها استفاده کند. امروزه سرعت رشد دنیای دیجیتال بسیار زیاد است و اگر ما توسعه‌دهنده یک ابزار معروف و مشهور باشیم، کاربران از ما می‌خواهند از مدل نسخه‌گذاری معنادار پیروی کنیم.

مطمعنا تابه‌حال، با اعداد این‌چنینی در ابزارهایتان روبرو شده‌اید، با یکی از معروف ترین سیستم‌عامل‌ها شروع می‌کنیم:

  • ubuntu 20.04

شاید در نگاه اول این اعداد برایتان هیچ مفهومی نداشته‌ باشد، اما ما در این مقاله سعی داریم، راز و پشت‌پرده این اعداد را آشکار کنیم.

این اعداد نمایانگر نسخه‌محصولی با نام ubuntu است، که کمپانی نرم‌افراری canonical آن را به جهان عرضه کرده. بیشتر کمپانی‌های بزرگ و همچنین توسعه‌دهندگان از روش نسخه‌گذاری بامعنا، برای محصول‌ها و ابزارهایشان استفاده می‌کنند.

هنگامی که یک توسعه‌دهنده از نسخه‌گذاری بامعنا استفاده می‌کند، درصورت نیاز به عیب‌یابی، می‌تواند محصول فعلی خود را با نسخه‌های گذشته مقایسه و سریع‌تر مشکل‌ها را رفع کند. اما این اعداد و ارقام، سرنخ‌هایی از تغییرها را به توسعه‌دهندگان دیگر می‌دهد.

البته این مدل از نسخه‌گذاری به کمپانی canonical محدود نمی‌شود، برای مثال React، Vue و خیلی از محصول‌های مشهور دیگر هم از این مدل بهره می‌برند.

ساختار کلی نسخه‌گذاری با معنا

به‌طور عمده، در این مدل از نسخه‌گذاری از سه عدد که توسط «.» از هم جدامی‌شوند، استفاده می‌شود.

نسخه‌های پچ (Patch versions)

نسخه‌های پچ (patch versions)

عدد سمت راست (12)، را نسخه‌پچ می‌نامند. از نسخه پچ برای رفع اشکال‌ها (bugfixes) استفاده می‌شود، و هیچ‌کدام از تغییرهای عملکردی ابزار، در این گروه قرار نمی‌گیرد. وقتی یک پچ به ابزار اضاف می‌شود، به عدد پچ، یک شماره می‌افزاییم و هیچ محدودیتی در این افزایش شماره وجود ندارد.

نسخه‌های جزئی (Minor versions)

نسخه‌های جزئی (minor versions)

به عدد میانی، minor version یا نسخه‌جزئئ گفته می‌شود. این عدد، نشان دهنده قابلیت‌های جدیدی است که به ابزار اضافه و منتشر شده‌اند. هنگامی که شما یک قابلیت جدید اضاف می‌کنید نیز این عدد را یک واحد افزایش می‌دهید، در این صورت با اضافه شدن قابلیت‌های جدید، نسخه‌پچ را به عدد 0 بازمی‌گردانید.

نسخه‌های عمده (Major versions)

نسخه‌های عمده (major versions)

همانطور که در عکس مشاهده می‌کنیم، عدد سمت چپ بعد از انجام تغییرهای عمده در ابزار یک واحد افزایش پیدا می‌کند و دیگر اعداد اعم از نسخه‌پچ و نسخه‌جزئی، صفر می‌شوند. با این کار ما به کاربران خود می‌فهمانیم تغییرهای ایجاد شده نسخه فعلی را با نسخه‎ پیشین متمایز می‌سازد.

پیش‌نسخه‌ها (Pre-releases)

اگر می‌خواهید پیش‌نسخه (مانند نسخه آلفا یا بتا) ایجاد کنید، می‌توایند با یک «-» آن را در قبل از نسخه‌بندی اضافه کنید. هیچ قانون محدود کننده‌ای برای تعیین نام برای پیش ‌نسخه ندارید، شما هرنام معقول و غیرمعقولی را استفاده کنید.

شروع پروژه

بیشتر افراد نسخه‌گذاری پروژه‌‌هایشان را با 0.1.0 شروع می‌کنند، و هنگامی که پروژه برای انتشار‌عمومی حاضر بود نسخه آن را به 1.0.0 تغییر می‌دهند.

منبع: https://www.freecodecamp.org/news/semantic-versioning-1fd6f57749f7

برچسب‌ها:

خدمات رایگان لیارا

۲.۵ گیگابایت فضای ذخیره‌سازی ابری رایگان

۲.۵ گیگابایت Object Storage سازگار با پروتکل S3 با دیسک‌های SSD به‌صورت رایگان دریافت کنید.

هاست رایگان برای دیتابیس‌

دیتابیس‌های MariaDB، PostgreSQL و Redis را فقط با یک کلیک و به‌صورت رایگان تهیه کنید.

سرویس DNS رایگان

به سادگی دامنه‌تان را اضافه کنید و به صورت رایگان رکورد‌های آن را مدیریت کنید.

۱۰۰ هزار تومان اعتبار اولیه

بعد از ثبت نام در لیارا مبلغ ۱۰۰ هزار تومان اعتبار هدیه دریافت می‌کنید که با توجه به ساعتی بودن هزینه سرویس‌ها، می‌توانید تمامی خدمات پولی را برای چندین هفته رایگان استفاده کنید.

ارسال ۱۰۰ ایمیل تراکنشی رایگان در هر ماه

در سرویس ایمیل لیارا شما می‌توانید تا ۱۰۰ ایمیل رایگان در هر ماه ارسال کنید و فقط برای بیش از آن هزینه پرداخت کنید. (به‌همراه دسترسی SMTP)

هاست رایگان برای انواع وبسایت

تفاوتی ندارد برای وبسایت خود از Node استفاده می‌کنید یا Laravel و Django، در لیارا می‌توانید به صورت کاملا رایگان آن را میزبانی کنید.

توسعه‌دهندگان درباره‌ی ما چه می‌گویند

تجربه کار باliara_cloud@امروز خیلی خوب بود. یکی از سرویس هام رو منتقل کردم روش و راضیم. انقد سریع و جذاب کارم راه افتادم اصن باورم نمیشد! برعکس سرویس های PaaS دیگه با اون همه پیچیدگیشون. دمتون گرم
...

MohammadReza
liara testimonial
keikaavousi

بعد از بسته شدن @fandoghpaas و ناراحتی همه‌مون از اینکه یه سرویس خوب و صادق نمی‌تونه از پس هزینه‌ها بر بیاد، سرویسم رو منتقل کردم به پاس لیارا (https://liara.ir @liara_cloud) . تجربه راحت و خوب. تفاوت‌هایی داشت که کمی کار می‌خواست ولی تا الان کاملا راضی.

jadi
liara testimonial
jadi

یه خسته نباشید باید به تصمیمliara_cloud@بگم،
بعد از چندین روز سرکله زدن با سرویس های مشابه بالاخره تصمیم گرفتم لیارا رو امتحان کنم و باور نمیشه ۱۰ دقیقه بیشتر وقت نبرد،
دمتون گرم.

Arch
liara testimonial
EbadiDev

واسه سرویس PaaS با اختلاف لیارا بهترین رابط کاربری داره و یکی از مزیت‌های سرویس دیتابیس‌شون اینه که خودشون به صورت دوره‌ای بکآپ میگیرن.
...

Ali Najafi
liara testimonial
me_ali_najafi

یکی از کارهای خوبی که جدیداً میکنم اینه که یه دیتابیس روی لیارا میسازم و به پروژه وصل میکنم اینطوری هم خونه و هم محل کار دیتابیس بروز رو دارم و راحت میتونم ادامه بدم کار روliara_cloud@

Navid
liara testimonial
1navid

عاشقliara_cloud@شدم درسته در حد AWS نیست ولی خب تجربه خوبی واسه پروژه های داخل ایران ارائه میده، میتونم رو CD هم اجراش کنم

Amir H Shekari
liara testimonial
vanenshi