همه چیز در مورد Semantic versioning



visibility  
mode_comment   ۰

همه چیز در مورد Semantic versioning

در این مطلب میخوایم یاد بگیریم که Semantic versioning یا SemVer چه چیزی هست و چه کاربردی دارد. شما با استفاده از Semantic versionig میتونین نرم‌افزار یا ابزاری که توسعه میدید رو بصورت استاندارد منتشر کنید و در اختیار کاربران قرار بدین.

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

زمانی که از Git هم استفاده میکنیم و بصورت تیمی بر روی چیزی کار میکنیم و اون رو توسعه میدیم، برای اینکه کدهای خودمون رو با دیگران به اشتراک بزاریم و اونا نیز بتونن از اون استفاده کنند، از اعدادی مثل 1.0.0 استفاده میکنیم و به کاربران میگیم که این نسخه رو دانلود و نصب کنند.

مثلا فرض کنید که از Node استفاده میکنیم و میخوایم با استفاده از npm که مدیریت کننده بسته‌ها هست، lodash رو نصب کنیم. در حال حاضر آخرین نسخه این ابزار 4.7.11 هست. پس برای نصب اون میتونیم بصورت زیر عمل کنیم:

میبینید که به راحتی ورژن 4.7.11 رو نصب کردیم.

پس همونطور که دیدید با استفاده از نسخه‌بندی میتونیم پیشرفت پروژه خودمون رو به کاربران نشون بدیم و به کاربر بفهمونیم که به چه علت ورژن جدید منتشر شده است.

هر کدام از این اعداد معنای خاصی در استاندارد Semantic versioning دارند که در ادامه اونا رو بهتون توضیح میدم.

در گذشته بیشتر از اعداد استفاده میشد و همینطور اون رو بالا میبردیم. مثلا از نسخه 1 شروع میشد و بعد از اون 2 و 3 و الی آخر. با اینکار فقط داریم مشخص میکنیم که یک ورژن جدید منتشر شده و باید توضیحاتی رو در مورد اون بدیم که چه تغییراتی در اون ورژن داده شده است.

اما در SemVer اطلاعات دیگری نیز در اختیار کاربران و دیگر هم تیمی‌ها و کسانی که از این پروژه استفاده میکنن، قرار میگیره که بدردشون میخوره.

مثلا فرض کنید که شما یک ابزار نوشتید که بقیه میتونن اون رو نصب و استفاده کنند. حالا شما یک تغییری رو در اون به وجود میارید و نسخه جدید رو منتشر میکنید. اگر از قواعد SemVer استفاده کرده باشید، کاربر متوجه میشه که باید با احتیاط ابزار شما رو بروزرسانی بکنه یا خیر. چون اگر اشتباها ابزار رو update بکنه و چیزی در کد شما تغییر اساسی کرده باشه، پروژه کاربر با مشکل روبرو میشه.

پس با استفاده از اعدادی که در Semantic versioning مشخص میشه، میتونین نوع تغییری که در پروژه به وجود اومده رو مشخص کنید و از اونجایی که SemVer در بیشتر پروژه‌ها پشتیبانی میشه، همه اون رو متوجه میشن و باهاش به خوبی ارتباط برقرار میکنن.

فهمیدن Semantic versioning یا نسخه‌بندی معنایی

متخصص وردپرس
قالب ها و پلاگین های حرفه ای وردپرس رو خودت بنویس! بازار طراحی قالب و پلاگین نویسی وردپرس به شدت داغه و اگر بلد باشید با برنامه نویسی اختصاصی، قالب ها و پلاگین های دلخواه بنویسید تو مارکت های مطرح دنیا و یا از طریق فریلنسری می تونید به درآمد بالا برید. دوره متخصص وردپرس سون لرن رو حتما ببینید: متخصص وردپرس arrow_back

یک ورژن که از قواعد SemVer تبعیت میکنه، از 3 عدد تشکیل شده. MAJOR.MINOR.PATCH یا اصلی.جزئی.وصله.

