برنامه‌نویسی

نسخه‌گذاری معنادار (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