نسخهگذاری معنادار (Semantic Versioning) چیست و چرا باید از آن استفاده کنیم؟
۲۱ تیر ۱۳۹۹
نسخهگذاری (versioning) برای ابزارها، یکی از موضوعهایی است که ذهن برنامهنویس را بهخود مشغول میکند. برنامهنویس میتواند، از یک الگوی شخصی برای ایجاد نسخهها استفاده کند. امروزه سرعت رشد دنیای دیجیتال بسیار زیاد است و اگر ما توسعهدهنده یک ابزار معروف و مشهور باشیم، کاربران از ما میخواهند از مدل نسخهگذاری معنادار پیروی کنیم.
مطمعنا تابهحال، با اعداد اینچنینی در ابزارهایتان روبرو شدهاید، با یکی از معروف ترین سیستمعاملها شروع میکنیم:
- ubuntu 20.04
شاید در نگاه اول این اعداد برایتان هیچ مفهومی نداشته باشد، اما ما در این مقاله سعی داریم، راز و پشتپرده این اعداد را آشکار کنیم.
این اعداد نمایانگر نسخهمحصولی با نام ubuntu است، که کمپانی نرمافراری canonical آن را به جهان عرضه کرده. بیشتر کمپانیهای بزرگ و همچنین توسعهدهندگان از روش نسخهگذاری بامعنا، برای محصولها و ابزارهایشان استفاده میکنند.
هنگامی که یک توسعهدهنده از نسخهگذاری بامعنا استفاده میکند، درصورت نیاز به عیبیابی، میتواند محصول فعلی خود را با نسخههای گذشته مقایسه و سریعتر مشکلها را رفع کند. اما این اعداد و ارقام، سرنخهایی از تغییرها را به توسعهدهندگان دیگر میدهد.
البته این مدل از نسخهگذاری به کمپانی canonical محدود نمیشود، برای مثال React، Vue و خیلی از محصولهای مشهور دیگر هم از این مدل بهره میبرند.
ساختار کلی نسخهگذاری با معنا
بهطور عمده، در این مدل از نسخهگذاری از سه عدد که توسط «.» از هم جدامیشوند، استفاده میشود.
نسخههای پچ (Patch versions)
عدد سمت راست (12)، را نسخهپچ مینامند. از نسخه پچ برای رفع اشکالها (bugfixes) استفاده میشود، و هیچکدام از تغییرهای عملکردی ابزار، در این گروه قرار نمیگیرد. وقتی یک پچ به ابزار اضاف میشود، به عدد پچ، یک شماره میافزاییم و هیچ محدودیتی در این افزایش شماره وجود ندارد.
نسخههای جزئی (Minor versions)
به عدد میانی، minor version یا نسخهجزئئ گفته میشود. این عدد، نشان دهنده قابلیتهای جدیدی است که به ابزار اضافه و منتشر شدهاند. هنگامی که شما یک قابلیت جدید اضاف میکنید نیز این عدد را یک واحد افزایش میدهید، در این صورت با اضافه شدن قابلیتهای جدید، نسخهپچ را به عدد 0 بازمیگردانید.
نسخههای عمده (Major versions)
همانطور که در عکس مشاهده میکنیم، عدد سمت چپ بعد از انجام تغییرهای عمده در ابزار یک واحد افزایش پیدا میکند و دیگر اعداد اعم از نسخهپچ و نسخهجزئی، صفر میشوند. با این کار ما به کاربران خود میفهمانیم تغییرهای ایجاد شده نسخه فعلی را با نسخه پیشین متمایز میسازد.
پیشنسخهها (Pre-releases)
اگر میخواهید پیشنسخه (مانند نسخه آلفا یا بتا) ایجاد کنید، میتوایند با یک «-» آن را در قبل از نسخهبندی اضافه کنید. هیچ قانون محدود کنندهای برای تعیین نام برای پیش نسخه ندارید، شما هرنام معقول و غیرمعقولی را استفاده کنید.
شروع پروژه
بیشتر افراد نسخهگذاری پروژههایشان را با 0.1.0 شروع میکنند، و هنگامی که پروژه برای انتشارعمومی حاضر بود نسخه آن را به 1.0.0 تغییر میدهند.
منبع: https://www.freecodecamp.org/news/semantic-versioning-1fd6f57749f7
توسعهدهندگان دربارهی ما چه میگویند
تجربه کار باliara_cloud@امروز خیلی خوب بود. یکی از سرویس هام رو منتقل کردم روش و راضیم. انقد سریع و جذاب کارم راه افتادم اصن باورم نمیشد! برعکس سرویس های PaaS دیگه با اون همه پیچیدگیشون. دمتون گرم
...
MohammadReza
keikaavousi
بعد از بسته شدن @fandoghpaas و ناراحتی همهمون از اینکه یه سرویس خوب و صادق نمیتونه از پس هزینهها بر بیاد، سرویسم رو منتقل کردم به پاس لیارا (https://liara.ir @liara_cloud) . تجربه راحت و خوب. تفاوتهایی داشت که کمی کار میخواست ولی تا الان کاملا راضی.
jadi
jadi
یه خسته نباشید باید به تصمیمliara_cloud@بگم،
بعد از چندین روز سرکله زدن با سرویس های مشابه بالاخره تصمیم گرفتم لیارا رو امتحان کنم و باور نمیشه ۱۰ دقیقه بیشتر وقت نبرد،
دمتون گرم.
Arch
EbadiDev
واسه سرویس PaaS با اختلاف لیارا بهترین رابط کاربری داره و یکی از مزیتهای سرویس دیتابیسشون اینه که خودشون به صورت دورهای بکآپ میگیرن.
...
Ali Najafi
me_ali_najafi
یکی از کارهای خوبی که جدیداً میکنم اینه که یه دیتابیس روی لیارا میسازم و به پروژه وصل میکنم اینطوری هم خونه و هم محل کار دیتابیس بروز رو دارم و راحت میتونم ادامه بدم کار روliara_cloud@
Navid
1navid
عاشقliara_cloud@شدم درسته در حد AWS نیست ولی خب تجربه خوبی واسه پروژه های داخل ایران ارائه میده، میتونم رو CD هم اجراش کنم
Amir H Shekari
vanenshi