شما نسخه وصله یا Patch version

این عدد در آخر نسخه‌بندی قرار داده میشه. زمانی این عدد رو افزایش بدید که یک باگ رو در سیستم خودتون پیدا کرده و اون رو برطرف کردید و هیچ تغییری در functionality سیستمتون به وجود نیومده است.

more  بیشتر بخوانید : شروع کار با ARIA در HTML

مثلا اگر Patch version فعلی 9 باشد، زمانی که یک باگ رو برطرف کنید تبدیل به 10 میشه و همینطور یکی یکی اضافه میشه مثلا 11 و 12 و الی آخر و هیچ محدودیتی هم وجود نداره و میتونه تا هر عددی که بخواید اون رو بالا ببرید.

شماره نسخه جزئی یا Minor version

شماره‌ای که در وسط قرار میگیره رو Minor version میگن. این مورد رو زمانی اضافه میکنید که یک ویژگی جدید رو به پروژه خودتون اضافه کردید و با نسخه قبل سازگار هست. نسخه جزئی رو نیز همانند Patch version باید یکی یکی بالا ببرید.

نکته‌ای که وجود داره اینه که زمانی که Minor رو یکی بالا میبرید باید شماره Patch رو مجددا تبدیل به 0 کنید. یعنی اگر قبل از بالا بردن Minor، ورژن 0.1.32 باشه با بالا بردن minor تبدیل به 0.2.0 میشه. حالا اگر بعد از مدتی دوباره باگ پیدا کردید میتونین اون رو بصورت 0.2.1 و ... در بیارید.

شماره نسخه اصلی یا Major version

عددی که در ابتدا و سمت چپ قرار میگیره رو Major version میگن. زمانی که یک تغییر اساسی در پروژتون به وجود میارید و کلا با چیزی که قبلا وجود داشت فرق میکنه و دیگه با کدهای قبلی سازگار نیست (Backward-compatible نیست)، باید نسخه اصلی یا Major رو یکی بالا ببرید.

کاربرانی که از پروژه شما استفاده میکنن اگر اقدامات لازم رو برای سازگار سازی نسخه جدید انجام ندن با مشکل مواجه خواهند شد. زمانی که نسخه Major رو یکی اضافه میکنید، نسخه های Minor و Patch رو باید 0 کنید.

نسخه‌های قبل از نسخه Stable

اگر شما بخواید از نسخه‌ای استفاده کنید که Pre-release باشه و قبل از نسخه Stable باشه، میتونین از کلمات beta یا alpha بعد از - استفاده کنید.

قواعد سفت و سختی برای این مورد وجود نداره و شما میتونین هر چیزی که خواستید رو برای نسخه مورد نظر قرار بدین. معمولا از alpha یا beta استفاده میشه و بعد از اون یک عدد قرار میگیره و همینطور به اون افزوده میشه. مثلا 0.0.1-beta1 و 0.0.1-beta2 و ...

اولین نسخه برای شروع یک پروژه جدید

بیشتر افراد زمانی که میخوان پروژه جدیدی رو شروع کنند، از نسخه 0.1.0 شروع میکنن. زمانی هم که آماده منتشر کردن پروژه شدید میتونین ورژن رو بصورت 1.0.0 در بیارید.

پس حواستون باشه که وقتی نسخه جدیدی از یک ابزار منتشر میشه به درستی اون رو به روزرسانی کنید تا مشکلی در کدهاتون به وجود نیاد. شما میتونین در Change Log هر پروژه تغییرات مربوط به نسخه جدید رو ببینید و راهنمای اون رو مطالعه کنید.

نتیجه گیری

در این مطلب یاد گرفتیم که Semantic versioning چی هست و چه کاربردی داره و چطوری میتونیم از اون برای نسخه‌بندی استفاده کنیم.

comment دیدگاه کاربران

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.