Кіріспе
Әрбір бағдарламалық жасақтама жаңартуына бірегей идентификатор беру.
Software versioning is the process of assigning either unique version names or unique version numbers to unique states of computer software. Within a given version number category (e. g., major or minor), these numbers are generally assigned in increasing order and correspond to new developments in the software. At a fine grained level, revision control is used for keeping track of incrementally different versions of information, whether or not this information is computer software, in order to be able to roll any changes back. Modern computer software is often tracked using two different software versioning schemes: an internal version number that may be incremented many times in a single day, such as a revision control number, and a release version that typically changes far less often, such as semantic versioning
Later lists of files including their versions were added, and dependencies amongst them. Linux distributions like Debian, with its dpkg, early on created package management software which could resolve dependencies between their packages. Debian's first try was that a package knew other packages which depended on it. From 1994 on this idea was inverted, so a package that knew the packages it needed. When installing a package, dependency resolution was used to automatically calculate the packages needed as well, and install them with the desired package. To facilitate upgrades, minimum package versions were introduced. Thus the numbering scheme needed to tell which version was newer than the required one.
Бағдарламалық жасақтама нұсқаларын құру – компьютерлік бағдарламалық жасақтаманың ерекше күйлеріне ерекше нұсқа атауларын немесе ерекше нұсқа нөмірлерін тағайындау процесі. Белгілі бір нұсқа санатында (мысалы, негізгі немесе қосымша) бұл нөмірлер көбінесе өсу ретімен беріледі және бағдарламалық жасақтамадағы жаңа өзгерістерге сәйкес келеді. Нақтырақ айтқанда, өзгерістерді кері қайтару үшін, бұл ақпарат компьютерлік бағдарламалық жасақтама болсын болмасын, ақпараттың түрлі нұсқаларын қадағалау үшін нұсқалық басқару қолданылады. Қазіргі заманғы компьютерлік бағдарламалық жасақтама көбінесе екі түрлі бағдарламалық жасақтама нұсқалау схемаларын пайдалану арқылы қадағаланады: бір күні бірнеше рет өзгеруі мүмкін ішкі нұсқа нөмірі, мысалы, нұсқалық басқару нөмірі, және әдетте әлдеқайда сирек өзгеріп отыратын шығарылым нұсқасы, мысалы, семантикалық нұсқалау. Кейіннен файлдардың тізімі, олардың нұсқаларын және олардың арасындағы тәуелділіктерді қоса алғанда, қосылды. Debian сияқты Linux дистрибутивтері, dpkg бағдарламасымен бірге, бастапқыда пакеттері арасындағы тәуелділіктерді шеше алатын пакеттерді басқару бағдарламалық жасақтамасын жасады. Debian-ның алғашқы әрекеті – пакет өзіне тәуелді басқа пакеттерді білуі. 1994 жылдан бастап бұл идея кері қайтарылды, яғни пакет өзіне қажетті пакеттерді білуі. Пакетті орнату кезінде тәуелділіктерді шешу қажетті пакеттерді автоматты түрде есептеу және оларды қажетті пакетпен бірге орнату үшін пайдаланылды. Жаңартуларды жеңілдету үшін ең төменгі пакет нұсқалары енгізілді. Осылайша, нөмірлеу схемасы қай нұсқаның қажетті нұсқадан жаңа екенін анықтауға қажеттілік туды.
Software versioning is the process of assigning either unique version names or unique version numbers to unique states of computer software. Within a given version number category (e. g., major or minor), these numbers are generally assigned in increasing order and correspond to new developments in the software. At a fine grained level, revision control is used for keeping track of incrementally different versions of information, whether or not this information is computer software, in order to be able to roll any changes back. Modern computer software is often tracked using two different software versioning schemes: an internal version number that may be incremented many times in a single day, such as a revision control number, and a release version that typically changes far less often, such as semantic versioning
Later lists of files including their versions were added, and dependencies amongst them. Linux distributions like Debian, with its dpkg, early on created package management software which could resolve dependencies between their packages. Debian's first try was that a package knew other packages which depended on it. From 1994 on this idea was inverted, so a package that knew the packages it needed. When installing a package, dependency resolution was used to automatically calculate the packages needed as well, and install them with the desired package. To facilitate upgrades, minimum package versions were introduced. Thus the numbering scheme needed to tell which version was newer than the required one.
Схемалар
Бағдарламалық қамтамасының әртүрлі нұсқаларын қадағалау үшін әртүрлі нөмірлеу жүйелері құрастырылған. Компьютерлердің кең таралғандығы осы жүйелердің компьютерлік саладан тыс жерлерде де қолданылуына себеп болды.
Реттік негіздегі идентификаторлар
Реттік нөмірлеуге негізделген бағдарламалық қамтамасының нұсқаларын басқару жүйелерінде, әр бағдарламалық қамтамасының жаңа нұсқасына бірегей идентификатор тағайындалады, ол бір немесе бірнеше сандар немесе әріптер тізбегінен тұрады. Осымен ортақ ерекшеліктері бітеді; жүйелер тізбектер саны, жеке тізбектердің мағынасы және тізбектерді арттыру тәсілдері сияқты мәселелерде кеңінен әртүрлі болады.
Бірлестік деңгейі
Кейбір жобалар үйлесімсіз нұсқаларды көрсету үшін негізгі нұсқа нөмірін пайдаланады. Мысалға, Apache Portable Runtime (APR) және FarCry CMS. Көбінесе бағдарламашылар жаңа бағдарламалық жасақтаманы артқа қарай үйлесімді ету үшін жазады, яғни жаңа бағдарламалық жасақтама бағдарламалық жасақтаманың ескі нұсқаларымен (ескі протоколдар мен файл форматтарын қолдану арқылы) және соңғы нұсқасымен (жаңа протоколдар мен файл форматтарын қолдану арқылы) дұрыс өзара әрекеттесуге тиіс. Мысалы, IBM z/OS бір sysplex ішінде жұмыс істейтін операциялық жүйенің үш тікелей негізгі нұсқасымен дұрыс жұмыс істеуге арналған. Бұл жоғары сенімді компьютер кластерін басқаратын адамдарға компьютерлердің көпшілігін жұмыс істейтін күйде ұстап тұруға мүмкіндік береді, ал бір машинаны тоқтатып, жаңартып, қайта қызметке қосуға болады. Көбінесе пакеттік тақырыптар мен файл форматтарына нұсқа нөмірі қосылады – кейде оны жазған бағдарламалық жасақтаманың нұсқа нөмірімен бірдей, ал кейде бағдарламалық жасақтама нұсқасынан тәуелсіз "протокол нұсқасы" болады. Ескірген протоколдар мен файл форматтарын өңдеуге арналған код көбінесе керексіз деп есептеледі.
Даму кезеңін белгілеу
Эксперименттік сатыдағы (альфа немесе бета) бағдарламалық жасақтама өз мәртебесін көрсету үшін тізбектегі бірінші ("басты") орнында нөлді жиі пайдаланады. Дегенмен, бұл схема тек бастапқы кезеңдерде ғана қолданылады, ал нұсқа нөмірі 0-ден асып, дамыған бағдарламалық жасақтаманың келесі релиздері үшін емес. Ондық жүйеде 1.81 – 1.8 нұсқасынан кейінгі кіші нұсқа, ал техникалық қолдау релиздері (яғни, тек қателерді түзетулер) 1.81a немесе 1.81b сияқты әріптік қосымшалармен белгіленуі мүмкін. Стандартты GNU нөмірлеу схемасы – басты.кіші.толықтыру, бірақ Emacs – басқа схеманы қолданатын ерекше мысал, онда басты сан (1) алынып тасталды және пайдаланушы сайтының толықтыруы қосылды, ол бастапқы Emacs пакеттерінде әрқашан нөл болады, ал таратушылар оны арттырады.
Қайта орнату
Кейбір жағдайларда, әзірлеушілер басты нұсқа нөмірін нөлге қайтаруды шеше алады. Мұндай қадам жаңа даму сатысының басталуын көрсету үшін қолданылады. Мысалы, Minecraft Alpha нұсқасы 1.0.0-ден 1.2.6-ға дейін болды, ал Beta нұсқасы шыққанда басты нұсқа нөмірі нөлге қайтарылып, 1.0-ден 1.8-ге дейін өтті. Ойын толыққанды жарияланғаннан кейін, басты нұсқа нөмірі тағы да 1.0.0-ге қайта орнатылды.
Бөлу реті
Басып шығарылған кезде тізбектер таңбалармен бөлінеді. Қай таңбаларды таңдау және оларды қалай қолдану схемаға байланысты өзгереді. Төмендегі тізім бір нұсқа үшін (екінші деңгейдегі бірінші түзетуге, төртінші деңгейдегі екінші түзетуге, үшінші деңгейдегі он үшінші түзетуге) бөлу схемаларының шартты мысалдары келтірілген:
Схема барлық тізбектер арасында бірдей таңбаны қолдануы мүмкін: 2.4.13, 2/4/13, 2 4 13
Схема кейбір тізбектерді бөліп, кейбіреулерін бөле бермейтін жағдайда, таңдау тұрақсыз болуы мүмкін: 2.413
Схема бір идентификатор ішінде таңбаларды тұрақсыз қолдануы мүмкін: 2.4 13 (мысалы, Minecraft Beta 1.7 нөмірінен 1.7 01 нөміріне, содан кейін 1.7.2 нөміріне өсті).
A scheme choice of which sequences to separate may be inconsistent, separating some sequences but not others: 2.413
A scheme's choice of characters may be inconsistent within the same identifier: 2.4 13 (for instance, Minecraft Beta incremented from 1.7 to 1.7 01 to 1.7.2)
Егер тізбектерді бөлу үшін нүкте қолданылса, ол ондық нүкте болып табылуы мүмкін немесе болмауы мүмкін – түрлі түсіндіру стильдері туралы «Тізбектерді арттыру» бөлімін қараңыз.
Тізбелер саны
Кейде төртінші, жарияланбаған нөмір болады, ол бағдарламалық құралдың құрастырылуын (build) көрсетеді (Microsoft қолданғандай). Adobe Flash – бұл 10.1.53.64 сияқты төрт бөліктен тұратын нөмірдің жария түрде көрсетілетін айқын мысалы. Кейбір компаниялар құрастырылу күнін де қосады. Нөмірлер әріптер мен басқа да символдарды қамтуы мүмкін, мысалы, Lotus 1 2 3 Release 1a.
Теріс сандар
Кейбір жобалар теріс нұсқа нөмірлерін пайдаланады. Мысалы, SmartEiffel компиляторы -1.0 нөмірінен басталып, 0.0-ге дейін өсті.
Шығарылған күні
Көптеген жобалар күндік негіздегі нұсқалау схемасын пайдаланады, оны Күнтізбелік Нұсқалау (CalVer) деп атайды. Ubuntu – күнтізбелік нұсқалауды қолданатын жобаның бір мысалы; мысалы, Ubuntu 18.04 2018 жылдың сәуір айында шығарылды. Бұл даму кестелерімен және қолдау мерзімдерімен оңай байланыстыруға мүмкіндік береді. Кейбір бейне ойындар да нұсқа ретінде күнді пайдаланады, мысалы, аркадалық ойын Street Fighter EX. Іске қосылғанда нұсқа нөмірі күнді және аймақ кодын көрсетеді, мысалы 961219 ASIA. Нұсқаларды басқаруда, мысалы, файл атауларында күндерді пайдаланғанда, ISO 8601 форматы YYYY MM DD жиі қолданылады, себебі оны өсу немесе кему ретімен тізбектей оңай сұрыптауға болады. Көбінесе дефистер алынып тасталады. Wine жобасы бұрын күндік нұсқалау схемасын қолданған, онда жыл, ай және шығарылған күні көрсетілген; мысалы, "Wine 20040505". Minecraft ұқсас форматтауды қолданды, бірақ DDHHMM форматын пайдаланды, мысалы: rd 132211, мұнда 13 – мамырдың 13-і, ал 2211 – 22:11. Microsoft Office құрастыру нөмірлері кодталған күнді білдіреді: алғашқы екі сан жоба басталған жылдың қаңтар айынан бергі өткен айлар санын көрсетеді (әртүрлі Office нұсқалары әртүрлі жобалар болып есептеледі), ал соңғы екі сан сол айдың күнін көрсетеді. Демек, 3419 – жоба басталған жылдың қаңтар айынан кейінгі 34-ші айдың 19-шы күні. Жыл бойынша нұсқаларды анықтайтын басқа мысалдарға Adobe Illustrator 88 және WordPerfect Office 2003 кіреді. Жыл нұсқаны көрсету үшін қолданылса, әдетте бұл маркетингтік мақсаттар үшін жасалады, сонымен қатар нақты нұсқа нөмірі де болады. Мысалы, Windows 95 ішкі түрде MS DOS 7.00 және Windows 4.00 ретінде нұсқаланады; сондай-ақ, Windows 2000 NT 5.0 ретінде нұсқаланады.
Python-тың атауы
Python Software Foundation PEP 440 – Нұсқауларды анықтау және тәуелділіктерді көрсету туралы жариялады, онда эпоха сегменті, шығарылым сегменті, шығарылымға дейінгі және шығарылымнан кейінгі сегменттер, сондай-ақ дамыту шығарылым сегментін анықтайтын өзінің икемді схемасы баяндалған.
Текс
TeX-те ерекше нұсқаларды нөмірлеу жүйесі бар, бұл ерекшелік оның әзірлеушісі Дональд Кнутпен ойлап табылған. 3.1 нұсқасынан бастап жаңартулар аяғында қосымша цифр қосу арқылы көрсетілді, сондықтан нұсқа нөмірі бір санға асимптотикалық түрде жақындады (Бұл бірлік нөмірлеу түрі; нұсқа нөмірі цифрлар саны). 2021 жылдың ақпан айына қарай нұсқа нөмірі 3.141592653 болып табылады. Бұл TeX-тің өте тұрақты екендігін көрсетеді және тек шағын жаңартулар ғана күтіледі. TeX әзірлеушісі Дональд Кнут «өмірден өткеннен кейін жасалатын соңғы өзгеріс» нұсқа нөмірін өзгертіп , қалған барлық қателер тұрақты мүмкіндіктерге айналады деп мәлімдеді. Осыған ұқсас, Metafont нұсқасының нөмірі Эйлер санына асимптотикалық түрде жақындады. Рим саны X бір уақытта бірнеше өнімдер желісінде маркетингтік мақсаттар үшін қолданылды. QuickTime және Final Cut Pro екеуі де 7-ші нұсқадан тікелей 10-шы нұсқаға, QuickTime X және Final Cut Pro X-ке көтерілді. Mac OS X сияқты, бұл өнімдер бұрынғы нұсқаларға жаңартулар емес, жаңа бағдарламалар болды. OS X-тегідей, осы бағдарламалардың негізгі нұсқалары екінші цифрды арттырды, ал шағын нұсқалар үшінші цифрмен белгіленді. Final Cut атауынан «X» macOS 11.0 (төменде қараңыз) нұсқасымен алынып тасталды, ал QuickTime бренді 2011 жылы AVFoundation пайдасына ескірген кезде маңызсыз болды (QuickTime бейнелерін ойнату бағдарламасы бастапқыда QuickTime Player деп аталды). Apple компаниясының келесі macOS нұсқасы, шартты түрде 10.16 нөмірімен, WWDC 2020 маусымында macOS 11 ретінде ресми түрде жарияланды және 2020 жылдың қарашасында шығарылды. Одан кейінгі macOS нұсқасы, macOS Monterey, 2021 жылдың қазан айында шығарылды және оның негізгі нұсқасының нөмірі 12-ге дейін артты.
The Roman numeral X was concurrently leveraged for marketing purposes across multiple product lines. Both QuickTime and Final Cut Pro jumped from version 7 directly to version 10, QuickTime X and Final Cut Pro X. Like Mac OS X itself, the products were not upgrades to previous versions, but brand new programs. As with OS X, major releases for these programs incremented the second digit and minor releases were denoted using a third digit. The "X" was dropped from Final Cut's name with the release of macOS 11.0 (see below), and QuickTime's branding became moot when the framework was deprecated in favor of AVFoundation in 2011 (the program for playing QuickTime video was only named QuickTime Player from the start). Apple's next macOS release, provisionally numbered 10.16, was officially announced as macOS 11 at WWDC in June 2020, and released in November 2020. The following macOS version, macOS Monterey, was released in October 2021 and bumped its major version number to 12.
Microsoft Windows-тың жүйелік жүйесі
Microsoft Windows операциялық жүйесі Windows 1.0-ден Windows 3.11-ге дейін стандартты нұсқа нөмірлерімен белгіленді. Осыдан кейін Microsoft өнім атауынан нұсқа нөмірін алып тастады. Windows 95 (4.0 нұсқасы), Windows 98 (4.10) және Windows 2000 (5.0) үшін шығарылған жыл өнім атауында көрсетілді. Windows 2000-дан кейін Microsoft Windows Server отбасын құрды, ол жылға негізделген стильді, бірақ айырмашылықпен жалғастырды: кішігірім жаңарулар үшін Microsoft атауға "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-ге өсті, ал операциялық жүйеге жасалған келесі жаңартулар тек құрастыру нөмірін және жаңарту құрастыру нөмірін (UBR) арттырды. Windows 10-ның ізбасары – Windows 11 2021 жылдың 5 қазанында жарық көрді. "11" деп аталғанына қарамастан, жаңа Windows нұсқасы өзінің негізгі нұсқа нөмірін 11-ге дейін өсірмеді. Оның орнына, Windows 10 қолданған 10.0 нұсқасының нөмірін сақтап қалды.
Басқа схемалар
Кейбір бағдарламалық жасақтама өндірушілер бағдарламалық жасақтамаларын шығару үшін әртүрлі схемаларды қолданады. Debian жобасы өзінің операциялық жүйесінің шығарылымдары үшін негізгі/қосалқы нұсқалар схемасын қолданады, бірақ даму кезінде тұрақты, тұрақсыз және сынақ шығарылымдарын атау үшін «Toy Story» фильмінің кодтық атауларын пайдаланады. BLAG Linux және GNU нұсқалары өте үлкен: негізгі шығарылымдар 50000 және 60000 сияқты сандарға ие, ал қосалқы шығарылымдар санын 1-ге арттырады (мысалы, 50001, 50002). Альфа және бета шығарылымдарына ондық нұсқалар саны негізгі шығарылым нөмірінен сәл төмен беріледі, мысалы, 20000 нұсқасының альфа-1 үшін 19999.00071 және 30000 нұсқасының бета-2 үшін 29999.50000. 2003 жылы 9001-ден бастап, 2011 жылғы ең соңғы нұсқасы 140000 болды. Urbit Кельвин нұсқасын қолданады (абсолюттік Кельвин температура шкаласымен аталған): бағдарламалық жасақтама нұсқалары жоғары саннан басталып 0 нұсқасына дейін төмендейді, осы кезде бағдарламалық жасақтама аяқталған деп есептеледі және одан әрі өзгерістер енгізілмейді.
Ішкі нұсқа нөмірлері
Бағдарламалық жасақтаманың "ішкі" нұсқа нөмірі өнім атауында көрсетілген нөмірден өзгеше болуы мүмкін (әдетте нұсқалау ережелерін тұрақтырақ сақтайды). Мысалы, Java SE 5.0-дің ішкі нұсқа нөмірі 1.5.0, ал Windows NT 4-тен бастап стандартты сандық нөмірлеуді ішкі түрде жалғастырды: Windows 2000 – NT 5.0, XP – Windows 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-ның алғашқы нұсқасы 10.0 (10.0.10240) болды. Дегенмен, Windows NT-нің негізгі жаңартылуы бес рет қана жасалғанын ескеру керек, себебі оның алғашқы нұсқасы 3.1 деп белгіленген (сол кездегі Windows нұсқасына сәйкес) және Windows 10-ның шығуы 6.3 нөмірінен 10.0 нөміріне секіріс жасады.
Шығарылу алдындағы нұсқалар
Жоғарыда аталған әртүрлі нұсқалау схемаларымен қатар, бағдарлама бағдарламалық қамтамастың өмірлік циклының кезеңдерінен өтетін кезде, шығарылымға дейінгі нұсқаларды белгілеу жүйесі көбінесе қолданылады. Бастапқы сатыдағы бағдарламалар грек әліпбиінің бірінші әрпімен байланысты "альфа" деп аталады. Олар жетілгеннен кейін, бірақ әлі шығарылуға дайын болмаса, грек әліпбиінің екінші әрпі бойынша "бета" бағдарламасы деп аталуы мүмкін. Әдетте, альфа бағдарламалық қамтамасты тек дамытушылар сынап көреді, ал бета бағдарламалық қамтамасы қоғамдық сынақтан өту үшін таратылады. Кейбір жүйелер соңғы "1.0" шығарылымына жақындауын көрсету үшін 1-ден кіші сандық нұсқаларды (мысалы, 0.9) пайдаланады. Бұл ашық кодты бағдарламалық қамтамаста жиі кездесетін қағида. Дегенмен, егер шығарылымға дейінгі нұсқа қолданыстағы бағдарламалық қамтама үшін (мысалы, 2.5 нұсқасы) болса, онда нұсқа нөміріне "a" немесе "alpha" қосылуы мүмкін. Сондықтан 2.5 нұсқасының альфа нұсқасы 2.5a немесе 2.5a деп белгіленуі мүмкін. Балама ретінде, шығарылымға дейінгі нұсқаларды "шығарылым үміткерлері" деп атауға болады, сондықтан жақын арада белгілі бір нұсқа ретінде шығарылатын бағдарламалық қамтамалар осы нұсқа таңбасын "rc #" белгісімен бірге алып жүруі мүмкін, бұл шығарылым үміткерінің нөмірін көрсетеді; соңғы нұсқа шығарылған кезде "rc" таңбасы алынып тасталады.
Босату рельсі
Бағдарламалық жасақтаманы шығару пойызы – бірнеше өнім үшін нұсқаланған бағдарламалық жасақтаманың түрлі серияларын белгілі бір кесте бойынша әртүрлі "пойыз" ретінде шығару арқылы бағдарламалық жасақтаманы шығару кестесінің бір түрі. Әдетте, әрбір өнім желісі үшін бірнеше шығару пойызы бір уақытта жұмыс істейді, әрбір пойыз жоспарланған кесте бойынша бастапқы шығарылымнан ақырғы мерзіміне және қолданудан шығарылуға дейін өтеді. Пайдаланушылар оны өндіріске енгізбес бұрын жаңа шығару пойызын сынап көре алады, бұл оларға жаңа, "жарлықталмаған" шығарылымдармен тәжірибе жасауға мүмкіндік береді, сонымен қатар жаңа шығару пойызы жетілгенге дейін өндірістік жүйелері үшін алдыңғы пойыздың нүктелік шығарылымдарын пайдалануды жалғастырады. Cisco компаниясының IOS бағдарламалық платформасы көптеген жылдар бойы көптеген ерекше пойыздармен шығару пойызы кестесін қолданды. Соңғы кезде Firefox және Android үшін Fenix, Eclipse, LibreOffice, Ubuntu, Fedora, Python, digiKam және VMware сияқты көптеген басқа платформалар да шығару пойызы моделін қабылдады.
Даму релиздері үшін тақ нөмірлі нұсқалар
1.0 және 2.6.x сериялары арасында Linux ядросы даму нұсқаларын көрсету үшін тақ кіші нөмірлерді, ал тұрақты нұсқаларды көрсету үшін жұп кіші нөмірлерді пайдаланды; мысалы, Linux 2.3 – Linux ядросының екінші негізгі дизайнының даму отбасы, ал Linux 2.4 – Linux 2.3 жетілгеннен кейін пайда болған тұрақты нұсқалар отбасы. Linux ядросындағы кіші нөмірден кейін шығарылым нөмірі келеді, ол өсу ретімен болады; мысалы, Linux 2.4.0 → Linux 2.4.22. 2004 жылы 2.6 ядросының шығуынан бастап Linux енді бұл жүйені қолданбайды және шығарылым циклы әлдеқайда қысқа. Осындай тақ-жұп жүйесі Node.js 0.12 нұсқасына дейін, сондай-ақ GNOME және WineHQ сияқты ұзақ шығарылым циклдары бар басқа да бағдарламалық қамтамасыздарда қолданылады.
Ең маңызды элементті алып тастау
Sun Java кейде гибридтік жүйеге ие болды, онда ішкі нұсқа нөмірі әрқашан 1.x болған, бірақ маркетингтік мақсаттар үшін тек x нөмірімен белгіленген: JDK 1.0.3, JDK 1.1.2 – 1.1.8, J2SE 1.2.0 ("Java 2") – 1.4.2, Java 1.5.0, 1.6.0, 1.7.0, 1.8.0 ("Java 5, 6, 7, 8").
JDK 1.0.3
JDK 1.1.2 through 1.1.8
J2SE 1.2.0 ("Java 2") through 1.4.2
Java 1.5.0, 1.6.0, 1.7.0, 1.8.0 ("Java 5, 6, 7, 8")
Sun сонымен қатар Solaris үшін де бірінші цифрды жойды, мысалы, Solaris 2.8 (немесе 2.9) маркетингтік материалдарда Solaris 8 (немесе 9) деп аталды. 2010 жылдардың басында Asterisk ашық кодты PBX құрастыру жиынтығында да осыған ұқсас өзгеріс болды, оның жоба жетекшілері ағымдағы 1.8.x нұсқасын жақын арада 10-шы нұсқаның алмастыратынын хабарлады. Көптеген мамандар бұл тәсілге қарсы болды, себебі ол нұсқа нөмірінің бөлімдерінің мағыналық маңыздылығын жояды. Бұл тәсілді Mozilla (Firefox үшін) сияқты көптеген компаниялар қолдана бастады.
Версия нөмірін реттеу жүйелері
Версиялық нөмірлер өте жылдам қарапайым бүтін сандардан (1, 2, ) рационалдық сандарға (2.08, 2.09, 2.10) және содан кейін сандық емес "нөмірлерге" (4:3.4.3) 2. ауысады. Сондықтан, мұндай күрделі нұсқалар мінездемелік тізбектер ретінде қарастырылуы тиіс. Пакеттік басқару құралдары бар операциялық жүйелер (мысалы, барлық маңызды Linux немесе BSD дистрибутивтері) әртүрлі бағдарламалық қамтамалардың нұсқа нөмірлерін салыстыру үшін дистрибутивке тән алгоритмді пайдаланады. Мысалы, Red Hat және оның туынды дистрибутивтерінің реттеу алгоритмдері Debian сияқты дистрибутивтерден өзгеше. Дебиандағы нұсқа нөмірлерін реттеудің күтпеген әрекетінің мысалы ретінде, басындағы нөлдер бөліктерде ескерілмейді, сондықтан 5.0005 және 5.5 тең деп есептеледі, ал 5.5<5.0006. Бұл пайдаланушыларды жаңылыстыруы мүмкін; тізбектерді салыстыру құралдары берілген нұсқа нөмірін таба алмауы мүмкін; және егер бағдарламашылар тізбектелген индекстелген дерек құрылымдарын, мысалы, нұсқа нөмірімен индекстелген хэш-кестелерді қолданса, пакеттік басқаруда елеусіз қателер туындауы мүмкін. Сорттауды жеңілдету үшін кейбір бағдарламалық қамтамалар пакеттері негізгі, қосалқы және шығарылым схемасының әр компонентін белгілі бір енмен көрсетеді. Perl өзінің нұсқа нөмірлерін қозғалатын нүктелі сан ретінде көрсетеді; мысалы, Perl-дің 5.8.7 нұсқасы 5.008007 ретінде де көрсетілуі мүмкін. Бұл 5.8.10 нұсқасын 5.008010 ретінде көрсетуге мүмкіндік береді. Басқа бағдарламалық қамтамалар әр сегментті белгілі бір бит енімен жинақтайды; мысалы, Microsoft Windows-та 6.3.9600.16384 нұсқасы 0x0006000325804000 он алтылық форматында көрсетіледі. Қозғалатын нүктелі схема нұсқа нөмірінің кез келген сегменті 999-дан асса бұзылады; әрқайсысы 16 биттен тұратын жинақталған схема 65535-тен кейін бұзылады.
and then to non numeric "numbers" such as 4:3.4.3 2. These complex version numbers are therefore better treated as character strings. Operating systems that include package management facilities (such as all non trivial Linux or BSD distributions) will use a distribution specific algorithm for comparing version numbers of different software packages. For example, the ordering algorithms of Red Hat and derived distributions differ to those of the Debian like distributions. As an example of surprising version number ordering implementation behavior, in Debian, leading zeroes are ignored in chunks, so that 5.0005 and 5.5 are considered as equal, and 5.5<5.0006. This can confuse users; string matching tools may fail to find a given version number; and this can cause subtle bugs in package management if the programmers use string indexed data structures such as version number indexed hash tables. To ease sorting, some software packages represent each component of the major. minor. release scheme with a fixed width. Perl represents its version numbers as a floating point number; for example, Perl's 5.8.7 release can also be represented as 5.008007. This allows a theoretical version of 5.8.10 to be represented as 5.008010. Other software packages pack each segment into a fixed bit width; for example, on Microsoft Windows, version number 6.3.9600.16384 would be represented as hexadecimal 0x0006000325804000. The floating point scheme breaks down if any segment of the version number exceeds 999; a packed binary scheme employing 16 bits apiece breaks down after 65535.
1.0 нұсқасы маңызды кезең
Ашық бағдарламалық қамтамасыз ету және ашық кодты қауымдастықтар бағдарламалық қамтамасыз етуді ерте және жиі шығарады. Бастапқы нұсқалар 1-ден төмен нөмірленеді, ал осы 0.x нұсқалары бағдарламалық жасақтаманың толық емес және қазіргі күйінде жалпы қолдануға жеткілікті сенімді емес екенін көрсетеді. 0.x нұсқаларында бұрынғы нұсқалармен үйлесімсіз өзгерістер жиі кездеседі. 1.0 нұсқасы маңызды кезең ретінде қарастырылады, ол бағдарламалық жасақтаманың барлық негізгі мүмкіндіктеріне және әзірлеушілердің сол нұсқаға енгіргісі келген функцияларына ие екенін көрсетеді, сондай-ақ ол жалпы қолдануға жеткілікті сенімді деп есептеледі. 1994 жылға дейін 1.0.0 нұсқасына қол жеткізілді. Аркадтық ойын эмуляторы MAME-нің әзірлеушілері бағдарламаның 1.0 нұсқасын шығаруды жоспарламайды, себебі эмуляциялауға арналған аркадтық ойындар әрқашан көп болады, сондықтан жоба толығымен аяқталмайды. Сәйкесінше, 0.99 нұсқасынан кейін 0.100 нұсқасы шықты. Интернет кеңінен тарағаннан бері көптеген коммерциялық бағдарламалық қамтамасыз ету жеткізушілері негізгі нұсқаның "толық" болуы керек деген қағиданы енгізбейді, керісінше, шешімі табылып, түзетілген мәселелерді реттеу үшін түзетулерге сүйенеді.
Маркетингтік нұсқалар
Көптеген жағдайларда маркетингтік мақсаттармен нұсқа сандарын күрт өсіру жиі кездесетін практика. Кейде бағдарламалық жасақтама жеткізушілер 1.0 нұсқасын өткіріп жібереді немесе 1.0 бағдарламалық жасақтаманы көптеген клиенттер өндірістік ортада пайдалану үшін жетілмеген деп санайтындықтан, кейіннен нөмірленген нұсқаны шығарады. Мысалы, dBase II жағдайында, өнімнің нұсқа нөмірі одан гөрі көбірек жетілгенін көрсетеді. Басқа жағдайларда нұсқа сандары бәсекелестердің нөмірлерімен сәйкес келуі мүмкін. Мұны Microsoft, America Online, Sun Solaris, Java Virtual Machine, SCO Unix, WordPerfect компанияларының өнім нұсқаларын нөмірлеу мысалында көруге болады. Microsoft Access 2.0 нұсқасынан 7.0 нұсқасына Microsoft Word нұсқасымен үйлесу үшін секірді. Microsoft сондай-ақ "құсап жете беру" нұсқаларының нысанасы болды, Netscape браузерлері Microsoft-тың Internet Explorer браузерімен синхронды түрде 5-тен 6-ға өтті, сонымен қатар Mozilla қолданбалар жиынтығы 1.0 нұсқасына дейінгі әзірлеу кезінде өзінің пайдаланушы агенті жолында 5-ші нұсқаны мұралады және Netscape 6.x Mozilla код базасы негізінде құрылды. Бәсекелестермен бірқатар болудың тағы бір мысалы – 1999 жылы Slackware Linux 4-ші нұсқадан 7-ші нұсқаға секіргені.
Өнертану
Microsoft Office 2007 нұсқасының ішкі нөмірі 12-ге тең. Келесі нұсқасы, Office 2010, 13-ші санға байланысты ырымдарға орай 14 нөмірленді. Visual Studio 2013 – бұл өнімнің 12.0 нұсқасы, ал жаңа нұсқасы Visual Studio 2015 сол себептермен 14.0 нөмірін алды. Roxio Toast 12 нұсқадан 14 нұсқаға секірді, бұл 13-ші санға байланысты ырымдарды болдырмауға жасалған тырастың нәтижесі болуы мүмкін. Corel WordPerfect Office-тің 13-ші нұсқасы "X3" (Рим санымен 10 және "3") деп сатылады. Бұл тәсіл келесі нұсқада, X4-те де жалғасты. Corel Graphic Suite (мысалы, CorelDRAW, Corel Photo Paint) және оның "Video Studio" бейне өңдеу бағдарламалық құралы да осылай жасады. Sybase өзінің Adaptive Server Enterprise реляциялық деректер базасы өнімінің 13-ші және 14-ші негізгі нұсқаларын өткізіп, 12.5 нұсқадан тікелей 15.0 нұсқаға көшті. ABBYY Lingvo сөздігі 12, x3 (14), x5 (15) нөмірлерін пайдаланады. SUSE Linux Enterprise 12 нұсқадан кейін 13-ші және 14-ші нұсқаларын өткізіп, 2018 жылдың шілдесінде SLES 15 нұсқасын тікелей шығарды.
Гей мәдениет
SUSE Linux дистрибутиві 4.2 нұсқасынан бастап, Дуглас Адамстың «Галактикаға автостоппен саяхатшының нұсқаулығында» айтылған «өмірдің, ғаламның және барлық нәрсенің түпкілікті сұрағына жауап» ретінде 42 санына сілтеме жасады. Slackware Linux дистрибутиві 13.37 нұсқасын пайдаланды. Finnix 93.0 нұсқасынан 100 нұсқасына секірді, ішінара «Finnix '95 болмайды» деген мәлімдемені орындау үшін, бұл Windows 95-ке сілтеме еді. Тагталған кескін файл форматының спецификациясы құрылғаннан бері 42 санын ішкі нұсқа нөмірі ретінде пайдаланып келеді, оның авторлары оны өмір бойында (немесе оның өмір бойында) өзгертуді жоспарламады, себебі бұл оның даму принциптеріне қайшы келер еді.
Саудадағы қиындықтарды шешу
1990 жылдардың ортасында қарқынды дамып келе жатқан CMMS, Maximo, Maximo Series 3-тен тікелей Series 5-ке көшті, Series 4-ті өткізіп кетті. Мұның себебі, 4 саны Қытай нарығында «өліммен» байланысты болғандықтан, маркетингтік қиындықтар тудыратын болды (тетрафобияны қараңыз). Алайда, бұл Maximo Series 5 нұсқасының 4.0-ты шығаруына кедергі болмады. (Содан бері «Серия» нұсқасы қолданыстан шығарылды, нәтижесінде 5-серияның 1.0 нұсқасынан кейін нөмірлеу қайта басталды.)
Бағдарламалық жасақтауда
Версия нөмірлерін тұтынушы немесе клиент бағдарламалық өнімнің өз көшірмесін, мысалы, әзірлеуші шығарған ең жаңа нұсқасымен салыстыру үшін пайдаланады. Бағдарламашы немесе компания үшін нұсқаны басқару көбінесе әр өзгеріс бойынша жүзеге асырылады, онда бағдарламалық жасақтаманың жеке бөліктері сол бөліктердің жаңа немесе ескі нұсқаларымен салыстырылады, көбінесе бірлескен нұсқаны басқару жүйесінде. XXI ғасырда көптеген бағдарламашылар семантикалық нұсқа саясаты сияқты ресми нұсқа саясатын қолдана бастады. Мұндай саясаттардың мақсаты – басқа бағдарламашыларға кодтағы өзгерістер олардың жазған кодтарын бұзуы мүмкін екенін анықтауды жеңілдету. Мұндай саясаттар әсіресе бағдарламалық кітапханалар мен фреймворктер үшін маңызды, бірақ басқа да қосымшалардан шақырылатын командалық жол қосымшалары үшін де, тіпті үшінші тараптармен скрипттеуге және/немесе кеңейтуге болатын кез келген қосымша үшін де пайдалы болуы мүмкін. Версияны басқару – бағдарламалық жасақтаманы жөндеу және жаңартудың көптеген схемаларын іске асыру үшін қажетті практика, әсіресе автоматты түрде не және қайда жаңарту керектігін анықтау үшін.
Техникалық қолдау
Версия нөмірлері қолдау көрсететін мамандарға пайдаланушының қандай кодты іске қосып жатқанын анықтауға көмектеседі, соның арқасында бұрын түзетілген қателерді мәселенің себебі ретінде жоққа шығаруға болады. Бұл әсіресе бағдарламаның үлкен пайдаланушылар қауымдастығы болғанда маңызды, әсіресе қауымдастық соншалықты үлкен болғанда, техникалық қолдау көрсетушілер кодты жазған адамдардан бөлек болады. Версияның, түзетулердің және өзгерістер нөмірлеу стилінің семантикалық мағынасы ақпараттық технология саласындағы қызметкерлер үшін де маңызды, олар көбінесе оны жаңа нұсқаға қанша назар қажет екенін анықтау үшін пайдаланады. Қағида бойынша, өзгерістер қаншалықты үлкен болса, нәрсе бұзылу мүмкіндігі де соншалықты жоғары (бірақ егер бар болса, өзгерістер журналын қарап шығу арқылы тек сыртқы немесе маңызсыз өзгерістер анықталуы мүмкін). Осы себепті Asterisk және басқалары қолданған "негізгі нұсқаны жаңарту" тәсіліне кейбір наразылық білдіріледі: енді қызметкерлер әрбір жаңарту үшін толық регрессиялық сынақтан өтуге тиіс (немесе кемінде солай істеуі керек).
Бағдарламалық жасақтамадан басқа пайдалану
Кейбір компьютерлік файлдық жүйелер, мысалы OpenVMS файлдық жүйесі, файлдардың нұсқаларын да сақтайды. Құжаттардағы нұсқаларды басқару компьютерлер мен бағдарламалық жасақтаманы әзірлеу кезіндегі әдеттес тәсілге ұқсас: құрылымында, мазмұнында немесе шарттарындағы кез келген шағын өзгеріс нұсқа нөмірін 1-ге немесе кішкентайрақ немесе үлкенірек мәнге арттырады, бұл автордың жеке талғамы мен жасалған өзгерістердің мөлшеріне немесе маңыздылығына байланысты. Бағдарламалық жасақтаманың нұсқа нөмірлерін басқа да медиада кездестіруге болады. Кейбір жағдайларда, қолданылу тікелей салыстыру болып табылады (мысалы: Jackass 2.5, қосымша мүмкіндіктері бар Jackass Number Two нұсқасы; Garbage тобының екінші альбомы, Version 2.0 деп аталды; немесе Dungeons & Dragons 3.5, онда ережелер үшінші басылымнан өңделді, бірақ оны төртінші басылым деп санамады). Көбінесе бұл жоғары технологиямен байланысты әсер ету үшін қолданылады және сөзбе-сөз "нұсқаны" білдірмейді (мысалы, Tron 2.0, Tron фильмінің видео ойынының жалғасы, немесе екінші маусымын 2.0 нұсқасы деп атаған The IT Crowd телесериалы). Ерекше атаулы мысал – Web 2.0, ол 2000 жылдардың басында пайдаланушылар жасаған контентке, қолдануға және өзара іс-қимылға баса назар аударған веб-сайттарды білдіреді. Техникалық суреттер мен CAD бағдарламалық файлдары өзгерістерді қадағалау үшін белгілі бір бастапқы нұсқа нөмірін де қолдануы мүмкін.