Číslování verzí softwaru

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 27. května 2021; kontroly vyžadují 3 úpravy .

Životní cyklus úspěšného počítačového programu může být velmi dlouhý; změny v programu jsou různé – od opravy chyby až po kompletní přepsání. Ve většině případů zůstává název programu stejný, mění se podnázev - tzv. verze .

Verze programu může být celé číslo ( Corel Draw 11 ), sekvence čísel ( JDK 1.0.3 ), rok ( Windows 2000 ) nebo text ( Embarcadero Delphi XE ). V každém případě se verzovací systém vybírá podle několika kritérií:

Někdy přítomnost lidské chyby při vytváření čísel verzí vede k chybám ve změnách verzí. Vývojáři mohou například změnit číslo verze, i když nebyl přepsán žádný řádek kódu, aby vyvolal falešný dojem, že byly provedeny významné změny.

Schémata číslování

Pořadová čísla

Zpočátku byly programy číslovány čísly 1, 2, 3 atd. - podobně jako knižní vydání . Sériová čísla mohou být také založena na nějakém druhu technického počítadla (například číslo verze v systému správy verzí ).

Sériová čísla dnes označují zřídka vydávané programy, které jsou již stabilní. Například Corel Draw 11, Windows 10 . U takových programů jsou drobné servisní změny obvykle „zameteny pod koberec“ bez změny viditelné verze (změna pouze technické verze dostupné např. z nabídky „O aplikaci“). Velké změny, které zavádějí nové funkce, ale nevedou k novému produktu, jsou obvykle označeny desetinnou čárkou ( Windows 8.1 ).

Desetinný zlomek

Historicky první metoda číslování, která odděluje drobné a velké změny.

Číslo verze je americké desetinné číslo (tečkované ) . Například první verze dostane číslo 1.0, další - 1.1, s malou změnou - 1.11, je vytvořen nový produkt s novou funkčností - 2.0. Čím více se zlomek zvyšuje, tím významnější je změna. Vývojáři někdy skočí z verze 2.0 rovnou na 2.5, například, aby znamenali přidání několika významných funkcí do programu, ale ne dost na změnu hlavního čísla verze ( Turbo Pascal 5.0 → 5.5).

Pro předběžné, neoficiální verze se používají čísla menší než 1: řekněme 0,1 nebo 0,9.

Verze se porovnávají podle pravidel desetinných zlomků: 0,9 < 1,0 < 1,01 < 1,1 = 1,10 < 1,11 < 1,2 = 1,20 < 2,0 < 2,5.

Posloupnost čísel

Tato metoda je převzata například v rozhraní Windows API . Verze se skládá z několika čísel (obvykle tří) oddělených tečkou: například 1.5.2. První je hlavní verze ( major ), druhá je vedlejší ( minor ), třetí jsou drobné změny ( údržba , mikro ).

Když se jedno z čísel zvýší, všechna po něm se vynulují: 1.0.0, 1.0.1, 1.0.2, 1.1.0, 1.2.0, 1.2.1, 2.0.0 ... Poslední nula může být vynecháno: 1,0,0 = 1,0.

Unixové knihovny používají schéma verzování current.revision.age . Current je aktuální číslo API, revize je počítadlo verzí v rámci stejného API, stáří je rozdíl mezi nejnovější a první verzí podporovaného API [1] .

Pro určení seniority verzí jsou nejprve porovnány starší verze, poté mladší verze a poté mikro jako celá čísla: < 2.0.0.

Někdy je čtvrté číslo montážní číslo s průběžným číslováním. Toto číslo se může s každým vydáním zvýšit o jednu (1.0.0.1 < 1.0.1.2 < 1.0.2.3 < 1.1.0.4) nebo může být převzato z nějakého technického počítadla (kompilace, noční sestavení , verze kódu v systému správy verzí  – např. 1.5.2.7682). V Microsoft Office čtvrté číslo kóduje datum vydání [2] .

Opět je 1.0 považováno za první oficiální vydání; 0,1 nebo 0,9 jsou předběžné verze.

Dopis jako vedlejší verze

Někdy se místo třetí číslice používá písmeno. Takže když byla nalezena chyba v DotA 6.42 , nová verze dostala název 6.42b. To znamená: hra zůstává stejná, se stejným umístěním překážek a stejnou rovnováhou , ale s opravenou chybou. Další opravy chyb jsou označovány jako 6.42c, 6.42d atd.

Stupeň vývoje

Pokud se vývojář musí spolehnout na externí testery , může vydání indikovat úroveň vyspělosti programu: alfa, beta, kandidát na vydání, finální vydání, oprava chyb ( servisní vydání ).

Například 2,0 alfa1 < 2,0 alfa2 < 2,0 beta < 2,0 rc1 < 2,0 < 2,0 sr1.

Existují různá schémata pro označení vývojových fází. Například třetí číslo může znamenat:

Například:

