خانه وبلاگ متفرقه آشنایی با نسخه بندی معنایی (SemVer) نرم افزارها

آشنایی با نسخه بندی معنایی (SemVer) نرم افزارها

وبلاگ - متفرقه

همه کسانی که با دنیای کامپیوتر و نرم افزار به هر شکلی در ارتباط هستند کم و بیش با تغییرات نسخه های مختلف یک نرم افزار آشنایی دارند. برای مثال همه میدانند که بسته Office 2010 از Office 2007 جدیدتر است و قابلیت های بیشتری دارد یا نسخه گوگل کروم 35 از نسخه 34 آن بهتر و جدیدتر است. اما این نسخه بندی ها به چه شکلی انجام می شود. بعضی از نسخه بندی ها مانند مثال Office از نسخه بندی سال انتشار استفاده می کنند و در هر سالی که آن نرم افزار انتشار یابد، شماره نسخه نیز برابر شماره همان سال خواهد شد.

اما نسخه بندی دیگری نیز با نام نسخه بندی معنایی (Semantic Versioning) یا به اختصار SemVer نیز وجود دارد که امروزه بیشتر برنامه ها و کتابخانه ها از این نسخه بندی استفاده میکنند.

نسخه بندی SemVer یا نسخه بندی معنایی از سه قسمت اصلی تشکیل شده است که فرمت آن به شکل x.y.z است:

x که مشخص کننده نسخه اصلی نرم افزار است (Major Version)
y که مشخص کننده تغییرات و ویژگی های جزئی اضافه شده به نسخه اصلی است (Minor Version)
و z که مشخص کننده باگ ها و خطاهای رفع شده از نسخه اصلی و تغییرات اضافه شده است (Patch)

بنابراین x.y.z را میتوان Major.Minor.Patch نیز دانست.

 

اما این اعداد چگونه اضافه میشوند؟

 

اگر شما تنها خطایی که در نسخه فعلی نرم افزار موجود است را رفع کنید یک عدد به z اضافه خواهد شد.
اگر تغییرات و ویژگی هایی به نرم افزار اضافه شود که با APIهای موجود در نسخه قبلی نرم افزار سازگار باشند یک عدد به y اضافه می شود.
اما اگر تغییرات و ویژگی های اضافه شده به نرم افزار با APIهای نسخه قبلی سازگار نباشند یک عدد به x اضافه خواهد شد.

 

چرا نسخه بندی معنایی؟

 

اما چرا باید از این نسخه بندی استفاده کرد؟ چرا نباید خودمان اعداد را به دلخواه تعیین کنیم؟ برای مثال وضعیتی را در نظر بگیرید که برنامه شما وابستگی به یک کتابخانه دارد، به عنوان نمونه من یک برنامه نوشته ام که با نسخه jQuery 1.8.3 به خوبی کار میکند و این برنامه را به دیگران می دهم تا از آن استفاده کنند اما از کجا میتوانم مطمئن شوم که برنامه من با نسخه های بعدی jQuery نیز سازگار باشد برای مثال نسخه jQuery 1.9؟

در این موارد اگر jQuery از نسخه بندی معنایی استفاده کرده باشد تا زمانی که APIهای این کتابخانه در نسخه جدید تغییری نکند هیچ زمانی شماره Major یا x را افزایش نمی دهد بنابراین من میتوانم مطمئن باشم که برنامه من با تمام نسخه های jQuery 1  سازگار است چه اولین نسخه آن و چه آخرین نسخه آن. اما برای نسخه jQuery 2 باید بازنگری در برنامه ایجاد شود. به این صورت شما  می توانید به راحتی به کاربران و همچنین خودتان اطمینان خاطر بدهید که برنامه شما با تمام نسخه های jQuery 1 سازگار است.

حالا اگر برنامه شما به چندین کتابخانه وابستگی داشته باشد،  نسخه بندی معنایی واقعا یک منجی برای شماست. توجه کنید که اولین شماره در نسخه بندی معنایی از 0.1.0 شروع خواهد شد و زمانی که اطمینان یافتید برنامه آماده انتشار است به نسخه 1.0.0 میروید و تا زمانی که به نسخه 1.0.0 نرسیدید برنامه شما در حالت توسعه قرار دارد.

 

نسخه های قبل از انتشار

 

معمولا قبل از انتشار نسخه های Major، تست های نرم افزار انجام می شود که معمولا با نام هایی از قبیل alpha, beta و rc مشخص می شوند. برای مشخص کردن نسخه های تست Major از خط تیره استفاده می شود. برای مثال:


1.0.0-alpha.1
1.0.0-alpha.2

منبع : aparnet.ir

 

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

ایمن شده بوسیله وب سایت تک وب دیزاین تک وب دیزاین