Життєвий цикл успішної комп'ютерної програми може бути дуже довгим; зміни в програмі бувають різними — від виправлення помилки до повного переписування. У більшості випадків назва програми залишається такою ж, змінюється підназва — так звана версія.
Версія програми може бути цілим числом (Corel Draw 11), дробовим числом (Windows 3.11), послідовністю чисел (JDK 1.0.3), роком (Windows 2000) або текстом (Embarcadero Delphi XE). В будь-якому випадку, система версіонування вибирається за декількома критеріями:
- Підтримка тієї чи іншої системи з боку програмного забезпечення для розробки (компілятора, системи контролю версій і т. д.)
- Частота виходу нових версій та їх «сирість». Складна програма, яка випускається раз в декілька років і перед випуском проходить всеохопне тестування, може іменуватися як «Microsoft Word 97 SP2», в той час як в програмі з частими малостабільними випусками доводиться вводити складнішу нумерацію.
- Ступінь сумісності мережних протоколів, документів або доповнень сторонніх розробників — наприклад, «старша» версія збільшується з кожною зміною ABI або API.
- Маркетингові міркування.
Схеми нумерації
Цифрова нумерація
У деяких схемах послідовні ідентифікатори використовуються для визначення значимості змін між стадіями розробки: ці зміни класифікуються за рівнями значимості. Рішення про те, яку з послідовностей (в складній нумерації версій) змінити між стадіями розробки, базується на значимості змін на останній стадії розробки, наприклад, в схемі, з версією, яка складається з послідовності 4 чисел, перше число може бути збільшеним тільки тоді, коли код повністю переписаний, в той час як четверте число змінюється при незначних змінах в інтерфейсі або документації. Ця практика дозволяє користувачам (або потенційним наступникам), оцінити, наскільки було протестовано в реальних умовах дане програмне забезпечення. Якщо зміни зроблені, наприклад, між 1.3rc4 (RC — release candidate, реліз-кандидат) і продукційним випуском 1.3, то випуск 1.3rc4 не передбачає рівень тестування виробничого класу і, насправді, містить зміни, які не обов'язково були випробувані в реальних умовах. Такий підхід як правило допускає застосування третього рівня нумерації («зміни»). Наприклад: 1.3.1, 1.3.2, 1.3.3, 1.3.4,… 1.4.1 і т. д.
В пізніших релізах, головне число (major) збільшується, коли відбуваються значні переходи у функціональності, другорядне число (minor) збільшується тільки тоді, коли були додані незначні функції або внесені виправлення. Номер версії змінюється, якщо виправлені всі дрібні недоліки. Для типового програмного продукту використовуються наступні номери: 0.9 (для бета-версії), 0.9.1, 0.9.2, 0.9.3, 1.0, 1.0.1, 1.0.2, 1.1, 1.1.1, 2.0, 2.0.1, 2.0.2, 2.1, 2.1.1, 2.1.2, 2.2, і т. д. Розробники інколи перестрибують, наприклад від версії 5.0 одразу до 5.5, для того щоб позначити додані декілька значних функцій в програмі, однак їх недостатньо, щоб змінити головний номер версії. Деякі розробники[] вважають, що такі стрибки недоречні.
Інший підхід у використанні головних та другорядних номерів версій полягає в додаванні буквено-цифрової послідовності, визначаючи тим самим стадію розробки релізу: «альфа», «бета», «Реліз-кандидат». Серія версій з використанням цього підходу може виглядати наступним чином: якщо до версій 0.5, 0.6, 0.7, 0.8, 0.9 додаються нові функції їх можна назвати — 1.0b1, 1.0b2, ще плюс нові функції — 1.0b3, потім версія стає 1.0rc1. Якщо версія 1.0rc1 достатньо стабільна, то вона стає 1.0, однак якщо в 1.0rc1 виявляються помилки, які необхідно виправити, вона буде мати номер 1.0rc2 і т. д. Важливою характеристикою цього підходу є дотримання ідентичності стадій розробки версій. Не можна вносити ніяких змін між останньою бета-версією та першим реліз-кандидатом або останнім реліз-кандидатом і готовим продуктом. Якщо це було зроблено, необхідно випустити іншу версію на нижчій стадії розробки.
Іноді наявність людського фактору у створенні номерів версій призводить до помилок в зміні версій. Наприклад, розробники можуть змінити послідовність між версіями, навіть якщо жоден рядок коду не був переписаний, лише для того щоб створити хибне враження, що були внесені значні зміни.
Інші схеми передають значення на окремих послідовностях:
- major.minor[.build[.revision]]
або
- major.minor[.maintenance[.build]]
Знову ж таки, в цих випадках відмінності «суттєвих» від «незначних» змін, даються довільно і на розсуд автора, як те, що означає «build» або як «revision» відрізняється від «minor change». Аналогічні проблеми відносної значимості змін і номенклатури версій існують у сфері книговидавництва, де номер видання або назва може бути вибрана на основі різних критеріїв.
В більшості пропрієтарного програмного забезпечення, перша офіційна версія програмного продукту має версію 1.
Послідовні номери
Спочатку програми нумерувалися числами 1, 2, 3 і т. д. — аналогічно до видань книг. Також послідовні номери можуть базуватися на якомусь технічному лічильнику (наприклад, номер версії в системі управління версіями).
Однак, цієї нумерації виявилось мало: доводиться розділяти малі та великі зміни. Для цього існує декілька способів нумерації.
Історично перший спосіб нумерації, який розділює малі та великі зміни.
Номер версії є десятковим дробом в американському форматі (через точку). Наприклад, перша версія отримує номер 1.0, наступна за нею — 1.1, з невеликою зміною — 1.11. Після серйозного дописування виходить версія 1.5, після чого — 2.0. Порівняння версій проводиться за правилами для десяткових дробів: 1.01 < 1.1 = 1.10 < 1.11 < 1.2 = 1.20.
Послідовність чисел
Цей спосіб прийнятий, наприклад, у Windows API. Версія складається з декількох (як правило, трьох) чисел, розділених точкою. При збільшенні одного з чисел всі інші, які розташовані після нього скидаються до нуля: 1.0.0, 1.0.1, 1.0.2, 1.1.0, 1.2.0, 1.2.1, 2.0.0… Числа порівнюються цілком: 1.1.0 < 1.1.2 < 1.10.0 < 1.11.0 < 1.20.0. Останній нуль може опускатися.
Іноді четвертим числом є номер збірки з наскрізною нумерацією. Ця цифра може збільшуватися на одиницю з кожним випуском (1.0.0.1 < 1.0.1.2 < 1.0.2.3 < 1.1.0.4), або братися з якого-небудь технічного лічильника (компіляцій, нічних збірок, версій коду в системі контролю версій — наприклад, 1.5.2.7682).
Буква в ролі молодшої версії
Іноді замість третього числа застосовується буква. Так, коли в DotA 6.42 знайшли помилку, новій версії дали назву 6.42b. Це означає: гра залишається тією ж, з тим самим розташуванням перешкод і тим самим балансом, але з виправленою помилкою. Подальші виправлення помилок іменуються 6.42c, 6.42d і т. д.
Вказання стадії розробки
Якщо розробнику доводиться покладатися на позаштатних тестерів, у версії може вказуватися рівень зрілості програми: альфа-версія, бета-версія, реліз-кандидат, кінцевий випуск, виправлення помилок (service release).
Наприклад, 2.0 alpha1 < 2.0 alpha2 < 2.0 beta < 2.0 rc1 < 2.0 < 2.0 sr1.
Існують різні схеми позначення стадій розробки. Наприклад, третє число може означати:
- 0 — альфа
- 1 — бета
- 2 — реліз-кандидат
- 3 — публічний реліз
Наприклад:
- 1.2.0.1 замість 1.2-a
- 1.2.1.2 замість 1.2-b2 (бета з декількома виправленими помилками)
- 1.2.2.3 замість 1.2-rc3 (реліз-кандидат)
- 1.2.3.0 замість 1.2-r (для комерційного поширення)
- 1.2.3.5 замість 1.2-r5 (для комерційного поширення з багатьма виправленими помилками)
Між серіями 1.0 і 2.6.x ядро Linux використовувало непарні номери для бета-версій, і парні — для стабільних. Наприклад, Linux 2.3 був серією в розробці, а Linux 2.4 — серією стабільних релізів, в яку переріс Linux 2.3. В номері релізу Linux kernel спочатку писався номер другорядної версії, а потім номер релізу в зростаючому порядку. Наприклад Linux 2.4.0 → Linux 2.4.22. Після релізу 2.6 в 2004 році Linux більше не використовує цю систему, тепер цикл релізу набагато коротший. Зараз вони просто збільшують третє число, використовуючи при необхідності четверте.
Така сама система «парне-непарне» використовується деякими іншими продуктами з довгим циклом розробки, такими як GNOME.
Інші схеми нумерації
Алфавітно-цифрова назва
Найчастіше застосовується програмне забезпечення з довгою історією і версіями, які виходять рідко. Наприклад: Adobe Photoshop CS2, Windows Vista.
Іноді як додаток до звичайної версії використовується алфавітно-цифрова підназва: Ubuntu 9.04 Jaunty Jackalope.
Дата
Рік випуску застосовується найчастіше в програмному забезпеченні, версії якого виходять рідко, наприклад: Windows Server 2003.
Розробники проекту Wine також спочатку використовували дати при нумерації версій, вони вказували рік, місяць і день релізу: «Wine 20040505». Зараз Wine використовує «стандартну» нумерацію релізів, остання версія 2010 року має номер 1.2. Компанія Ubuntu Linux використовує схожу схему нумерації, наприклад реліз жовтня 2010 року пронумерований як Ubuntu 10.10. Слід відмітити, що при використанні дат в нумерації версій необхідно використовувати схему ISO, тобто спочатку вказується рік, потім місяць, а потім день (YYYY-MM-DD), причому дефіс можна опускати.
Внутрішні версії
Часто програма має як торгову назву, так і внутрішню версію, утворену за всіма правилами. Наприклад, Java SE 5.0 має внутрішню версію 1.5.0, Windows 7 — версію 6.1.
Екзотичні схеми
Дональд Кнут нумерує версії системи комп'ютерної верстки ΤΕΧ послідовними наближеннями числа числа : 3.0 < 3.1 < 3.14 і т. д. Номер останнього стабільного релізу — 3.141592653. Версії іншої програми Дональда Кнута мови METAFONT нумеруються наближеннями до числа e. Зокрема, версія за березень 2008 року мала номер 2.718281.
SuSE Linux почав відлік версій з 4.2, як посилання на відому книгу Дугласа Адамса.
Значення номерів версій
Версія 1.0 як ключовий етап розробки
Комерційні програми, як правило, починають нумерувати свої версії з 1.0. Вважається навіть, що версія 1.0 виключно сира і тому потрібно як можна швидше дійти до 1.2 або навіть до 2.0.
В безкоштовних і вільних програмах 1.0 вважається моментом, коли програма визнана готовою до широкого застосування неспеціалістами. При цьому початкові версії програми нумеруються як 0.1, 0.2 і т. д. FreeDOS прийшов до версії 1.0 в 2006 році — коли DOS уже практично ніде не використовувався.
Маркетинг та забобони
Комерційному програмному забезпеченню, щоб назва краще виглядала, доводиться підключати маркетологів. Наприклад, в країнах Азії поширена тетрафобія, тому в номерах версій уникають цифри 4. В Європі число 13 вважається нещасливим, його або пропускають, або заміняють на X3.
Якщо історія програми дуже довга, її інколи доводиться скидати: Adobe Photoshop 7.0 < 8.0 < CS < CS2.
Однією з причин того, що не було Winamp 4, став каламбур: Winamp 4 [ru] і англ. foreskin — «крайня плоть».
Пропуски у версіях
Іноді розробник пропускає номер версії, щоб не відставати від конкурентів або інших продуктів тієї ж компанії: наприклад, Microsoft Access перестрибнув одразу від 2.0 до 7.0. Netscape Communicator пропустив п'яту версію, оскільки Internet Explorer добрався вже до 6.0; до того ж версію 5.0 в User Agent’ах застовпили тестові випуски браузера Mozilla Suite.
В Sun Solaris відкинули першу цифру: 2.8 і 2.9 в маркетингових матеріалах іменувались 8 і 9; Java SE 1.5.0 і 1.6.0 — як Java 5 та 6. Slackware Linux в 1999 році стрибнув від версії 4 одразу до 7.
Microsoft Windows 10 виходить одразу після 8.1.
PHP перестрибує від 5 до 7, причиною оголошено те, що версія 6 виявилась розпіареною, але не могла бути реалізованою, і численні її нововведення були приєднані до 5-ї гілки.
Алгоритми визначення старшинства версій
Часто потрібно програмно визначати, яка з двох версій старше — наприклад, «бульбашки» підтримуються у Windows починаючи з 2000, а в ранніх версіях потрібно використовувати інші способи. Така перевірка робиться за доволі складними правилами: наприклад, якщо версія — десятковий дріб, спочатку потрібно порівняти цілі частини як числа; якщо вони рівні, то дробові — як рядки. Якщо версія — трійка або четвірка чисел, то порівнюють числа по одному, доки не буде зафіксовано нерівності.
Оскільки надмірно складні алгоритми можуть призвести до помилок, а модульні тести писати не завжди є час, часто використовують спрощені варіанти: наприклад, будують з допомогою [ru] довге число (1.2.3.4 → 0102030416); або порівнюють версії як рядки в лексикографічному порядку. Перше не спрацює, якщо одне з чисел вийде за межі 256 (1.0.257 < 1.1.0, але 01010116 > 01010016), друге — якщо вийде версія 10 (9.5 < 10.0, але «9.5» > «10.0»).
Іноді подібні спрощення зіграють злий жарт: в перші роки популярності Windows виявилося, що численні програми некоректно перевіряли версію ОС, відмовляючись працювати під 4.0. Тому Windows 95 і Windows 98 мали внутрішні версії 3.95 і 3.98.
Схожі хитрощі застосовувались в ’і браузера Opera при переході з версії 9.64 на 10.00. Це викликано тим, що деякі сайти, які реагували на User-Agent, або порівнювали номери як рядки (10.0 < 9.5), або брали першу цифру (10.0 = 1.0). Розробникам довелося використовувати запис Opera/9.80 замість Opera/10.00, а справжній номер версії додати в кінці UserAgent’а. Планувалося, що до 11-ї версії UserAgent набуде звичного вигляду, однак обхідний шлях використовувався аж до переходу на рушій Blink (початок 2013 — при тому, що перехід на 10-у версію відбувся ще в 2009 році).
В PHP є спеціальна функція version_compare()
для визначення старшинства версій.
Застосування схем нумерації ПЗ в інших сферах
- 3.5
- Міцний горішок 4.0
- Evangelion: 2.0
- Tron 2.0
- Веб 2.0
- [en]
Посилання
- Специфікація семантичного версіонування (SemVer)
Див. також
Примітки
- Вопросы и ответы по развертыванию Windows 7(рос.)
- . Media Player Help. Winamp.com. Архів оригіналу за 19 грудня 2013. Процитовано 28 березня 2010.(англ.)
- Следующая версия PHP будет называться PHP 7 / Хабрахабр(рос.)
- Структура
NOTIFYICONDATA
на MSDN(англ.) - Розбір функції
CheckWin32Version
на Embarcadero Quality Central [ 29 липня 2013 у Wayback Machine.](англ.) - Некорректные проверки номеров версий(рос.)
- Andreas Bovens (27 травня 2009). Changes in Opera’s user agent string format (англ.). Архів оригіналу за 22 лютого 2012. Процитовано 18 червня 2011.(англ.)
- Наприклад:
Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.8.131 Version/11.11
- version_compare()(рос.)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Zhittyevij cikl uspishnoyi komp yuternoyi programi mozhe buti duzhe dovgim zmini v programi buvayut riznimi vid vipravlennya pomilki do povnogo perepisuvannya U bilshosti vipadkiv nazva programi zalishayetsya takoyu zh zminyuyetsya pidnazva tak zvana versiya Najposhirenishij u nash chas sposib numeraciyi versij Versiya programi mozhe buti cilim chislom Corel Draw 11 drobovim chislom Windows 3 11 poslidovnistyu chisel JDK 1 0 3 rokom Windows 2000 abo tekstom Embarcadero Delphi XE V bud yakomu vipadku sistema versionuvannya vibirayetsya za dekilkoma kriteriyami Pidtrimka tiyeyi chi inshoyi sistemi z boku programnogo zabezpechennya dlya rozrobki kompilyatora sistemi kontrolyu versij i t d Chastota vihodu novih versij ta yih sirist Skladna programa yaka vipuskayetsya raz v dekilka rokiv i pered vipuskom prohodit vseohopne testuvannya mozhe imenuvatisya yak Microsoft Word 97 SP2 v toj chas yak v programi z chastimi malostabilnimi vipuskami dovoditsya vvoditi skladnishu numeraciyu Stupin sumisnosti merezhnih protokoliv dokumentiv abo dopovnen storonnih rozrobnikiv napriklad starsha versiya zbilshuyetsya z kozhnoyu zminoyu ABI abo API Marketingovi mirkuvannya Shemi numeraciyiCifrova numeraciya U deyakih shemah poslidovni identifikatori vikoristovuyutsya dlya viznachennya znachimosti zmin mizh stadiyami rozrobki ci zmini klasifikuyutsya za rivnyami znachimosti Rishennya pro te yaku z poslidovnostej v skladnij numeraciyi versij zminiti mizh stadiyami rozrobki bazuyetsya na znachimosti zmin na ostannij stadiyi rozrobki napriklad v shemi z versiyeyu yaka skladayetsya z poslidovnosti 4 chisel pershe chislo mozhe buti zbilshenim tilki todi koli kod povnistyu perepisanij v toj chas yak chetverte chislo zminyuyetsya pri neznachnih zminah v interfejsi abo dokumentaciyi Cya praktika dozvolyaye koristuvacham abo potencijnim nastupnikam ociniti naskilki bulo protestovano v realnih umovah dane programne zabezpechennya Yaksho zmini zrobleni napriklad mizh 1 3rc4 RC release candidate reliz kandidat i produkcijnim vipuskom 1 3 to vipusk 1 3rc4 ne peredbachaye riven testuvannya virobnichogo klasu i naspravdi mistit zmini yaki ne obov yazkovo buli viprobuvani v realnih umovah Takij pidhid yak pravilo dopuskaye zastosuvannya tretogo rivnya numeraciyi zmini Napriklad 1 3 1 1 3 2 1 3 3 1 3 4 1 4 1 i t d V piznishih relizah golovne chislo major zbilshuyetsya koli vidbuvayutsya znachni perehodi u funkcionalnosti drugoryadne chislo minor zbilshuyetsya tilki todi koli buli dodani neznachni funkciyi abo vneseni vipravlennya Nomer versiyi zminyuyetsya yaksho vipravleni vsi dribni nedoliki Dlya tipovogo programnogo produktu vikoristovuyutsya nastupni nomeri 0 9 dlya beta versiyi 0 9 1 0 9 2 0 9 3 1 0 1 0 1 1 0 2 1 1 1 1 1 2 0 2 0 1 2 0 2 2 1 2 1 1 2 1 2 2 2 i t d Rozrobniki inkoli perestribuyut napriklad vid versiyi 5 0 odrazu do 5 5 dlya togo shob poznachiti dodani dekilka znachnih funkcij v programi odnak yih nedostatno shob zminiti golovnij nomer versiyi Deyaki rozrobniki hto vvazhayut sho taki stribki nedorechni Inshij pidhid u vikoristanni golovnih ta drugoryadnih nomeriv versij polyagaye v dodavanni bukveno cifrovoyi poslidovnosti viznachayuchi tim samim stadiyu rozrobki relizu alfa beta Reliz kandidat Seriya versij z vikoristannyam cogo pidhodu mozhe viglyadati nastupnim chinom yaksho do versij 0 5 0 6 0 7 0 8 0 9 dodayutsya novi funkciyi yih mozhna nazvati 1 0b1 1 0b2 she plyus novi funkciyi 1 0b3 potim versiya staye 1 0rc1 Yaksho versiya 1 0rc1 dostatno stabilna to vona staye 1 0 odnak yaksho v 1 0rc1 viyavlyayutsya pomilki yaki neobhidno vipraviti vona bude mati nomer 1 0rc2 i t d Vazhlivoyu harakteristikoyu cogo pidhodu ye dotrimannya identichnosti stadij rozrobki versij Ne mozhna vnositi niyakih zmin mizh ostannoyu beta versiyeyu ta pershim reliz kandidatom abo ostannim reliz kandidatom i gotovim produktom Yaksho ce bulo zrobleno neobhidno vipustiti inshu versiyu na nizhchij stadiyi rozrobki Inodi nayavnist lyudskogo faktoru u stvorenni nomeriv versij prizvodit do pomilok v zmini versij Napriklad rozrobniki mozhut zminiti poslidovnist mizh versiyami navit yaksho zhoden ryadok kodu ne buv perepisanij lishe dlya togo shob stvoriti hibne vrazhennya sho buli vneseni znachni zmini Inshi shemi peredayut znachennya na okremih poslidovnostyah major minor build revision abo major minor maintenance build Znovu zh taki v cih vipadkah vidminnosti suttyevih vid neznachnih zmin dayutsya dovilno i na rozsud avtora yak te sho oznachaye build abo yak revision vidriznyayetsya vid minor change Analogichni problemi vidnosnoyi znachimosti zmin i nomenklaturi versij isnuyut u sferi knigovidavnictva de nomer vidannya abo nazva mozhe buti vibrana na osnovi riznih kriteriyiv V bilshosti propriyetarnogo programnogo zabezpechennya persha oficijna versiya programnogo produktu maye versiyu 1 Poslidovni nomeri Spochatku programi numeruvalisya chislami 1 2 3 i t d analogichno do vidan knig Takozh poslidovni nomeri mozhut bazuvatisya na yakomus tehnichnomu lichilniku napriklad nomer versiyi v sistemi upravlinnya versiyami Odnak ciyeyi numeraciyi viyavilos malo dovoditsya rozdilyati mali ta veliki zmini Dlya cogo isnuye dekilka sposobiv numeraciyi Desyatkovij drib Istorichno pershij sposib numeraciyi yakij rozdilyuye mali ta veliki zmini Nomer versiyi ye desyatkovim drobom v amerikanskomu formati cherez tochku Napriklad persha versiya otrimuye nomer 1 0 nastupna za neyu 1 1 z nevelikoyu zminoyu 1 11 Pislya serjoznogo dopisuvannya vihodit versiya 1 5 pislya chogo 2 0 Porivnyannya versij provoditsya za pravilami dlya desyatkovih drobiv 1 01 lt 1 1 1 10 lt 1 11 lt 1 2 1 20 Poslidovnist chisel Cej sposib prijnyatij napriklad u Windows API Versiya skladayetsya z dekilkoh yak pravilo troh chisel rozdilenih tochkoyu Pri zbilshenni odnogo z chisel vsi inshi yaki roztashovani pislya nogo skidayutsya do nulya 1 0 0 1 0 1 1 0 2 1 1 0 1 2 0 1 2 1 2 0 0 Chisla porivnyuyutsya cilkom 1 1 0 lt 1 1 2 lt 1 10 0 lt 1 11 0 lt 1 20 0 Ostannij nul mozhe opuskatisya Inodi chetvertim chislom ye nomer zbirki z naskriznoyu numeraciyeyu Cya cifra mozhe zbilshuvatisya na odinicyu z kozhnim vipuskom 1 0 0 1 lt 1 0 1 2 lt 1 0 2 3 lt 1 1 0 4 abo bratisya z yakogo nebud tehnichnogo lichilnika kompilyacij nichnih zbirok versij kodu v sistemi kontrolyu versij napriklad 1 5 2 7682 Bukva v roli molodshoyi versiyi Inodi zamist tretogo chisla zastosovuyetsya bukva Tak koli v DotA 6 42 znajshli pomilku novij versiyi dali nazvu 6 42b Ce oznachaye gra zalishayetsya tiyeyu zh z tim samim roztashuvannyam pereshkod i tim samim balansom ale z vipravlenoyu pomilkoyu Podalshi vipravlennya pomilok imenuyutsya 6 42c 6 42d i t d Vkazannya stadiyi rozrobki Yaksho rozrobniku dovoditsya pokladatisya na pozashtatnih testeriv u versiyi mozhe vkazuvatisya riven zrilosti programi alfa versiya beta versiya reliz kandidat kincevij vipusk vipravlennya pomilok service release Napriklad 2 0 alpha1 lt 2 0 alpha2 lt 2 0 beta lt 2 0 rc1 lt 2 0 lt 2 0 sr1 Isnuyut rizni shemi poznachennya stadij rozrobki Napriklad tretye chislo mozhe oznachati 0 alfa 1 beta 2 reliz kandidat 3 publichnij reliz Napriklad 1 2 0 1 zamist 1 2 a 1 2 1 2 zamist 1 2 b2 beta z dekilkoma vipravlenimi pomilkami 1 2 2 3 zamist 1 2 rc3 reliz kandidat 1 2 3 0 zamist 1 2 r dlya komercijnogo poshirennya 1 2 3 5 zamist 1 2 r5 dlya komercijnogo poshirennya z bagatma vipravlenimi pomilkami Mizh seriyami 1 0 i 2 6 x yadro Linux vikoristovuvalo neparni nomeri dlya beta versij i parni dlya stabilnih Napriklad Linux 2 3 buv seriyeyu v rozrobci a Linux 2 4 seriyeyu stabilnih reliziv v yaku pereris Linux 2 3 V nomeri relizu Linux kernel spochatku pisavsya nomer drugoryadnoyi versiyi a potim nomer relizu v zrostayuchomu poryadku Napriklad Linux 2 4 0 Linux 2 4 22 Pislya relizu 2 6 v 2004 roci Linux bilshe ne vikoristovuye cyu sistemu teper cikl relizu nabagato korotshij Zaraz voni prosto zbilshuyut tretye chislo vikoristovuyuchi pri neobhidnosti chetverte Taka sama sistema parne neparne vikoristovuyetsya deyakimi inshimi produktami z dovgim ciklom rozrobki takimi yak GNOME Inshi shemi numeraciyi Alfavitno cifrova nazva Najchastishe zastosovuyetsya programne zabezpechennya z dovgoyu istoriyeyu i versiyami yaki vihodyat ridko Napriklad Adobe Photoshop CS2 Windows Vista Inodi yak dodatok do zvichajnoyi versiyi vikoristovuyetsya alfavitno cifrova pidnazva Ubuntu 9 04 Jaunty Jackalope Data Rik vipusku zastosovuyetsya najchastishe v programnomu zabezpechenni versiyi yakogo vihodyat ridko napriklad Windows Server 2003 Rozrobniki proektu Wine takozh spochatku vikoristovuvali dati pri numeraciyi versij voni vkazuvali rik misyac i den relizu Wine 20040505 Zaraz Wine vikoristovuye standartnu numeraciyu reliziv ostannya versiya 2010 roku maye nomer 1 2 Kompaniya Ubuntu Linux vikoristovuye shozhu shemu numeraciyi napriklad reliz zhovtnya 2010 roku pronumerovanij yak Ubuntu 10 10 Slid vidmititi sho pri vikoristanni dat v numeraciyi versij neobhidno vikoristovuvati shemu ISO tobto spochatku vkazuyetsya rik potim misyac a potim den YYYY MM DD prichomu defis mozhna opuskati Vnutrishni versiyi Chasto programa maye yak torgovu nazvu tak i vnutrishnyu versiyu utvorenu za vsima pravilami Napriklad Java SE 5 0 maye vnutrishnyu versiyu 1 5 0 Windows 7 versiyu 6 1 Ekzotichni shemi Donald Knut numeruye versiyi sistemi komp yuternoyi verstki TE X poslidovnimi nablizhennyami chisla chisla p displaystyle pi 3 0 lt 3 1 lt 3 14 i t d Nomer ostannogo stabilnogo relizu 3 141592653 Versiyi inshoyi programi Donalda Knuta movi METAFONT numeruyutsya nablizhennyami do chisla e Zokrema versiya za berezen 2008 roku mala nomer 2 718281 SuSE Linux pochav vidlik versij z 4 2 yak posilannya na vidomu knigu Duglasa Adamsa Znachennya nomeriv versijVersiya 1 0 yak klyuchovij etap rozrobki Komercijni programi yak pravilo pochinayut numeruvati svoyi versiyi z 1 0 Vvazhayetsya navit sho versiya 1 0 viklyuchno sira i tomu potribno yak mozhna shvidshe dijti do 1 2 abo navit do 2 0 V bezkoshtovnih i vilnih programah 1 0 vvazhayetsya momentom koli programa viznana gotovoyu do shirokogo zastosuvannya nespecialistami Pri comu pochatkovi versiyi programi numeruyutsya yak 0 1 0 2 i t d FreeDOS prijshov do versiyi 1 0 v 2006 roci koli DOS uzhe praktichno nide ne vikoristovuvavsya Marketing ta zaboboni Komercijnomu programnomu zabezpechennyu shob nazva krashe viglyadala dovoditsya pidklyuchati marketologiv Napriklad v krayinah Aziyi poshirena tetrafobiya tomu v nomerah versij unikayut cifri 4 V Yevropi chislo 13 vvazhayetsya neshaslivim jogo abo propuskayut abo zaminyayut na X3 Yaksho istoriya programi duzhe dovga yiyi inkoli dovoditsya skidati Adobe Photoshop 7 0 lt 8 0 lt CS lt CS2 Odniyeyu z prichin togo sho ne bulo Winamp 4 stav kalambur Winamp 4 ru i angl foreskin krajnya plot Propuski u versiyah Inodi rozrobnik propuskaye nomer versiyi shob ne vidstavati vid konkurentiv abo inshih produktiv tiyeyi zh kompaniyi napriklad Microsoft Access perestribnuv odrazu vid 2 0 do 7 0 Netscape Communicator propustiv p yatu versiyu oskilki Internet Explorer dobravsya vzhe do 6 0 do togo zh versiyu 5 0 v User Agent ah zastovpili testovi vipuski brauzera Mozilla Suite V Sun Solaris vidkinuli pershu cifru 2 8 i 2 9 v marketingovih materialah imenuvalis 8 i 9 Java SE 1 5 0 i 1 6 0 yak Java 5 ta 6 Slackware Linux v 1999 roci stribnuv vid versiyi 4 odrazu do 7 Microsoft Windows 10 vihodit odrazu pislya 8 1 PHP perestribuye vid 5 do 7 prichinoyu ogolosheno te sho versiya 6 viyavilas rozpiarenoyu ale ne mogla buti realizovanoyu i chislenni yiyi novovvedennya buli priyednani do 5 yi gilki Algoritmi viznachennya starshinstva versijChasto potribno programno viznachati yaka z dvoh versij starshe napriklad bulbashki pidtrimuyutsya u Windows pochinayuchi z 2000 a v rannih versiyah potribno vikoristovuvati inshi sposobi Taka perevirka robitsya za dovoli skladnimi pravilami napriklad yaksho versiya desyatkovij drib spochatku potribno porivnyati cili chastini yak chisla yaksho voni rivni to drobovi yak ryadki Yaksho versiya trijka abo chetvirka chisel to porivnyuyut chisla po odnomu doki ne bude zafiksovano nerivnosti Oskilki nadmirno skladni algoritmi mozhut prizvesti do pomilok a modulni testi pisati ne zavzhdi ye chas chasto vikoristovuyut sprosheni varianti napriklad buduyut z dopomogoyu ru dovge chislo 1 2 3 4 0102030416 abo porivnyuyut versiyi yak ryadki v leksikografichnomu poryadku Pershe ne spracyuye yaksho odne z chisel vijde za mezhi 256 1 0 257 lt 1 1 0 ale 01010116 gt 01010016 druge yaksho vijde versiya 10 9 5 lt 10 0 ale 9 5 gt 10 0 Inodi podibni sproshennya zigrayut zlij zhart v pershi roki populyarnosti Windows viyavilosya sho chislenni programi nekorektno pereviryali versiyu OS vidmovlyayuchis pracyuvati pid 4 0 Tomu Windows 95 i Windows 98 mali vnutrishni versiyi 3 95 i 3 98 Shozhi hitroshi zastosovuvalis v i brauzera Opera pri perehodi z versiyi 9 64 na 10 00 Ce viklikano tim sho deyaki sajti yaki reaguvali na User Agent abo porivnyuvali nomeri yak ryadki 10 0 lt 9 5 abo brali pershu cifru 10 0 1 0 Rozrobnikam dovelosya vikoristovuvati zapis Opera 9 80 zamist Opera 10 00 a spravzhnij nomer versiyi dodati v kinci UserAgent a Planuvalosya sho do 11 yi versiyi UserAgent nabude zvichnogo viglyadu odnak obhidnij shlyah vikoristovuvavsya azh do perehodu na rushij Blink pochatok 2013 pri tomu sho perehid na 10 u versiyu vidbuvsya she v 2009 roci V PHP ye specialna funkciya version compare dlya viznachennya starshinstva versij Zastosuvannya shem numeraciyi PZ v inshih sferahDungeons amp Dragons 3 5 Micnij gorishok 4 0 Evangelion 2 0 Tron 2 0 Veb 2 0 en PosilannyaSpecifikaciya semantichnogo versionuvannya SemVer Div takozhSistema keruvannya versiyami Stadiyi rozrobki programnogo zabezpechennya Resursi Windows PrimitkiVoprosy i otvety po razvertyvaniyu Windows 7 ros Media Player Help Winamp com Arhiv originalu za 19 grudnya 2013 Procitovano 28 bereznya 2010 angl Sleduyushaya versiya PHP budet nazyvatsya PHP 7 Habrahabr ros Struktura NOTIFYICONDATA na MSDN angl Rozbir funkciyi CheckWin32Version na Embarcadero Quality Central 29 lipnya 2013 u Wayback Machine angl Nekorrektnye proverki nomerov versij ros Andreas Bovens 27 travnya 2009 Changes in Opera s user agent string format angl Arhiv originalu za 22 lyutogo 2012 Procitovano 18 chervnya 2011 angl Napriklad Opera 9 80 Windows NT 6 1 U ru Presto 2 8 131 Version 11 11 version compare ros