Верзионисање софтвера
Верзионисање софтвера је процес додељивања јединствених назива верзија или јединствених бројева верзија јединственим стањима рачунарског софтвера. Најшире прихваћена шема за бројеве верзија позната је као семантичко верзионисање (SemVer), која се састоји од троделног броја верзије (Major.Minor.Patch), опционе ознаке претиздања (нпр. alpha, beta) и опционе ознаке метаподатака изградње. Четврти број се такође може користити за означавање изградње софтвера, као што је био случај за Adobe Flash. Неке компаније се такође ослањају на датум изградње, у систему познатом као календарско верзионисање, и слова и друге карактере, као што је Lotus 1-2-3 Release 1a.
Већина слободних и софтверских пакета отвореног кода, укључујући MediaWiki, третира верзије као низ појединачних бројева, раздвојених тачкама, са прогресијом као што је 1.8.1, 1.9.0. С друге стране, неки софтверски пакети идентификују издања помоћу децималних бројева: 1.8, 1.81, 1.82. Програмери могу да изаберу да прескоче више мањих верзија одједном како би указали да су додате значајне функционалности или из маркетиншких разлога. Бројеви верзија се често користе за идентификацију копија софтверског производа и њихово поређење са другом копијом у колаборативном систему за контролу верзија.
Унутар тимова за развој софтвера, контрола верзија се користи за праћење постепено различитих верзија информација како би се омогућило враћање било којих измена. Савремени рачунарски софтвер се често прати коришћењем две различите шеме верзионисања: интерни број верзије, који може бити повећан много пута у једном дану, и верзија издања, која се обично мења много ређе.
Историјски, бројеви датотека су се посебно користили у јавној управи и корпорацијама да јединствено идентификују датотеке или предмете. Ова пракса је по први пут уведена у рачунарске датотеке са MИТ-овим ITS системом датотека, касније TENEX системом датотека за PDP-10 1972. године. У 21. веку, све више програмера је почело да користи стандардизовану политику верзионисања, као што је политика семантичког верзионисања[1], која је посебно корисна када се користе софтверске библиотеке, оквири и апликације командне линије.
Историја
[уреди | уреди извор]Бројеви датотека су се користили посебно у јавној управи, као и у компанијама, да јединствено идентификују датотеке или предмете. За рачунарске датотеке ова пракса је по први пут уведена са МИТ-овим ITS системом датотека, касније TENEX системом датотека за PDP-10 1972.
Касније су додате листе датотека укључујући њихове верзије, и зависности међу њима. Linux дистрибуције као што је Debian, са својим dpkg, рано су креирале софтвер за управљање пакетима који је могао да решава зависности између њихових пакета. Први покушај Debian-а био је да пакет познаје друге пакете који зависе од њега. Од 1994. године ова идеја је обрнута, тако да пакет познаје пакете који су му потребни. Приликом инсталације пакета, резолуција зависности је коришћена да аутоматски израчуна потребне пакете и да их инсталира заједно са жељеним пакетом. Да би се олакшала ажурирања, уведене су минималне верзије пакета. Стога је шема нумерисања морала да показује која је верзија новија од захтеване.[2]
Шеме
[уреди | уреди извор]Засноване на идентификаторима секвенци
[уреди | уреди извор]У шемама верзионисања софтвера заснованим на секвенцама, сваком издању софтвера се додељује јединствени идентификатор који се састоји од једне или више секвенци бројева или слова.[3]Ово је опсег заједничког; шеме се значајно разликују у областима као што су број секвенци, приписивање значења појединачним секвенцама и начини повећавања секвенци.
Значај промене
[уреди | уреди извор]У неким шемама, идентификатори засновани на секвенцама се користе да пренесу значај промена између издања. Промене се класификују по нивоу значаја, а одлука о томе коју секвенцу променити између издања заснива се на значају промена у односу на претходно издање, при чему се прва секвенца мења за најзначајније промене, а промене у секвенцама након прве представљају промене опадајућег значаја.
У зависности од шеме, значај се може процењивати према линијама кода које су измењене, функцијским поенима који су додати или уклоњени, потенцијалном утицају на кориснике у смислу рада потребног да се усвоји нова верзија, ризику од грешака или непријављених некомпатибилних промена, степену промена у визуелном изгледу, броју нових функција, или готово било чему што програмери или маркетинг сматрају значајним, укључујући маркетиншку жељу да се нагласи „релативна доброта“ нове верзије.
Семантичко верзионисање
[уреди | уреди извор]Семантичко верзионисање[1] (такође познато као SemVer) је широко прихваћена шема верзионисања која кодира верзију троделним бројем верзије (Major.Minor.Patch), опционом ознаком претиздања и опционом ознаком метаподатака изградње. У овој шеми, ризик и функционалност су мере значаја. Некомпатибилне промене се означавају повећањем главног броја (велики ризик); нове, компатибилне функције повећавају мањи број (средњи ризик); а све друге компатибилне промене повећавају patch број (најнижи ризик). Присуство ознаке претиздања (-alpha, -beta) указује на значајан ризик, као и главни број нула (0.y.z), који се користи да означи рад у току који може садржати било који ниво потенцијално некомпатибилних промена (највећи ризик). Као пример закључивања компатибилности из SemVer верзије, софтвер који се ослања на верзију 2.1.5 неког API-ја је компатибилан са верзијом 2.2.3, али не нужно и са 3.2.4.
Остале шеме
[уреди | уреди извор]Четврти број се такође може користити за означавање изградње софтвера, као што је био случај за Adobe Flash. Неке компаније такође укључују датум изградње и слова и друге карактере, као што је Lotus 1-2-3 Release 1a.
Програмери могу изабрати да прескоче више мањих верзија одједном како би указали да су додате значајне функције, али недовољне да оправдају повећање главног броја верзије; на пример, Internet Explorer 5 од 5.1 до 5.5 или Adobe Photoshop 5 до 5.5. Ово може бити учињено да се нагласи вредност надоградње за корисника или, као у случају Adobe-а, да представи издање на пола пута између главних верзија (иако нивои верзионисања заснованог на секвенцама нису нужно ограничени на једну цифру, као у Blender верзији 2.91 или Minecraft Java Edition почев од 1.7.10 до 1.21.10, након чега је шема верзионисања прешла на формат заснован на години).
Другачији приступ је коришћење главних и мањих бројева заједно са алфанумеричким низом који означава тип издања, нпр. „alpha“ (a), „beta“ (b) или „release candidate“ (rc). Низ издања софтвера који користи овај приступ може изгледати као 0.5, 0.6, 0.7, 0.8, 0.9 → 1.0b1, 1.0b2 (са неким исправкама), 1.0b3 (са више исправки) → 1.0rc1 (ако је довољно стабилан), 1.0rc2 (ако се пронађе више грешака) → 1.0. Уобичајена пракса у овој шеми је да се нове функције и некомпатибилне промене „закључају“ током фаза release candidate, а код неких тимова чак и током бета фазе, остављајући само исправке грешака, како би се осигурало приближавање циљном издању.
Друге шеме дају значење појединачним секвенцама:
major.minor[.build[.revision]] (пример: 1.2.12.102)
major.minor[.maintenance[.build]] (пример: 1.4.3.5249)
Поново, у овим примерима, дефиниција шта представља „главну“ у односу на „мању“ промену је потпуно субјективна и зависи од аутора, као и шта дефинише „build“, или како се „revision“ разликује од „мање“ промене.
Дељене библиотеке у Linux-у и Solaris-у могу користити формат current.revision.age где:[4] [5]
current: Најновији број интерфејса који библиотека имплементира.
revision: Број имплементације тренутног интерфејса.
age: Разлика између најновијег и најстаријег интерфејса који библиотека имплементира. Ова употреба трећег поља је специфична за libtool: други могу користити другачије значење или га једноставно игнорисати.
Сличан проблем релативног значаја промена и номенклатуре верзија постоји у издаваштву књига, где се бројеви или називи издања могу бирати на основу различитих критеријума.
У већини власничког софтвера, прва објављена верзија софтверског производа има верзију 1.
Степен компатибилности
[уреди | уреди извор]Неки пројекти користе главни број верзије да означе некомпатибилна издања. Два примера су Apache Portable Runtime (APR)[6] и FarCry CMS.
Често програмери пишу нови софтвер тако да буде уназад компатибилан. На пример, IBM z/OS је дизајниран да ради исправно са 3 узастопне главне верзије оперативног система који ради у истом sysplex-у. Ово омогућава људима који управљају кластером високе доступности да већину рачунара одржавају у раду док се једна машина искључује, надограђује и враћа у рад.[7]
Често заглавља пакета и формати датотека садрже број верзије - понекад исти као број верзије софтвера који га је направио; у другим случајевима „верзија протокола“ независна од верзије софтвера. Код за руковање старим, застарелим протоколима и форматима датотека често се сматра „cruft“-ом.
Означавање фазе развоја
[уреди | уреди извор]Софтвер у експерименталној фази (alpha или beta) често користи нулу у првој („главној“) позицији да означи свој статус. Међутим, ова шема је корисна само за ране фазе, а не за будућа издања код већ успостављеног софтвера[1] где је број верзије већ прешао 0.
Користи се више шема за означавање статуса новијег издања:
Алфанумерички суфикс је уобичајена шема усвојена у семантичком верзионисању.[1] У овој шеми, верзије имају додатак у виду цртице плус алфанумерички карактери који указују на статус.
Нумерички статус је шема која користи бројеве да означи статус као да је део секвенце. Типичан избор је трећа позиција у четворопозиционом верзионисању.
Нумерички 90+ је друга шема која користи бројеве, али испод броја претходне верзије. Велики број у последњој позицији, обично 90 или више, се користи. Ово се често користи код старијих open-source пројеката као што је Fontconfig.
Поређење показатеља фазе развоја
[уреди | уреди извор]Development stage | Semantic versioning | Numeric status | Numeric 90+
Alpha | 1.2.0-a.1 | 1.2.0.1 | 1.1.90
Beta | 1.2.0-b.2 | 1.2.1.2 | 1.1.93
Release candidate (RC) | 1.2.0-rc.3 | 1.2.2.3 | 1.1.97
Release | 1.2.0 | 1.2.3.0 | 1.2.0
Post-release fixes | 1.2.5 | 1.2.3.5 | 1.2.5
Две чисто нумеричке форме уклањају посебну логику потребну за поређење „alpha < beta < rc < без префикса“ као у семантичком верзионисању, по цену мање јасноће.
Већина слободних и отворених софтверских пакета, укључујући MediaWiki, третира верзије као низ појединачних бројева раздвојених тачкама, са прогресијом као што су 1.7.0, 1.8.0, 1.8.1, 1.9.0, 1.10.0, 1.11.0, 1.11.1, 1.11.2 и тако даље. С друге стране, неки софтверски пакети идентификују издања децималним бројевима: 1.7, 1.8, 1.81, 1.82, 1.9 итд. Децималне верзије су биле уобичајене 1980-их, на пример код NetWare, DOS и Microsoft Windows, али су чак и 2000-их коришћене, на пример код Opera [8] и Movable Type. [9] У децималном систему, 1.81 је мања верзија након 1.8, док се одржавајућа издања (нпр. само исправке грешака) могу означити словним суфиксом, као што је 1.81a или 1.81b.
Стандардна GNU шема нумерисања верзија је major.minor.revision, [10]али Emacs је значајан пример који користи другу шему где је главни број (1) изостављен и додата је ревизија корисничког сајта која је увек нула у оригиналним Emacs пакетима али се повећава код дистрибутера. Слично томе, бројеви Debian пакета имају префикс опционог „epoch“-а, који се користи да омогући промену шеме верзионисања.[11]
У неким случајевима, програмери могу одлучити да ресетују главни број верзије. Ово се понекад користи да означи нову фазу развоја која се објављује. На пример, Minecraft Alpha је ишао од верзије 1.0.0 до 1.2.6, а када је објављена Beta, главни број је ресетован и ишао је од 1.0 до 1.8. Када је игра у потпуности објављена, главни број верзије је поново ресетован на 1.0.0.[12]
Формат
[уреди | уреди извор]Неки пројекти користе негативне бројеве верзија. Један пример је SmartEiffel компајлер који је почео од −1.0 и бројао навише до 0.0.
Да би се олакшало сортирање, неки софтверски пакети представљају сваку компоненту шеме major.minor.release са фиксном ширином. Perl представља своје бројеве верзија као бројеве са покретним зарезом; на пример, Perl 5.8.7 може се представити као 5.008007. Ово омогућава да се теоретска верзија 5.8.10 представи као 5.008010. Други софтвер пакује сваки сегмент у фиксну ширину бита; на пример, на Microsoft Windows-у, број верзије 6.3.9600.16384 био би представљен као хексадекадни 0x0006000325804000. Шема са покретним зарезом се распада ако било који сегмент пређе 999; пакована бинарна шема са 16 бита по сегменту се распада након 65535.
Између верзија 1.0 и 2.6.x серије, Linux kernel је користио непарне мање бројеве верзије да означи развојна издања и парне мање бројеве да означи стабилна издања. На пример, Linux 2.3 је била развојна породица другог великог дизајна kernel-а, а Linux 2.4 стабилна породица у коју је 2.3 сазрела. Након мањег броја верзије у Linux kernel-у следи број издања у растућем редоследу; на пример, Linux 2.4.0 → Linux 2.4.22. Од издања 2.6 kernel-а 2004. године, Linux више не користи овај систем и има много краћи циклус издања.
Исти систем непарно/парно користи и неки други софтвер са дугим циклусима издања, као што је Node.js до верзије 0.12, као и WineHQ.[13]
Засновано на идентификаторима датума издања
[уреди | уреди извор]Многи пројекти користе шему верзионисања засновану на датуму која се назива календарско верзионисање (такође познато као CalVer[14]).
Ubuntu је један пример пројекта који користи календарско верзионисање; Ubuntu 18.04, на пример, објављен је у априлу 2018. Ово има предност што се лако може повезати са распоредом развоја и временским оквирима подршке. Неке видео игре такође користе датум као верзију, на пример аркадна игра Street Fighter EX. При покретању приказује број верзије као датум плус регионални код, на пример 961219 ASIA.
При коришћењу датума у верзионисању, на пример у именима датотека, уобичајено је користити ISO 8601 шему [15]YYYY-MM-DD, јер се она лако сортира као низ у растућем или опадајућем редоследу. Цртице се понекад изостављају. Пројекат Wine је раније користио шему верзионисања засновану на датуму, која је користила годину праћену месецом па даном издања; на пример, „Wine 20040505“. Најраније развојне верзије Minecraft-а имале су сличан формат, али су користиле DDHHMM, на пример rd-131655 је креиран 13. (маја 2009) у 16:21.
Microsoft Office build бројеви су кодирани датум: прве две цифре означавају број месеци који су прошли од јануара године у којој је пројекат започет (при чему је свака главна Office верзија различит пројекат), док последње две цифре означавају дан тог месеца. Тако је 3419 деветнаести дан тридесет четвртог месеца након јануара године у којој је пројекат започет.
Други примери који идентификују верзије по години укључују Adobe Illustrator 88 и WordPerfect Office 2003. Када се година користи за означавање верзије, то је обично из маркетиншких разлога, а стварни број верзије такође постоји. На пример, Windows 95 је интерно верзионисан као MS-DOS 7.00 и Windows 4.00; слично томе, Windows 2000 је интерно верзионисан као NT 5.0.[16]
Остале шеме
[уреди | уреди извор]Неки произвођачи софтвера користе различите шеме за означавање издања свог софтвера. Пројекат Debian користи шему главне/мање верзије за издања свог оперативног система, али користи кодна имена из филма Toy Story током развоја да би означио стабилна, нестабилна и тестна издања.
BLAG Linux и GNU користе веома велике бројеве верзија: главна издања имају бројеве као што су 50000 и 60000, док мања издања повећавају број за 1 (нпр. 50001, 50002). Alpha и beta издања добијају децималне бројеве верзије нешто мање од главног броја, као што је 19999.00071 за alpha 1 верзије 20000 и 29999.50000 за beta 2 верзије 30000. Почев од 9001 у 2003, најновија верзија од 2011. је 140000.[17]
Urbit користи Kelvin верзионисање (названо по апсолутној Kelvin температурској скали): верзије софтвера почињу од великог броја и броје се наниже до верзије 0, у којој се софтвер сматра завршеним и више се не мења.[18]
Предиздања
[уреди | уреди извор]У комбинацији са различитим шемама верзионисања наведеним горе, систем за означавање претиздања се генерално користи док програм пролази кроз фазе животног циклуса издања софтвера.
Програми који су у раној фази често се називају „alpha“ софтвер, по првом слову грчке азбуке. Након што сазру, али још нису спремни за објављивање, могу се називати „beta“ софтвер, по другом слову грчке азбуке. Генерално, alpha софтвер тестирају само програмери, док се beta софтвер дистрибуира за тестирање заједници.
Неки системи користе нумеричке верзије мање од 1 (као што је 0.9), да би указали на приближавање финалном „1.0“ издању. Ово је уобичајена конвенција у open source софтверу. Међутим, ако је претиздање за постојећи софтверски пакет (нпр. верзија 2.5), онда се „a“ или „alpha“ може додати броју верзије. Тако се alpha верзија издања 2.5 може означити као 2.5a или 2.5.a.
Алтернатива је означавање претиздања као „release candidate“, тако да софтвер који ће ускоро бити објављен као одређена верзија може носити ту ознаку праћену са „rc-#“, што означава број кандидата; када се финална верзија објави, „rc“ ознака се уклања.
Значај бројева верзија
[уреди | уреди извор]Технички значај бројева верзија
[уреди | уреди извор]У софтверском инжењерству
[уреди | уреди извор]Бројеви верзија се користе у практичне сврхе од стране корисника или клијента да идентификују или упореде своју копију софтверског производа са другом копијом, као што је најновија верзија коју је објавио програмер. За програмера или компанију, верзионисање се често користи на нивоу ревизија, где се појединачни делови софтвера пореде са новијим или старијим ревизијама тих истих делова, често у колаборативном систему за контролу верзија.
У 21. веку, све више програмера је почело да користи формализовану политику верзионисања, као што је политика семантичког верзионисања[1]. Сврха ових политика је да олакшају другим програмерима да знају када ће промене у коду вероватно „покварити“ ствари које су они написали. Такве политике су посебно важне за софтверске библиотеке и оквире, али могу бити веома корисне и за командно-линијске апликације и друге програме.
Release train
[уреди | уреди извор]„Release train“ софтвера је облик распореда издавања софтвера у којем се више различитих серија верзионисаних издања за више производа објављује као више различитих „возова“ по редовном распореду. Генерално, за сваку линију производа, више различитих release train-ова је активно у датом тренутку, при чему сваки „воз“ напредује од почетног издања до зрелости и повлачења по планираном распореду. Корисници могу експериментисати са новијим „возом“ пре него што га усвоје у продукцији.
Cisco-ова IOS софтверска платформа је дуги низ година користила овакав модел. Недавно су и друге платформе, укључујући Firefox, Fenix за Android[19], Eclipse, LibreOffice, Ubuntu, Fedora, Python, digiKam[20] и VMware, усвојиле модел release train-а.
Интерни бројеви верзија
[уреди | уреди извор]Софтвер може имати „интерни“ број верзије који се разликује од броја верзије приказаног у називу производа. Java SE 5.0, на пример, има интерни број верзије 1.5.0, а верзије Windows-а од NT 4 настављају да користе стандардне нумеричке верзије интерно: Windows 2000 је NT 5.0, XP је NT 5.1, Windows Server 2003 и Windows XP Professional x64 Edition су NT 5.2, Windows Server 2008 и Vista су NT 6.0, Windows Server 2008 R2 и Windows 7 су NT 6.1, Windows Server 2012 и Windows 8 су NT 6.2, а Windows Server 2012 R2 и Windows 8.1 су NT 6.3. Windows 10 је првобитно требало да буде NT 6.4, али је број повећан на 10.0 да би се ускладио са комерцијалним именом.[21]
Маркетиншки значај бројева верзија
[уреди | уреди извор]Честа пракса је прављење великих скокова у бројевима верзија из маркетиншких разлога. Понекад се прескаче верзија 1.0 јер се сматра недовољно зрелом. Такође се бројеви понекад повећавају да би се ускладили са конкуренцијом.
Промоција мањег као већег
[уреди | уреди извор]Sun Java је имала систем где је интерна верзија била 1.x, али је маркетиншки коришћен само x.
Политички и културни значај бројева верзија
[уреди | уреди извор]Верзија 1.0 као прекретница
[уреди | уреди извор]Open-source заједнице често објављују софтвер рано и често. Верзије 0.x означавају да софтвер није потпуно стабилан. Верзија 1.0 означава стабилан производ.
Примери софтвера
[уреди | уреди извор]Python
[уреди | уреди извор]Python Software Foundation је објавио PEP 440 - Version Identification and Dependency Specification[22], који дефинише сопствену флексибилну шему, која одређује сегмент епохе, сегмент издања, сегменте претиздања и пост-издања и сегмент развојног издања.
TeX
[уреди | уреди извор]TeX има идиосинкразијски систем нумерисања верзија, необичну особину коју је осмислио његов творац Доналд Кнут. Од верзије 3.1, ажурирања се означавају додавањем једне додатне цифре на крају, тако да број верзије асимптотски тежи броју π, тако да 3.14 ефективно значи 3.2 у семантичком верзионисању[1]. (Ово је облик унарног нумерисања; број верзије је број цифара.) Од 2021. године, број верзије је 3.141592653. Ово је одраз чињенице да је TeX веома стабилан и да се очекују само мања ажурирања. TeX програмер Доналд Кнут је изјавио да ће „апсолутно последња измена (која ће бити направљена након његове смрти)“ бити промена броја верзије у π, након чега ће све преостале грешке постати трајне функционалности.
На сличан начин, број верзије Metafont-а асимптотски тежи Ојлеровом броју e.[23] Од фебруара 2021, број верзије је 2.71828182. Metafont је такође осмислио Доналд Кнут као пратећи систем за TeX.
Apple
[уреди | уреди извор]Током ере класичног Mac OS-а, мањи бројеви верзија ретко су прелазили „.1“. Када би се то десило, обично би одмах скочили на „.5“, што је сугерисало да је издање „значајније“. Тако је „8.5“ био представљен као засебно издање, које представља „Mac OS 8 и по“, а 8.6 је ефективно значио „8.5.1“.
Mac OS X је одступио од овог тренда, углавном зато што је „X“ (римски број за 10) био у називу производа. Као резултат, све верзије OS X почињале су бројем 10. Прво велико издање OS X добило је број верзије 10.0, али следеће велико издање није било 11.0. Уместо тога, означено је као 10.1, затим 10.2, 10.3 и тако даље за свако наредно велико издање. Тако је 11. велико издање OS X означено као „10.10“. Иако је „X“ уклоњен из назива од macOS 10.12, ова шема нумерисања наставила се до macOS 10.15. У овој шеми заснованој на „X“, трећи број (уместо другог) означавао је мање издање, а додатна ажурирања испод тог нивоа, као и ажурирања за одређену главну верзију OS X након објављивања нове главне верзије, називана су Supplemental Updates.[24]
Римски број X је истовремено коришћен у маркетиншке сврхе у више линија производа. QuickTime и Final Cut Pro су прешли директно са верзије 7 на верзију 10, као QuickTime X и Final Cut Pro X. Као и Mac OS X, ови производи нису били надоградње претходних верзија, већ потпуно нови програми. Као и код OS X, главна издања ових програма повећавала су други број, а мања издања су означавана трећим бројем. „X“ је уклоњен из назива Final Cut-а са издањем macOS 11.0, а брендирање QuickTime-а је постало ирелевантно када је framework замењен AVFoundation-ом 2011. године.
Следеће издање macOS-а, привремено означено као 10.16[25], званично је најављено као macOS 11 на WWDC у јуну 2020, и објављено у новембру 2020[26]. Наредна верзија, macOS Monterey, објављена је у октобру 2021. и повећала је главни број верзије на 12.[27]
У јуну 2025, Apple је најавио уједињену шему верзионисања, користећи годину поред датума издања, слично моделским годинама код возила. Верзије објављене у јесен 2025. су iOS 26, macOS 26, iPadOS 26, tvOS 26, watchOS 26 и visionOS 26.
Microsoft Windows
[уреди | уреди извор]Оперативни систем Microsoft Windows је првобитно био означаван стандардним бројевима верзија за Windows 1.01 до Windows 3.2. Након тога Microsoft је изоставио број верзије из назива производа. За Windows 95 (верзија 4.0), Windows 98 (4.10) и Windows 2000 (5.0), година издања је укључена у назив производа. Након Windows 2000, Microsoft је креирао Windows Server породицу која је наставила стил заснован на години, са разликом да су мања издања добијала суфикс „R2“, нпр. Windows Server 2008 R2 (верзија 6.1).
Клијентске верзије Windows-а нису усвојиле конзистентан стил. Прво су добијале називе са произвољним алфанумеричким суфиксима као што су Windows Me (4.90), Windows XP (5.1) и Windows Vista (6.0). Затим је Microsoft поново увео бројеве у назив, али они нису били стварни бројеви верзије; Windows 7, Windows 8 и Windows 8.1 имају верзије 6.1, 6.2 и 6.3. Код Windows 10 број верзије је скочио на 10.0, а каснија ажурирања повећавају само build број и UBR.
Наследник Windows 10, Windows 11, објављен је 5. октобра 2021. Упркос имену „11“, ново издање није повећало главни број верзије на 11, већ је остало на 10.0.[28]
Референце
[уреди | уреди извор]- ^ а б в г д ђ Preston-Werner, Tom. „Semantic Versioning 2.0.0”. Semantic Versioning (на језику: енглески). Приступљено 2026-03-31.
- ^ „Debian -- The Universal Operating System”. www.debian.org. Приступљено 2026-03-31.
- ^ peps.python.org”. Python Enhancement Proposals (PEPs) (на језику: енглески). Приступљено 2026-03-31.
- ^ „Library Interface Versioning in Solaris and Linux”. static.usenix.org. Приступљено 2026-03-31.
- ^ „Libtool”. www.gnu.org. Архивирано из оригинала 28. 12. 2024. г. Приступљено 2026-03-31.
- ^ „Versioning Numbering Concepts – The Apache Portable Runtime Project”. apr.apache.org. Приступљено 2026-03-31.
- ^ Kyne, Frank; Beer, Bert de; Martinez, Luis; Morril, Harriet; Petric, Miha; Viguers, David; Wendler, Suzi; Redbooks, I. B. M. (2011-01-11). System z Parallel Sysplex Best Practices (на језику: енглески). IBM Redbooks. ISBN 978-0-7384-3467-4.
- ^ Opera (company) (на језику: енглески), 2026-03-26, Приступљено 2026-03-31
- ^ movabletype. „Home”. GitHub (на језику: енглески). Приступљено 2026-03-31.
- ^ „Releases (GNU Coding Standards)”. www.gnu.org. Приступљено 2026-03-31.
- ^ „5. Control files and their fields — Debian Policy Manual v4.7.4.0”. www.debian.org. Приступљено 2026-03-31.
- ^ „Java Edition version history”. Minecraft Wiki (на језику: енглески). Приступљено 2026-03-31.
- ^ „Node.js is SemVer”. The NodeSource Blog - Node.js Tutorials, Guides, and Updates (на језику: енглески). 2015-09-15. Приступљено 2026-03-31.
- ^ „Calendar Versioning — CalVer”. calver.org. Приступљено 2026-03-31.
- ^ „International standard date and time notation”. www.cl.cam.ac.uk. Приступљено 2026-03-31.
- ^ „What does the "NT" stand for in Windows NT?”. pc.net. Приступљено 2026-03-31.
- ^ „DistroWatch.com: Put the fun back into computing. Use Linux, BSD.”. distrowatch.com. Приступљено 2026-03-31.
- ^ „Kelvin Versioning · jtobin.io”. jtobin.io. Приступљено 2026-03-31.
- ^ „Firefox Release Calendar”. Firefox Release Calendar (на језику: енглески). Приступљено 2026-03-31.
- ^ „Release Plan & Changelog”. digiKam (на језику: енглески). 2018-03-25. Приступљено 2026-03-31.
- ^ Tyrsina, Radu (2014-11-21). „Windows 10 NT kernel gets bumped from 6.4 to 10 in recent internal builds”. Windows Report (на језику: енглески). Приступљено 2026-03-31.
- ^ peps.python.org”. Python Enhancement Proposals (PEPs) (на језику: енглески). Приступљено 2026-03-31.
- ^ E (константа) (на језику: српски), 2025-05-06, Приступљено 2026-03-31
- ^ „Apple Releases macOS 10.13.3 Supplemental Update With Telugu Crash Fix”. MacRumors (на језику: енглески). 2018-02-19. Приступљено 2026-03-31.
- ^ Gallagher, William (2020-06-23). „Apple turns macOS up to 11 - or to 10.16”. AppleInsider (на језику: енглески). Приступљено 2026-03-31.
- ^ Heater, Brian (2020-06-22). „Apple unveils macOS 11.0 Big Sur, featuring a new aesthetic and redesigned apps”. TechCrunch (на језику: енглески). Приступљено 2026-03-31.
- ^ Looper, Christian de (2021-10-07). „Apple macOS Monterey: Everything we know so far”. BGR (на језику: енглески). Приступљено 2026-03-31.
- ^ Blog, Windows Experience; Panay, Panos (2021-10-04). „Windows 11: A new era for the PC begins today”. Windows Experience Blog (на језику: енглески). Приступљено 2026-03-31.