Uvnitř společnosti může být také uvedena fáze vývoje (například 1.2.3 < 1.2.3r9 < 1.2.4), zatímco v oficiálních verzích tomu tak není - například, aby se předešlo zmatku mezi testery nebo aby se vydaly nějaké verzi klientovi - možná nestabilní, ale opravující jeho chybu.

Mezi sérií 1.0 a 2.6.x používalo linuxové jádro lichá čísla pro beta verze a sudá čísla pro stabilní verze. Například Linux 2.3 byla vývojová řada a Linux 2.4 byla stabilní řada, do které se Linux 2.3 vyvinul. Číslo vydání linuxového jádra bylo zapsáno nejprve s číslem vedlejší verze a poté s číslem vydání ve vzestupném pořadí. Například Linux 2.4.0 → Linux 2.4.22. Od vydání 2.6 v roce 2004 již Linux tento systém nepoužívá, cyklus vydání je nyní mnohem kratší. Nyní jednoduše zvýší třetí číslo a v případě potřeby použijí čtvrté.

Stejný systém sudá-lichá používají některé další produkty s dlouhým cyklem, jako je GNOME.

Alfanumerický název

Nejčastěji používaný software s dlouhou historií a zřídka vydávanými verzemi ( Windows Vista ).

Pokud počítadlo verzí zašlo příliš daleko a je třeba jej vynulovat, použijí se také abecední kódy: Adobe Photoshop 7.0 < CS < CS2 < ... < CS6 < CC < CC 2014.

Někdy se kromě běžné verze používá i alfanumerický podnázev: Ubuntu 9.04 Jaunty Jackalope , Embarcadero Delphi 10.2 Tokyo .

Datum

Rok vydání se používá nejčastěji u softwaru se zřídka vydávanými verzemi, například: Windows Server 2003 , Microsoft Office 2014.

Vývojáři projektu Wine také poprvé použili data při číslování verzí, uvedli rok, měsíc a den vydání: „Wine 20040505“. Wine v současné době používá "standardní" číslování vydání, přičemž nejnovější vydání v roce 2010 je 1.2. Společnost Ubuntu Linux používá podobné schéma číslování, například vydání z října 2010 má číslo Ubuntu 10.10. Podobné schéma v současné době používá Microsoft pro číslování aktualizací Windows 10, i když obvykle mají číslo verze 1 menší než číslo měsíce, například Fall Creators Update (1709) byla vydána 17. října 2017 a aktualizace z dubna 2018 ( 1803), přestože číslo „03“ v názvu vyšlo v dubnu 2018.

Při použití dat v číslování verzí by mělo být použito schéma ISO rok-měsíc-den (to usnadňuje porovnání verzí pro senioritu) a pomlčku lze vynechat.

Interní verze

Často má program jak obchodní název, tak interní verzi zkompilovanou podle všech pravidel. Například Java SE 5.0 má interní verzi 1.5.0, Windows 7 má  verzi 6.1 [3] . Různé sestavení souborů Windows mohou být pojmenovány, například 6.1.7600.16385.

Podobné technické verze jsou srovnávány s psí známkou vojáka [2] . Stejně jako na bojišti jsou potřeba v nouzových případech – když program nefunguje, jak má a je potřeba kontaktovat vývojáře.

Exotická schémata

Donald Knuth čísluje verze počítačového sázecího systému Τ Ε Χ s postupnými aproximacemi čísla : 3,0 < 3,1 < 3,14 atd. Poslední stabilní číslo vydání je 3,141592653. Verze dalšího duchovního dítěte Donalda Knutha jazyka METAFONT jsou číslovány aproximací k číslu e . Verze z března 2008 měla číslo 2.718281.

SuSE Linux začal počítat verzi s 4.2 jako odkaz na slavnou knihu Douglase Adamse .

Význam čísel verzí

Verze 1.0 jako klíčový milník vývoje

Komerční programy obvykle začínají číslovat své verze na 1.0. Dokonce se má za to, že verze 1.0 je výhradně hrubá a proto je potřeba co nejdříve dosáhnout na 1.2 nebo dokonce 2.0.

Ve svobodném softwaru a softwaru s otevřeným zdrojovým kódem je verze 1.0 považována za bod, kdy je program považován za připravený k širokému použití laiky. Počáteční verze programu jsou přitom číslovány jako 0.1, 0.2 atd. FreeDOS přišel na verzi 1.0 v roce 2006 – kdy se DOS prakticky nikde nepoužíval. Emulátor hracích automatů MAME nikdy nedosáhne verze 1.0, protože historie automatů pokračuje dodnes.

Marketing, pověry a OCD

Aby název vypadal lépe, komerční software musí zapojit obchodníky. Například tetrafobie je běžná v asijských zemích , takže se v číslech verzí vyhýbáme číslu 4. V Evropě je číslo 13 považováno za nešťastné, buď je přeskočeno, nebo nahrazeno X3.

Pokud je historie programu velmi dlouhá, je někdy nutné ji resetovat: Adobe Photoshop 7.0 < 8.0 < CS < CS2.

Jedním z důvodů, proč neexistoval Winamp 4, byla slovní hříčka : skin a angličtina Winampu 4.  předkožka  – „předkožka“ [4] .

