Какво означават версиите на програмите?¶
Често чуваме коментари за “новата” версия на дадена програма или пък “тази версия е прекалено стара”. Но всъщност какво представляват версиите на програмите и защо са необходими?
Версията е наименование, което указва определен момент от развитието на дадена програма. Един софтер може да бъде усъвършенстван безкрайно дълго време. Но за да може той да достигне до потребителите, в определен момент се приема, че е достигнат достатъчно завършен вид за ползване. Тогава се публикува (жаргонно “пуска”) нова версия. Самата версия си има наименование, което най-често се състои от комбинация от числа.
Версията на една програма най-често се изразява с две или три числа, както и опционално кодово име. Например:
- QGIS 3.16.0 Hannover
- QGIS 3.10.7 LTS A Coruña
- Ubuntu 20.04 Focal Fosa
- GDAL 3.2.1
Главни, второстепенни и поправителни версии¶
Числата, които описват версията на един софтуер са две или три на брой и разделени с точка. Например 1.2.3
, 72.30.11
, 10.20.0-beta
. Най-често
Първото число представлява главната или основната (major) версия. При промяна на главната версия се очакват радикални промени по външния вид и начина на работа с програмите, както и несъвместимости с вече създадени файлове, настройки и разширения. Възможно е някои функционалности да променят начина си на работа или изцяло да бъдат премахнати. Тези версии носят несъвместими промени спрямо предходните. Такива несъвместимости са необходими, за да може програмата да се отърси от остарели или грешно проектирани части от изходния код. Това число задължително е нарастващо.
Забележка!
При някои програми главната версия страда от голямо вмешателство на маркетинговия отдел на съответната организация и промяната на версията не носи несъвместими промени. Типичен пример за това са браузърите (Firefox и Chromium), които са възприели модел на нова главна версия на всеки няколко седмици, но очевидно браузърите продължават да си работят съвместимо спрямо предходните версии.
Друг момент е, че главните версии не е задължително да бъдат последователни числа. Някои програми използват текущата година като главна версия (напр. 2021).
Второто число представлява второстепенната (minor) версия. Промяна на второстепенната версия обикновено означава добавяне на нова функционалност към програмата, без това да дава отражение на вече съществуващите възможности. Това означава, че всички файлове, настройки, проекти и разширения, създадени в по-стара второстепенна версия ще продължат да работят до излизане на нова главна версия. Всеки един софтуерен проект се стреми да публикува възможно най-дълго съвместими второстепенни версии. Числото на второстепенната версия нараства, до момента на публикуване на нова главна версия.
Забележка!
Второстепенните версии не е задължително да бъдат последователни числа. Някои програми използват текущия месец като главна версия (напр. Ubuntu 20.04 е версия публикувана през април 2020 година, а 20.10 - през октомври 2020).
Третото число представлява поправителната (bugifx) версия. Промяната на поправилтелната версия не носи нито нестъвместими промени, нито нови функционалности, а само и единствено поправя бъгове във вече наличните функционалности. Всеки софтуерен проект се стреми да минимализира нуждата от поправителни версии, затова често това число се избягва от маркетинговите отдели. Всъщност наличието на поправителни версии трябва да се счита за голямо преимущество за проекта, тъй като авторите му се грижат за безупречната работа на потребителите си, тъй като всеки един софтуер има бъгове, просто някои не си признават. Числото на поправителната версия нараства, до момента на публикуване на нова второстепенна версия.
Кодови наименования¶
Често програмите освен числово име на версията, имат и кодово наименование. В QGIS проекта това е мястото, където се е провела последната версия на QGIS разработчиците, в Убунту е комбинацията между прилагателно и животно, започващи с една и съща буква (Focal Fosa, Trusty Tahr, Groovy Gorilla etc). Най-често кодовите наименования се използват от маркетинговите отдели и в разговорната реч.
Нулеви версии¶
В началото от живота си, всяка една програма преживява драстични промени. Това включва пълно пренаписване на част от изходния код, пълна промяна или дори премахване на дадена функционалност и прочие. Това прави програмата нестабилна откъм налична функционалност. За да се укаже на потребителите, че даден софтуер е все още в активната фаза на проектиране и разработка, но все пак може да бъде използван на собствен риск, че сто разработчиците публикуват нулеви версии. Те следват същата логика като второстепенните и поправителните версии описани по-горе, на основната версия е маркирана с числото 0
(напр. 0.69.0
, 0.101.3
, 0.1
). Когато разработчиците преценят, че не се очакват нови драстични промени, те публикуват първата стабилна версия, която най-често се обозначава с 1.0.0
.
Работни версии¶
Работна версия на даден софтуер (nightly build), буквално версията, която се получава всяка вечер след приключване на работа на програмистите. Това са крайно нестабилни версии, които нерядко не могат дори да стартират. Целта им е да се използват за тестване и демонстриране на нова функционалност и далеч не за ежедневна употреба.
Предварителни, алфа, бета и кандидат версии¶
Преди публикуването на нова главна или второстепенна версия на даден софтуер е необходимо да се провери дали той работи както се очаква. За целта се правят предварителни версии (prerelease), които са достъпни за ограничен кръг потребители, най-често доброволци и ентусиасти, които да проверят дали очакваната нова версия работи правилно. Тези предварителни версии се делят основно на три:
- алфа версиите все още имат активен процес на разработка и са крайно нестабилни за използване. Използват се за първоначална обратна връзка на нови функционалности, които може и да не са напълно завършени. Със завършването на алфа версията се постига замразяване на добавяне на функционалност и се смята за версия със завършена функционалност. Пример за алфа версия е
1.2.0-alpha
- бета версиите започват когато софтуера достигне етап на завършена функционалност и активната разработка е приключила. Може да съдържа редица знайни и незнайни бъгове, като с приключването на периода на бета версията бъговете ще бъдат отстранени. Бета версиите често биват тествани и от крайните клиенти. Примери за бета версии са
1.1.0-beta1
,1.2.0-beta2
,1.2.0-beta3
. - кандидат версиите могат да бъдат публикувани като следващата стабилна версия, ако не им се открият нови бъгове. Най-често кандидат версиите са повече от една, докато се изчистят всички новооткрити бъгове. Примери за кандидат версии са
1.2.0-rc1
,1.2.0-rc2
.
Забележка!
Някои маркетингови отдели считат думата “бета” за носеща отрицателно значение и предпочитат да използват различни термини, като “вътрешна версия” (insider release) или “версия за преглед” (preview release), но най-често става дума просто за бета версия.
Дългосрочно поддържани версии (LTS/LTR)¶
Версията на даден софтуер, която се поддържа за по-дълъг период от време спрямо обичайното (Long-Term Support/Release). Това включва поправяне на бъгове и отговаряне на въпроси свързани със софтуера. Тези версии обикновено се използват в големи организации, където има централен контрол над използвания софтуер и се цели по-голяма стабилност, отколкото нова функционалност.