Opomenutí ve verzích

Někdy vývojář přeskočí číslo verze, aby udržel krok s konkurencí nebo jinými produkty stejné společnosti: například Microsoft Access skočil rovnou z 2.0 na 7.0. Netscape Communicator přeskočil verzi 5, protože Internet Explorer se dostal na 6.0; kromě verze 5.0 v testovacích verzích prohlížeče Mozilla Suite , která je součástí uživatelského agenta .

Sun Solaris upustil první číslici: 2,8 a 2,9 byly v marketingových materiálech označovány jako 8 a 9; Java SE 1.5.0 a 1.6.0 jsou jako Java 5 a 6. Slackware Linux přeskočil v roce 1999 z verze 4 rovnou na verzi 7.

Microsoft Windows 10 vyjde po 8.1.

PHP skáče z 5 na 7, důvodem je to, že verze 6 se ukázala jako medializovaná, ale nerealizovatelná a mnoho jejích inovací bylo připojeno k 5. větvi [5] .

Algoritmy priority verze

Často je potřeba programově určit, která z obou verzí je starší – například „ bubliny “ jsou ve Windows podporovány od roku 2000 [6] a v dřívějších verzích je to potřeba dělat jinak. Taková kontrola se provádí podle poměrně komplikovaných pravidel: například pokud je verze desetinný zlomek, musíte nejprve porovnat celé části jako čísla; pokud jsou stejné, pak zlomkové jsou jako řetězce . Pokud je verze trojitá nebo čtyřnásobná, pak se čísla porovnávají jedno po druhém, dokud se nevyřeší nerovnost.

Protože příliš složité algoritmy jsou plné chyb [7] a na psaní jednotkových testů není vždy čas , často si vystačí se zjednodušenými možnostmi: například sestavují dlouhé číslo pomocí bitových polí (1.2.3.4 → 01020304 16 ) ; nebo porovnejte verze jako řetězce v lexikografickém pořadí . První nebude fungovat, pokud jedno z čísel přesahuje 256 (1.0.257 < 1.1.0, ale 010101 16 > 010100 16 ), druhé nebude fungovat, pokud je vydána verze 10 (9.5 < 10.0, ale "9.5" > "10.0").

Někdy taková zjednodušení hrají krutý vtip: v prvních letech popularity Windows se ukázalo, že mnoho programů nesprávně zkontrolovalo verzi operačního systému a odmítalo pracovat pod 4.0. Proto měly Windows 95 a Windows 98 interní verze 3.95 a 3.98 [8] .

Podobné triky byly použity v User-Agent prohlížeče Opera při přechodu z verze 9.64 na 10.00. Je to proto, že některé weby reagující na User-Agent buď porovnávaly čísla jako řetězce (10,0 < 9,5) nebo vzaly první číslici (10,0 = 1,0) [9] . Vývojáři museli použít zápis Opera/9.80 místo Opery/10.00 a přidat skutečné číslo verze na konec UserAgent [10] . Bylo plánováno, že od 11. verze UserAgent získá známý vzhled, ale tento trik se používal až do přechodu na Blink engine (začátek roku 2013 – navzdory skutečnosti, že přechod na 10. verzi proběhl již v roce 2009 ).

PHP má speciální funkci version_compare()pro určení priority verzí [11] .

Aplikace schémat číslování softwaru v jiných oblastech kultury

Externí odkazy

Viz také

Poznámky

  1. Verze . Získáno 17. listopadu 2017. Archivováno z originálu dne 27. září 2019.
  2. 1 2 Co je vlastně v čísle verze? . Získáno 18. listopadu 2017. Archivováno z originálu 1. prosince 2017.
  3. Časté dotazy k nasazení systému Windows 7 . Získáno 29. října 2017. Archivováno z originálu 1. prosince 2017.
  4. FAQ - Winamp Help (downlink) . Získáno 6. května 2011. Archivováno z originálu 19. prosince 2013. 
  5. Další verze PHP se bude jmenovat PHP 7 / Habrahabr . Získáno 20. 5. 2015. Archivováno z originálu 20. 5. 2015.
  6. Struktura NOTIFYICONDATAna MSDN . Získáno 7. května 2011. Archivováno z originálu 12. června 2011.
  7. Rozdělení funkce CheckWin32Versionna Embarcadero Quality Central (downlink) . Získáno 7. května 2011. Archivováno z originálu dne 29. července 2013. 
  8. Nesprávná kontrola čísla verze . Získáno 6. května 2011. Archivováno z originálu 16. ledna 2013.
  9. Andreas Bovens. Změny ve formátu řetězce uživatelského agenta Opery  (anglicky)  (nedostupný odkaz) (27. května 2009). - Popis důvodů změn ve formátu AserAgent. Datum přístupu: 18. června 2011. Archivováno z originálu 22. února 2012.
  10. Například:Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.8.131 Version/11.11
  11. version_compare() . Získáno 17. listopadu 2013. Archivováno z originálu dne 23. dubna 2014.